Cloud OAuth API (cloudoauth.googleapis.com) 為員工身分聯盟提供 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 權杖交換 (RFC 8693) 和 OAuth 2.0 授權架構 (RFC 6749) 規格為基礎。
與 Security Token Service 的比較
過去, Google Cloud的Security Token Service (sts.googleapis.com) 會處理員工身分聯盟和 Workload Identity Federation 的權杖交換作業。
Cloud OAuth API 支援與 Security Token Service 相同的權杖交換,但專用於員工身分聯盟流量。這種分離方式可將員工權杖交換與工作負載流量隔離,有助於防止跨服務中斷,並讓員工容量獨立於 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組織時,提供獨立的金鑰管理和探索功能。
在組織範圍的端點網址中,將 ORGANIZATION_ID 替換為您的 Google Cloud組織 ID 數字:
| 端點 | 方法 | 網址 | 說明 |
|---|---|---|---|
| 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 |
將聯合身分使用者重新導向至識別資訊提供者 (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
|
傳回公開 JSON Web Key (JWK),用於驗證為組織核發的 OIDC ID 權杖簽章。 |
| 使用者資訊 | 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 provider 設定中繼資料 (導覽文件)。導覽文件包含組織的
issuer識別碼和端點網址 (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 整合中,應用程式會依下列順序使用這些端點:
- 擷取導覽文件:傳送
GET要求至 OpenID Connect 探索端點 (/.well-known/openid-configuration),並讀取端點網址 (authorization_endpoint、token_endpoint、jwks_uri和userinfo_endpoint)。 - 要求授權碼:將使用者重新導向至
authorization_endpoint(https://auth.cloud.google/authorize),讓他們使用 IdP 登入,並在應用程式的重新導向 URI 接收授權碼。 - 將授權碼換成權杖:傳送
POST要求至token_endpoint(/token),將授權碼換成 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 擷取企業群組
- 管理員工身分聯盟的 OAuth 應用程式
- Cloud OAuth REST API 參考資料