IAP の OAuth クライアントをプログラムで作成

このページでは、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 で作成されたブランドは、異なる設定で自動的に構成されます。

  • これらは内部に設定されており、必要に応じて手動でパブリックに設定する必要があります
  • これらは「未確認」状態に設定されており、ブランド レビューをトリガーする必要があります

内部ブランドを手動でパブリックに設定するには:

  1. OAuth 同意画面を開きます。
  2. プルダウン メニューから目的のプロジェクトを選択します。
  3. [OAuth 同意画面] ページで、[ユーザータイプ] が [内部] に自動的に設定されていることに注意してください。[パブリック] に設定するには、[アプリを編集する] をクリックします。より多くの構成オプションが利用可能になります。
  4. [アプリケーション タイプ] で [パブリック] をクリックします。

未審査の API で作成されたブランドのブランド レビューをトリガーするには:

  1. OAuth 同意画面を開きます。
  2. プルダウン メニューから目的のプロジェクトを選択します。
  3. [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 用のクライアントを作成、認証する方法について説明します。

  1. Check if you already have an existing brand by using the list command. You may only have one brand per project.

    gcloud iap oauth-brands list

    The following is an example gcloud response, if the brand exists:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. If no brand exists, use the create command:

    gcloud iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL

    The above fields are required when calling this API:

    • supportEmail: The support email displayed on the OAuth consent screen. This email address can either be a user's address or a Google Groups alias. While service accounts also have an email address, they are not actual valid email addresses, and cannot be used when creating a brand. However, a service account can be the owner of a Google Group. Either create a new Google Group or configure an existing group and set the desired service account as an owner of the group.

    • applicationTitle: The application name displayed on OAuth consent screen.

    The response contains the following fields:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    

Creating an IAP OAuth Client

  1. Use the create command to create a client. Use the brand name from previous step.

    gcloud iap oauth-clients create projects/PROJECT_NUMBER/brands/BRAND-ID --display_name=NAME

    The response contains the following fields:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID]
    secret: [CLIENT_SECRET]
    displayName: [NAME]
    

クライアント ID(上記の例では client_id)と secret を使用して IAP を有効にします。作成した認証情報を使用して IAP を有効にする方法の詳細については、次のトピックをご覧ください。