Cloud OAuth API(cloudoauth.googleapis.com)は、Workforce Identity 連携に OAuth 2.0 と OpenID Connect(OIDC)のトークン交換と認証を提供します。
Cloud OAuth API は Google Cloud ユーザーを認証します。この API を使用すると、アプリケーションはユーザーを認可エンドポイント(https://auth.cloud.google/authorize)にリダイレクトして認可コードを取得できます。アプリケーションは、外部認証情報、認証コード、更新トークンを、有効期間の短い OAuth 2.0 アクセス トークンと OIDC ID トークンと交換できます。
この API は、OAuth 2.0 Token Exchange(RFC 8693)と OAuth 2.0 Authorization Framework(RFC 6749)の仕様に基づいています。
Security Token Service との比較
これまで、 Google Cloudの Security Token Service(sts.googleapis.com)は、Workforce Identity 連携と Workload Identity 連携の両方のトークン交換を処理していました。
Cloud OAuth API は、Security Token Service と同じトークン交換をサポートしていますが、Workforce Identity 連携トラフィック専用です。この分離により、従業員トークンの交換がワークロード トラフィックから分離されるため、サービス間の混乱を防ぎ、従業員のキャパシティを Security Token Service とは独立してスケーリングできます。統合ステータスに応じて、次のガイドラインに沿って対応してください。
- 新しい統合: ユーザーを認可エンドポイント(
https://auth.cloud.google/authorize)にリダイレクトし、Cloud OAuth API(cloudoauth.googleapis.com)を使用してトークンを交換します。 - 既存の統合: Security Token Service(
sts.googleapis.com/v1/oauthtokenまたはsts.googleapis.com/v1/token)を使用している場合は、cloudoauth.googleapis.comに移行します。
サポートされているエンドポイント
次の表に、Cloud OAuth API 統合で使用するエンドポイントを示します。これらのエンドポイントのほとんどは、組織スコープ(シングルテナント)のエンドポイントです。クライアント アプリケーションとリソースが単一の Google Cloud組織に制限されている場合、分離された鍵管理と検出を提供します。
組織スコープのエンドポイント URL で、ORGANIZATION_ID を数値の Google Cloud組織 ID に置き換えます。
| エンドポイント | メソッド | URL | 説明 |
|---|---|---|---|
| OpenID Connect の検出 | GET |
https://auth.cloud.google/oidc/organizations/ORGANIZATION_ID/.well-known/openid-configuration
|
組織の OpenID Connect Discovery 1.0 プロバイダ構成メタデータ(ディスカバリ ドキュメント)を返します。 |
| 承認 | GET |
https://auth.cloud.google/authorize |
フェデレーション ユーザーをリダイレクトして ID プロバイダ(IdP)でログインし、アプリケーションのリダイレクト URI に認証コードを返します。 |
| トークンの交換 | POST |
https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token
|
認証コードまたは更新トークンを OAuth 2.0 アクセス トークンと OIDC ID トークンと交換します。 |
| JSON Web Key Set(JWKS) | GET |
https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/.well-known/jwks.json
|
組織に発行された OIDC ID トークンの署名を検証するために使用される公開 JSON Web Key(JWK)を返します。 |
| ユーザー情報 | GET |
https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo
|
認証済みユーザーの OIDC 標準クレーム、カスタム ディレクトリ クレーム、グループ メンバーシップを取得します。 |
| エンタープライズ グループ | GET |
https://cloudoauth.googleapis.com/v1/common/groups |
認証済みユーザーのページ分けされたエンタープライズ グループ メンバーシップを取得します。 |
認可エンドポイント
OAuth 2.0 と OIDC の認可コードフローでは、アプリケーションは、フェデレーション ユーザーを Google Cloudの統合認可エンドポイント(https://auth.cloud.google/authorize)にリダイレクトして、IdP でログインします。認証が成功すると、認可エンドポイントは認可コードを使用してユーザーをアプリケーションのリダイレクト URI にリダイレクトします。アプリケーションは、トークン交換エンドポイントでこのコードをトークンと交換します。
OIDC ディスカバリと JWKS エンドポイント
Looker OIDC 統合の場合、Cloud OAuth API は、クライアント構成とトークン検証用に、認証されていない組織スコープのパブリック エンドポイントを提供します。
- OpenID Connect 検出エンドポイント: 組織の OpenID Connect Discovery 1.0 プロバイダ構成メタデータ(ディスカバリ ドキュメント)を提供します。ディスカバリ ドキュメントには、組織の
issuer識���子とエンドポイント URL(authorization_endpoint、token_endpoint、userinfo_endpoint、jwks_uri)が含まれています。また、サポートされているスコープ、クレーム、署名アルゴリズム(RS256)、Proof Key for Code Exchange(PKCE)コード チャレンジ メソッド(S256)も一覧表示されます。 - JSON Web Key Set(JWKS)エンドポイント: 組織の公開 JSON Web Key Set(JWKS)を提供します。アプリケーションは、
keys配列内の公開 JSON Web Key(JWK)を使用して、Cloud OAuth API によって発行された OIDC ID トークン(id_token)の暗号署名を検証します。
一般的な OIDC 統合では、アプリケーションは次の順序でこれらのエンドポイントを使用します。
- ディスカバリ ドキュメントを取得する: OpenID Connect ディスカバリ エンドポイント(
/.well-known/openid-configuration)にGETリクエストを送信し、エンドポイント URL(authorization_endpoint、token_endpoint、jwks_uri、userinfo_endpoint)を読み取ります。 - 認証コードをリクエストする: ユーザーを
authorization_endpoint(https://auth.cloud.google/authorize)にリダイレクトして、IdP でログインし、アプリケーションのリダイレクト URI で認証コードを受け取ります。 - 認証コードをトークンと交換する:
token_endpoint(/token)にPOSTリクエストを送信して、認証コードを OAuth 2.0 アクセス トークンと OIDC ID トークン(id_token)と交換します。 - ID トークンを検証する:
jwks_uri(/.well-known/jwks.json)から組織の公開鍵を取得し、それらを使用してid_tokenの暗号署名を検証します。 - 省略可: ユーザー情報を取得する: アクセス トークンを含む
GETリクエストをuserinfo_endpoint(/userinfo)に送信して、追加のユーザー プロファイル クレームとグループ メンバーシップを取得します。
次のステップ
- Cloud OAuth API でトークンを交換する
- Cloud OAuth API を使用してユーザー情報を取得する
- Cloud OAuth API を使用してエンタープライズ グループを取得する
- Workforce Identity 連携の OAuth アプリケーションを管理する
- Cloud OAuth REST API リファレンス