社内業務を支援するAIプラットフォーム(マルチサービス基盤・認証ハブを構築)
5つのAIサービスをGoogle Workspace SSOで束ねる自作OIDC認証ハブ(BFF)、音声合成、テキストの誤字をOCR×音声認識で照合する検出パイプライン、生成AIによる審査支援を、GCP上にIaCで構築
この事例の要点
- 課題
現場の属人的な作業(音声化・校正・審査)をAIで支援する複数ツールを、社員が一度のログインで横断利用でき、組織の内部統制・セキュリティ基準を満たし、重く高価なAI処理を本番品質で安定運用できる『止まらない社内プラットフォーム』として提供する必要がありました。
- 作ったもの
Google Workspace SSO を起点とする自作OIDC認証ハブ(BFF)で5つのAIサービスを束ね、ツールごとに audience を絞った短命JWTを発行。
- 役割
- チーム開発
テクニカルアーキテクト 兼 フルスタック開発者。
- 結果
5つのAIサービスを単一SSOで統合|自作OIDC認証ハブ・誤字検出・高水準の多層防御をIaCで構築
- 5サービス統合したAIサービス
- 信頼の担保
- 71個Terraformモジュール
- 256bit (AES-GCM)PII暗号化
クライアント
法人向けの社内AIプラットフォーム | ドメイン: 業務支援(AI音声合成、テキストの誤字脱字検出、生成AIによる審査支援、アップロード素材のマルウェア検査) | 形態: 社内向けマルチテナントSaaS(Google Workspace の SSO で全社員に提供) | アーキテクチャ: GCP上のマイクロサービス・モノレポ(共通BFF認証ハブ+複数のAIツールサービス)
私の役割
テクニカルアーキテクト 兼 フルスタック開発者。共通基盤(BFF認証ハブ・OIDCプロバイダ・バックチャネルログアウト・PII暗号化)の設計から、音声合成サービス(ElevenLabs / Google Chirp3)、テキストの誤字検出ML/OCRパイプライン(FastAPI + Python + Cloud Workflows)、生成AI審査支援(Gemini 2.5 / Vertex AI)、マルウェアスキャナ(ClamAV on Cloud Run)まで、フロントエンド・バックエンド・GCPインフラ(Terraform)・CI/CD・可観測性を横断して実装。各サービス共通のキャッシュ・認証・ロギング・Terraformモジュールを単一の規約に統一し、横展開可能なプラットフォームとして構築した。
課題(Situation & Task)
現場には、音声化・校正・審査といった、専門性が高く属人化しがちな作業が多く存在します。これらをAIで支援する複数のツールを、(1) 社員が一度のログインで横断利用でき、(2) 組織の内部統制・情報セキュリティ基準を満たし、(3) 各ツールを独立してデプロイ・改善でき、(4) GPU/LLM/音声合成といった重く高価なAI処理を本番品質で安定運用できる、という相反する要件を同時に満たす形で提供する必要がありました。単発のPoCではなく、全社の業務ワークフローに組み込まれる『止まらない社内プラットフォーム』を構築することが求められました。
社内AIプラットフォームには、組織特有の難所が凝縮されていました。
-
複数AIツールの統合とSSO: 音声合成・誤字検出・生成AI審査・要約など、性質の異なるツールを別々に作ると認証・権限・運用がバラバラになります。Google Workspace の SSO を起点に、各ツールへ安全にシングルサインオンさせつつ、ツールごとに権限とデプロイを分離する『認証ハブ』が必要でした。
-
高水準のセキュリティと内部統制: 社内システムとはいえ、認可バイパス・PII漏洩・なりすましは許されません。トークンの寿命・監査ログ・PII暗号化・WAF・MFA・最小権限IAM・鍵レスCI/CDまで、内部統制に耐える多層防御を前提条件として組み込む必要がありました。
-
重く高価なAI処理の本番運用: テキストの誤字検出はOCR(画像)と音声認識(テキストと発話の照合)を組み合わせた長時間ジョブで、LLM OCRは高精度だが高コスト・低速です。音声合成は高い音声品質(フェード処理・発音辞書など)が求められます。これらを、コストを抑えつつ完走・再開できる形で運用する設計が必須でした。
-
素材の安全な受け入れ(ゼロトラストな入口): 外部から持ち込まれる素材ファイルには、プラットフォームに到達する前にマルウェア検査をかけ、クリーン/隔離に振り分ける必要がありました。検査は最大数GiBの大容量素材でもメモリを枯渇させず、再試行に対して冪等でなければなりません。
技術選定の理由(Rationale)
Next.js 16 / React 19(App Router・RSC)でBFFと各ツールUIを統一: 認証ハブ(BFF)は機微なロジックをサーバ側に閉じ込め、Edge Runtimeミドルウェアで IPホワイトリスト+セッション検証を実施。各ツールも同じ Next.js 規約に揃え、学習コストとレビュー負荷を最小化
認証は『自作OIDCプロバイダ + per-tool 短命JWT』: Google Workspace SSO(NextAuth.js v5 / Identity Platform)を起点に、BFFがツールごとの audience に絞った短命トークン(アクセストークン10分・IDトークン1時間)を発行。PKCE S256 を必須化し、ツール間のなりすましと認可コード横取りを構造的に排除
重いAI処理はジョブ+ワークフローへ分離: 誤字検出は FastAPI(async)+ Cloud Run Jobs + Cloud Workflows で構成。OCRと音声認識を並列実行し、長時間ジョブをHTTPから切り離して進捗・再開・冪等性を担保。音声合成は ElevenLabs / Google Chirp3 の2系統をプロバイダ抽象の背後に置き、ダミーモードでAPIコストなしにテスト可能に
生成AIの審査支援は Gemini 2.5 + グラウンディング: 社内基準・ガイドライン等の観点別プロンプトで文書のリスクを判定し、グラウンディング由来の引用を付与して根拠を追跡可能に。API キー方式と Vertex AI(GCPサービスアカウント)方式を抽象化し、統制とコストで切替
データはGCPマネージドに集約: Cloud SQL(PostgreSQL / MySQL)はIAM認証・TLS必須(ENCRYPTED_ONLY)・プライベートIPで運用、キャッシュは Memorystore(Redis)、リアルタイム進捗は Firestore、素材は Cloud Storage。専用VMを持たずマネージドに寄せ、運用負荷とコストを抑制
インフラは100% Terraform(IaC): VPC〜Cloud Run〜Cloud SQL〜Cloud Armor〜Secret Manager〜Identity Platform〜Workflows まで約71モジュールでコード化。stg/prod の state を分離し、Cloud Build は『コンテナイメージと最新env』、Terraform は『インフラ構成』と責務を分離してドリフトを防止
CI/CDは Workload Identity Federation(OIDC)で鍵レス: GitHub Actions からサービスアカウント鍵を発行せずにGCPへ認証。Cloud Build で stg/prod を出し分け、DBマイグレーションは専用ジョブに分離。CodeQL・依存更新も自動化
実施したこと(Action)
【自作OIDC認証ハブ(BFF)】 Google Workspace SSO を起点に、BFFが各ツールへ audience を絞った短命JWT(アクセストークン10分・IDトークン1時間)を発行。認可フローは PKCE S256 を必須化し、ツールへのトークン受け渡しは URL ではなく自動 POST する HTMLフォーム+リダイレクト元オリジンの HMAC 署名で MITM を防止。デバイス単位のセッション管理により、特定デバイスのみの失効と権限変更の検知を可能に
【バックチャネルログアウトと権限同期】 ログアウト・権限変更を各ツールへ非同期配信する仕組みを実装。イベントは HMAC で署名し、指数バックオフ付きのリトライと一意制約でリプレイ・重複処理を排除。ツールを疎結合に保ちながら、全ツール横断のログアウトを確実に伝播
【PII暗号化と監査ログ】 外部ユーザーの個人情報は AES-256-GCM で暗号化保存し、検索は復号せずに HMAC トークンで部分一致。秘密値の比較は定数時間比較でタイミング攻撃を防止。セッションの作成・失効・更新は監査ログに記録し、内部統制の証跡を確保
【誤字検出パイプライン】 素材からテキストを抽出し、ローカルOCRでテキストの『切り替わり』を検出してユニークなテキスト群だけにLLM OCRを適用(フレーム全量にLLMを当てない)。また音声認識で発話を文字起こしし、OCR結果と照合して誤字脱字・NGワード・固有名詞の不一致を検出
【長時間ジョブの冪等・再開設計】 素材をセグメントに分割し、各テキストに決定的なIDを採番することで、並列処理しても後段マージでIDが安定し、再実行で冪等に。進捗は準リアルタイムでUIへ配信し、進捗表示の逆行を防止。アップロードは署名付きURLのチャンク並列で大容量素材に対応
【高品質な音声合成】 2系統のTTSプロバイダをプロバイダ抽象の背後に統一し、出力の音量・フェードを正規化。発音辞書・テキスト前処理に対応し、原稿は楽観ロックで同時編集の競合を検知。ダミーモードで実APIを叩かずに合成系をテストし、利用ログを全件記録してコストを可観測化
【素材のマルウェア検査(ゼロトラスト入口)】 アップロード素材はイベント駆動でマルウェアスキャナ(Cloud Run)に渡し、大容量でもストリーミング検査(バッファせずメモリ枯渇を回避)してクリーン/隔離へ振り分け。中間ファイルや削除済みファイルは安全に無視し、移動処理の原子性で再試行に冪等。スキャン結果は OpenTelemetry で Cloud Monitoring に送出
【IaC・セキュリティ・CI/CD】 GCP全体を約71のTerraformモジュールでコード化。Cloud Armor(OWASP CRS 3.3+適応型DDoS防御+レート制限)、Cloud SQL(IAM認証・TLS必須・プライベートIP)、Identity Platform(SMS MFA・reCAPTCHA Enterprise)、Secret Manager(最新版のみ参照)、最小権限のサービスアカウントで多層防御。CI/CD は Workload Identity Federation(OIDC)で鍵レス認証し、stg で WAF を全面有効化して本番前に誤検知を潰す運用に
本プラットフォームの設計思想は、『複数のAIツールを、単一の認証・運用規約のもとで、組織の統制に耐える品質で束ねる』ことでした。
認証ハブによる疎結合な統合: 各ツールにログイン機能を実装させると、認証品質がツールごとにばらつき、権限変更やログアウトの伝播が破綻します。そこでBFFを唯一のアイデンティティプロバイダとし、ツールには audience を絞った短命JWTだけを渡す設計にしました。トークンの受け渡しは URL ではなく自動 POST フォーム+オリジンHMAC署名で行い、リダイレクト経由のトークン漏洩を排除。ログアウト・権限変更はバックチャネルで署名付き・リトライ付き・重複排除付きに配信するため、ツールは疎結合のまま全社横断のセッション制御に追従します。
重いAI処理を『完走・再開・冪等』にする: テキストの誤字検出は、OCR(画像)と音声認識(発話)という重い処理の組み合わせです。フレーム全量にLLM OCRを当てるとコストが破綻するため、ローカルOCRでテキストの切り替わりを検出し、ユニークなテキスト群にだけLLMを適用します。長時間ジョブはセグメント分割し、決定的なIDを採番することで、並列実行・部分再実行・再試行のいずれでも最終結果が一意に収束します。
統制を機能と同列で作り込む: PIIは保存時に暗号化し、検索はHMACトークンで復号せずに行います。秘密値の比較は定数時間比較、認可フローは PKCE 必須、トークンは短命、操作は監査ログに残す——これらを後付けではなく初期設計に組み込みました。インフラ側も、Cloud SQL は IAM認証・TLS必須・プライベートIP、入口は Cloud Armor、CI/CD は鍵レス(OIDC)と多層で固め、stg で WAF を全面有効化して本番に出す前に誤検知や設定ミスを洗い出す運用にしています。
マネージドへの集約でコストと運用を最適化: 専用VMやKubernetesを持たず、Cloud Run(サービス+ジョブ)・Cloud SQL・Memorystore・Firestore・Cloud Workflows といったマネージドに寄せました。本番リージョンは常時1インスタンスを温め、副リージョンはゼロスケールでDR用とする非対称構成、Artifact Registry のイメージ保持上限などで、平常時コストを抑えつつ障害時の回復性を確保しています。
担当領域
- プラットフォーム設計・BFF認証ハブ(OIDC / バックチャネルログアウト / PII暗号化)の実装
- 音声合成サービス(ElevenLabs / Google Chirp3)のフロント・バックエンド実装
- 誤字検出パイプライン(FastAPI / Python / OCR / 音声認識 / Cloud Workflows)の実装
- 生成AI審査支援(Gemini 2.5 / Vertex AI / グラウンディング)の実装
- マルウェアスキャナ(ClamAV on Cloud Run / Eventarc)の実装
- GCPインフラ構築・運用(Terraform / Cloud Run / Cloud SQL / Cloud Armor / Identity Platform)
- CI/CD(Cloud Build / GitHub Actions / Workload Identity Federation)と可観測性の整備
使用技術
数字で見る成果
- 統合したAIサービス
- 5サービス共通BFF認証ハブ+音声合成・誤字検出・生成AI審査・マルウェア検査を単一SSOで統合
- アクセストークン有効期間
- 10分per-tool audience に絞った短命JWT。IDトークンは1時間・PKCE S256必須
- Terraformモジュール
- 71個VPC・Cloud Run・Cloud SQL・Cloud Armor・Identity Platform までGCPを100%コード化(IaC)
- PII暗号化
- 256bit (AES-GCM)メール・電話・氏名を暗号化保存し、検索はHMACトークンで復号せず実施
- ストリーミング検査の上限
- 10GiBClamAVでバッファせず検査しメモリ枯渇を回避。再試行に冪等
成果
- 性質の異なる5つのAIサービスを、Google Workspace SSO の一度のログインで横断利用できる社内プラットフォームとして統合。各ツールは独立してデプロイ・改善できる疎結合構成
- 自作OIDC認証ハブ(BFF)で、ツールごとに audience を絞った短命JWT(アクセストークン10分)を発行。PKCE S256 を必須化し、URLにトークンを載せない自動POST+オリジンHMAC署名でなりすまし・横取りを構造的に排除
- ログアウト・権限変更を、HMAC署名・指数バックオフ・重複排除付きのバックチャネルイベントで全ツールへ確実に伝播(疎結合のまま全社横断のセッション制御を実現)
- PIIを AES-256-GCM で暗号化保存し、検索は復号せず HMAC トークンで実施。定数時間比較・監査ログとあわせ、組織の内部統制要件に対応
- テキストの誤字脱字を、OCR(画像)と音声認識(発話)のクロスチェックで自動検出
- ハイブリッドOCR(ローカルでテキスト切り替わりを検出→LLM OCRは差分のみ)で、精度を保ちながらLLM呼び出しを最小化しコストを抑制
- 長時間ジョブに決定的なIDを採番し、並列処理・部分再実行・再試行のいずれでも結果が一意に収束する冪等・再開可能な設計を実装
- 高品質なAI音声(2系統TTS・発音辞書)を、プロバイダ抽象とダミーモードで保守性高く構築
- アップロード素材をストリーミング検査(最大10GiB・メモリ枯渇回避)し、クリーン/隔離へ原子的・冪等に振り分けるゼロトラストな入口を構築
- GCP全体を約71のTerraformモジュールでIaC化。Cloud SQL(IAM認証・TLS必須・プライベートIP)・Cloud Armor(OWASP CRS 3.3)・Identity Platform(MFA)・最小権限IAMで多層防御し、CI/CD は Workload Identity Federation(OIDC)で鍵レス化
同様の課題、抱えていませんか?
あなたのビジネス課題も、最新の技術で解決できます。まずは30分の無料技術相談から、状況をお聞かせください。
プロジェクト単位(請負)・技術顧問、どちらにも対応可能です