IAP の OAuth クライアントの作成

このページでは、IAP クライアントを有効にするために必要な OAuth クライアントを作成する方法について説明します。

OAuth クライアントを作成する

Google Cloud コンソールを使用して、プロジェクトごとに最大 36 個の OAuth クライアントを作成できます。Google Cloud CLI を使用して、プロジェクトごとに最大 500 個の OAuth クライアントを作成できます。

コンソール

Google Cloud コンソールを使用して OAuth クライアントを作成するには、次の手順を行います。

  1. OAuth 同意画面の設定の手順に沿って、OAuth 同意画面を構成します。

  2. OAuth 2.0 の設定の手順に沿って、OAuth クライアントを作成します。

gcloud

既知の制限事項

API を使用してプログラムによって作成される OAuth クライアントには、次の制限があります。

  • API によって作成された OAuth クライアントは、API を使用してのみ変更できます。API を使用して OAuth クライアントを作成した場合は、Google Cloud コンソールで OAuth クライアントは変更できません。
  • API によって作成された OAuth クライアントは IAP 用としてのみ使用するようロックされているため、API でリダイレクト URI や他の属性を更新することはできません。
  • API は、Google Cloud コンソールを使用して作成された OAuth クライアントでは動作しません。
  • API を使用した場合、プロジェクトごとに許可される OAuth クライアントの数は 500 のみです。
  • API によって作成された OAuth 同意画面のブランドには特定の制限があります。詳しくはセクションをご覧ください。

ブランドとブランドの状態について理解する

ユーザーのブランド情報が含まれるOAuth 同意画面は、ブランドとして知られています。ブランドは、内部ユーザーまたはパブリック ユーザーに限定できます。内部ブランドを使用すると、プロジェクトと同じ Google Workspace 組織に属するユーザーが OAuth フローにアクセスできるようになります。パブリック ブランドにより、インターネット上の誰もが OAuth フローを利用できるようになります。

ブランドは API を使用して手動またはプログラムによって作成できます。API を使用して作成されたブランドは、次の設定で自動的に構成されます。

  • 内部。手動で一般公開に設定する必要があります。

  • 未審査。ブランド レビューをトリガーする必要があります。

内部ブランドを手動で public に設定するには:

  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
  • 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]