【要約】Google Cloud の IAP + WIF + IdP (Keycloak) でログイン実装 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
企業が Google Cloud 上でアプリケーションを運用する際、既存の社内 IdP をそのまま活用したいという課題がある。従来の Identity Platform を採用すると、以下の問題に直面する。
- ・シャドウアカウントの発生: ログイン時に Google 側にユーザーレコードが作成され、退職者管理等のガバナンスに支障が出る。
- ・権限管理の二重化: 社内 IdP のグループ情報を Google Cloud 側のアクセス制御に反映させるのが困難である。
// Approach
開発者は Workforce Identity Federation (WIF) を採用し、Google Cloud 側にユーザー情報を持たない構成を取る。具体的な実装ステップは以下の通りである。
1.WIF 設定: Organization レベルで WIF Pool を作成し、SAML プロバイダとして Keycloak を登録する。
2.OAuth 設定:
gcloud iam oauth-clients を用い、IAP 連携専用の OAuth Client と Credentials を作成する。3.IAP 設定: 作成した WIF Pool と OAuth Client を IAP のバックエンドサービスに紐付け、アクセス権を付与する。
// Result
既存の IdP でユーザー管理を一元化したまま、Google Cloud リソースへのセキュアなアクセスを実現した。これにより、以下の成果が得られる。
- ・ガバナンスの維持: Google Cloud 側にユーザー情報を保持せず、ステートレスな運用が可能となる。
- ・運用負荷の軽減: SAML 属性を用いた柔軟なアクセス制御を IdP 側から一括で行える。
- ・トラブル解決の知見: Cloud Run での 431 エラーや Cookie 欠落問題に対し、HTTP/2 (h2c) への変更という具体的な解決策が示された。
Senior Engineer Insight
> エンタープライズ用途において、WIF によるステートレスな認証はガバナンスの観点から極めて強力な選択肢だ。Identity Platform による二重管理を回避できる点は、大規模組織での運用コストを劇的に下げる。ただし、WIF Pool が Organization レベルのリソースである点や、OAuth Client の特殊性に注意が必要だ。また、Cloud Run 等のインフラ構成が認証フローに直接影響を与えるため、プロトコルレベルの深い設計力が求められる。