このページでは、IAP と使用する OAuth クライアントをプログラムで作成し、内部アプリケーション用にプログラムでエンドツーエンドに IAP を設定できるようにする方法について説明します。
既知の制限事項
この API を使用してプログラムによって作成される OAuth クライアントには、いくつかの制限があります。
- API によって作成された OAuth クライアントは、API を使用してのみ変更できます。API を使用して作成された OAuth クライアントは、Google Cloud コンソールでは変更できません。
- API によって作成された OAuth クライアントは IAP 用としてのみ使用するようロックされているため、API でリダイレクト URI や他の属性を更新することはできません。
- この API は、Google Cloud コンソールを使用して作成された OAuth クライアントでは動作しません。
- API を使用した場合、プロジェクトごとに許可される OAuth クライアントの数は 500 のみです。
- API によって作成された OAuth 同意画面のブランドには特定の制限があります。詳しくは下記のセクセクションをご覧ください。
ブランドとブランドの状態について理解する
ユーザーのブランド情報が含まれるOAuth 同意画面は、ブランドとして知られています。ブランドは、内部ユーザーまたはパブリック ユーザーに限定できます。内部ブランドを使用すると、プロジェクトと同じ Google Workspace 組織に属するユーザーが OAuth フローにアクセスできるようになります。パブリック ブランドにより、インターネット上の誰もが OAuth フローを利用できるようになります。
ブランドは API を介して手動またはプログラムで作成できます。API で作成されたブランドは、異なる設定で自動的に構成されます。
- これらは内部に設定されており、必要に応じて手動でパブリックに設定する必要があります
- これらは「未確認」状態に設定されており、ブランド レビューをトリガーする必要があります
内部ブランドを手動でパブリックに設定するには:
- OAuth 同意画面を開きます。
- プルダウン メニューから目的のプロジェクトを選択します。
- [OAuth 同意画面] ページで、[ユーザータイプ] が [内部] に自動的に設定されていることに注意してください。[パブリック] に設定するには、[アプリを編集する] をクリックします。より多くの構成オプションが利用可能になります。
- [アプリケーション タイプ] で [パブリック] をクリックします。
未審査の API で作成されたブランドのブランド レビューをトリガーするには:
- OAuth 同意画面を開きます。
- プルダウン メニューから目的のプロジェクトを選択します。
- [OAuth 同意画面] ページで、必要な情報を入力して、[確認のため送信] をクリックします。
この確認プロセスは数週間かかる場合があります。進捗に関する最新情報はメールで通知されます。詳しくは、確認プロセスの詳細をご覧ください。確認プロセスの進行中も、Google Workspace 組織内でアプリケーションを使用できます。確認前のアプリケーションの動作については、こちらをご覧ください。
始める前に
クライアントを作成する前に、呼び出し元に次の権限が付与されていることをまず確認してください。
clientauthconfig.brands.list
clientauthconfig.brands.create
clientauthconfig.brands.get
clientauthconfig.clients.create
clientauthconfig.clients.listWithSecrets
(シークレットを含む OAuth クライアントを一覧表示する場合にのみ必要です。)clientauthconfig.clients.getWithSecret
clientauthconfig.clients.delete
clientauthconfig.clients.update
これらの権限は編集者(roles/editor
)とオーナー(roles/owner
)の基本ロールに含まれていますが、代わりに、これらの権限を含むカスタムロールを作成し、呼び出し元に付与することをおすすめします。
OAuth for IAP を設定する
次の手順では、同意画面を構成し、IAP 用のクライアントを作成、認証する方法について説明します。
同意画面の構成
list コマンドを使用して、既存のブランドがあるかどうかを確認します。1 つのプロジェクトで使用できるブランドは 1 つだけです。
gcloud iap oauth-brands list
ブランドがある場合の gcloud のレスポンスは次のとおりです。
name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID] applicationTitle: [APPLICATION_TITLE] supportEmail: [SUPPORT_EMAIL] orgInternalOnly: true
ブランドが存在しない場合は、create コマンドを使用します。
gcloud iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL
上記のフィールドは、この API を呼び出すときに必要になります。
supportEmail
: OAuth 同意画面に表示されるサポートメール。このメールアドレスは、ユーザーのアドレスでも、Google グループのエイリアスでもかまいません。サービス アカウントにもメールアドレスがありますが、これは実際のメールアドレスではないため、ブランドの作成には使用できません。ただし、サービス アカウントは Google グループのオーナーに設定できます。新しい Google グループを作成するか、既存のグループを構成し、目的のサービス アカウントをそのグループのオーナーに設定します。applicationTitle
: OAuth 同意画面に表示されるアプリケーション名。
レスポンスには、次のフィールドが含まれます。
name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID] applicationTitle: [APPLICATION_TITLE] supportEmail: [SUPPORT_EMAIL] orgInternalOnly: true
IAP OAuth クライアントの作成
create コマンドを使用してクライアントをcreateします。前のステップのブランド
name
を使用します。gcloud iap oauth-clients create projects/PROJECT_NUMBER/brands/BRAND-ID --display_name=NAME
レスポンスには、次のフィールドが含まれます。
name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID] secret: [CLIENT_SECRET] displayName: [NAME]
クライアント ID(上記の例では client_id
)と secret
を使用して IAP を有効にします。作成した認証情報を使用して IAP を有効にする方法の詳細については、次のトピックをご覧ください。