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. list コマンドを使用して、既存のブランドがあるかどうかを確認します。1 つのプロジェクトで使用できるブランドは 1 つだけです。

    gcloud iap oauth-brands list

    ブランドがある場合の gcloud のレスポンスは次のとおりです。

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. ブランドが存在しない場合は、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 クライアントの作成

  1. 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]