この記事では、外部 ID を使用するように Identity-Aware Proxy(IAP)を構成する方法について説明します。IAP と Identity Platform を組み合わせることで、Google アカウントだけでなく、OAuth、SAML、OIDC など、さまざまな ID プロバイダを使用してユーザーを認証できます。
Identity Platform の有効化と構成
IAP は Identity Platform を使用して外部 ID の認証を行います。このプラットフォームを有効にする方法については、Identity Platform のクイックスタートをご覧ください。
複数のテナントを使用する場合は、マルチテナンシーのスタートガイドの手順にも従う必要があります。リソースを分離する必要がない場合は、この手順をスキップし、プロジェクト レベルですべてのプロバイダを構成できます。マルチテナンシーを有効にするかどうかわからない場合は、外部 ID の概要をご覧ください。
最後に、プロバイダを有効にします。クイックスタートには、ユーザー名とパスワードで認証を行う方法が説明されていますが、Identity Platform は次のようにさまざまなプロバイダ タイプをサポートしています。
- メールとパスワード
- OAuth(Google、Facebook、Twitter など)
- SAML
- OIDC
- 電話番号
- 匿名
他のプロバイダの構成方法については、Identity Platform のドキュメントの残りの部分をご覧ください。電話番号、匿名による認証はマルチテナントでの使用には対応していません。メールリンクを使用したパスワードなしのログインは、IAP ではサポートされていません。
外部 ID を使用するための IAP の有効化
Identity Platform を設定したら、IAP を認証に使用するように構成できます。
Google Cloud コンソールで [IAP] ページを開きます。
[IAP] ページを開くIdentity Platform の構成に使用したプロジェクトを選択します。別のプロジェクトを使用することはできません。
[アプリケーション] タブを選択します。
IAP を使用してアクセスを制限するサービスを探します。
IAP 列のスイッチを [オン] に設定します。
サイドパネルで、「承認には外部 ID を使用します」というラベルのボックスで [開始] をクリックします。
選択内容を確認します。
Identity Platform のサイドパネル:
独自のログイン ページを作成するか、IAP でログイン ページ作成するかを選択します。
IAP を使用してログインページを作成すると、すぐに作成を開始できます。追加のサービスをデプロイしたり、新しいコードを記述する必要はありません。また、JSON を使用して細かいカスタマイズを指定することもできます。詳細については、Cloud Run での認証 UI のホスティングをご覧ください。
ドメインで制限された共有: プロジェクトが組織のポリシーにおけるドメインで制限された共有制約の適用対象となっている場合、デフォルトでは公開サービスを作成できません。タグと条件付きポリシーを使用して、特定のサービスをこの制約から除外できます。詳細については、ドメインで制限された共有が適用される場合のパブリック Cloud Run サービスの作成に関するブログ投稿をご覧ください。
独自のページを作成するのは手間がかかりますが、認証フローとエクスペリエンスを完全に制御できます。詳細については、FirebaseUI を使用した認証 UI の作成とカスタム認証 UI の作成をご覧ください。
独自の UI を構築する場合は、認証 URL を入力します。IAP は、受信した未認証リクエストをこの URL にリダイレクトします。
URL への API キーの追加は任意です。キーを指定しない場合、Google Cloud コンソールでデフォルトのキーが自動的に追加されます。
プロジェクト プロバイダを使用するのか、テナントを使用するのかを選択します。
有効にするプロバイダまたはテナントのボックスをオンにします。プロバイダまたはテナントを変更する必要がある場合は、[プロバイダを構成] を選択します。
[保存] をクリックします。
これで、ユーザーを外部 ID で認証するように IAP が構成されました。
Google ID への切り替え
外部 ID を使用すると、IAM を承認に使用できなくなります。Google ID に戻して IAM を利用する場合は、次の操作を行います。
Google Cloud コンソールで [IAP] ページに戻ります。
[IAP] ページを開くIAP の使用が構成されているリソースを選択します。
Identity Platform の情報パネルを開きます。
[Use IAM to manage this resource] を選択します。
Google ID に戻すと、認証 URL がクリアされます。関連するプロジェクトとテナントもクリアされます。
次のステップ
- Cloud Run でログイン ページをホストする。
- FirebaseUI を使用してログイン ページを作成する。
- カスタム ログイン ページを作成する。
- 外部 ID と IAP が連携する仕組みを理解する。