Mit der Cloud OAuth API (cloudoauth.googleapis.com) können Sie Autorisierungscodes oder Aktualisierungstokens gegen kurzlebige Google CloudOAuth 2.0-Zugriffstokens und OpenID Connect-ID-Tokens (OIDC) austauschen. In Integrationen der Mitarbeiteridentitätsföderation können Ihre Anwendungen dann die zurückgegebenen ID-Tokens mit den öffentlichen Schlüsseln Ihrer Organisation verifizieren und die Zugriffstokens verwenden, umGoogle Cloud -APIs im Namen föderierter Nutzer aufzurufen.
Hinweis
- Workforce Identity-Pool und -Anbieter konfigurieren Weitere Informationen finden Sie unter Mitarbeiteridentitätsföderation konfigurieren.
- Registrieren Sie einen OAuth-Client und erstellen Sie Clientanmeldedaten. Weitere Informationen finden Sie unter OAuth-Anwendungen verwalten.
-
Aktivieren Sie die Cloud OAuth API, falls sie noch nicht aktiviert ist.
Erforderliche Rollen zum Aktivieren von APIs
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen
Authentifizierungsmethoden
Wenn Sie Ihren OAuth-Client bei der Cloud OAuth API authentifizieren möchten, übergeben Sie Ihre Client-ID und Ihren Clientschlüssel auf eine der folgenden Arten:
HTTP-Basisauthentifizierung (empfohlen): Übergeben Sie die Base64-codierte Client-ID und den Clientschlüssel im Header
Authorization:-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)"
Anfragetextparameter: Übergeben Sie die Parameter
client_idundclient_secretim Anfragetext.
Autorisierungscode gegen Tokens austauschen
Nachdem sich ein föderierter Nutzer mit seinem Identitätsanbieter (IdP) beim einheitlichen Autorisierungsendpunkt vonGoogle Cloud(https://auth.cloud.google/authorize) angemeldet hat, leitet der Autorisierungsendpunkt den Nutzer mit einem Autorisierungscode an den Weiterleitungs-URI Ihrer Anwendung weiter. Wenn Sie diesen Autorisierungscode gegen ein Zugriffstoken, ein Aktualisierungstoken und ein OIDC-ID-Token eintauschen möchten, senden Sie eine HTTP-POST-Anfrage an den organisationsbezogenen (einzelmandantenfähigen) Endpunkt:
HTTP-Basisauthentifizierung (empfohlen):
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI"
Anfragetextparameter:
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI" \ --data-urlencode "client_id=CLIENT_ID" \ --data-urlencode "client_secret=CLIENT_SECRET"
Ersetzen Sie Folgendes:
ORGANIZATION_ID: Ihre numerische Google Cloud-Organisations-ID.BASE64_ENCODED_CREDENTIALS: der base64-codierte String vonCLIENT_ID:CLIENT_SECRET.AUTHORIZATION_CODE: der Autorisierungscode, der vom einheitlichen Autorisierungsendpunkt von Google Cloud(https://auth.cloud.google/authorize) zurückgegeben wird.REDIRECT_URI: der Weiterleitungs-URI, der auf Ihrem OAuth-Client konfiguriert ist.CLIENT_ID: Ihre registrierte OAuth-Client-ID.CLIENT_SECRET: Ihr OAuth-Clientschlüssel.
Zugriffstoken aktualisieren
Wenn ein Zugriffstoken abläuft, verwenden Sie den Genehmigungstyp refresh_token, um ein neues kurzlebiges Zugriffstoken vom Endpunkt auf Organisationsebene (Einzelmandant) abzurufen:
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=refresh_token" \ --data-urlencode "refresh_token=REFRESH_TOKEN" \ --data-urlencode "redirect_uri=REDIRECT_URI"
Ersetzen Sie Folgendes:
ORGANIZATION_ID: Ihre numerische Google Cloud-Organisations-ID.BASE64_ENCODED_CREDENTIALS: der base64-codierte String vonCLIENT_ID:CLIENT_SECRET.REFRESH_TOKEN: das Aktualisierungstoken, das der Token-Endpunkt zuvor zurückgegeben hat.REDIRECT_URI: der Weiterleitungs-URI, der auf Ihrem OAuth-Client konfiguriert ist.
Token-Antwortfelder
Wenn ein Tokenaustausch erfolgreich ist, gibt die Cloud OAuth API den HTTP-Status 200 OK mit den folgenden Feldern zurück:
| Feld | Typ | Beschreibung |
|---|---|---|
access_token |
string |
Das von der Cloud OAuth API ausgestellte OAuth 2.0-Zugriffstoken zum Aufrufen von Google Cloud -APIs. |
refresh_token |
string |
Das Aktualisierungstoken, mit dem neue Zugriffstokens abgerufen werden, wenn das aktuelle Token abläuft. |
expires_in |
integer |
Die verbleibende Lebensdauer des Zugriffstokens in Sekunden (normalerweise 3599).
|
token_type |
string |
Der Tokentyp (z. B. Bearer). |
scope |
string |
Eine Liste der mit dem Token verknüpften Bereiche. |
id_token |
string |
Das OIDC-ID-Token, das authentifizierte Identitätsansprüche enthält. |
Informationen zu Fehlerantworten, die von der Cloud OAuth API zurückgegeben werden, finden Sie unter Cloud OAuth API-Tokenaustauschfehler.
OIDC-ID-Token prüfen
Bei Looker-OIDC-Integrationen können Sie die kryptografische Signatur des von der Cloud OAuth API zurückgegebenen id_token mithilfe der öffentlichen JSON Web Keys (JWKs) Ihrer Organisation überprüfen.
Rufen Sie die öffentlichen JWKs der Organisation auf eine der folgenden Arten ab:
- JWKS-Endpunkt (JSON Web Key Set) direkt abfragen: Senden Sie eine HTTP-
GET-Anfrage anhttps://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/.well-known/jwks.json. - OIDC-Discovery-Dokument verwenden: Senden Sie eine HTTP-
GET-Anfrage an den OIDC-Discovery-Endpunkt (https://auth.cloud.google/oidc/organizations/ORGANIZATION_ID/.well-known/openid-configuration), um die JWKS-Endpunkt-URL aus dem Feldjwks_uriabzurufen.
Ersetzen Sie in beiden Endpunkt-URLs ORGANIZATION_ID durch die numerische Organisations-ID von Google Cloud .
Nächste Schritte
- Nutzerinformationen mit der Cloud OAuth API abrufen
- Unternehmensgruppen mit der Cloud OAuth API abrufen
- Cloud OAuth API – Übersicht
- OAuth-Anwendungen für die Mitarbeiteridentitätsföderation verwalten
- Cloud OAuth REST API-Referenz