In diesem Leitfaden wird beschrieben, wie Sie externe Anmeldedaten, Autorisierungscodes oder Aktualisierungstokens für Google Cloud Zugriffstokens austauschen, indem Sie die Cloud OAuth API (cloudoauth.googleapis.com) in Workforce Identity-Föderation-Integrationen verwenden.
Hinweis
- Konfigurieren Sie einen Workforce Identity-Pool und -Anbieter. 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.
Rollen, die zum Aktivieren von APIs erforderlich sind
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 Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen
Authentifizierungsmethoden
Die Cloud OAuth API unterstützt zwei Clientauthentifizierungsmethoden:
HTTP-Basisauthentifizierung (empfohlen): Übergeben Sie die Base64-codierte Client-ID und das Client-Secret im
Authorization-Header:-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)"
Parameter für den Anfragetext: Übergeben Sie die Parameter
client_idundclient_secretim Anfragetext.
Autorisierungscode gegen Tokens austauschen
Wenn Sie einen Google Cloud -Autorisierungscode gegen ein Zugriffstoken und ein Aktualisierungstoken eintauschen möchten, senden Sie eine HTTP-POST-Anfrage:
Endpunkt auf Organisationsebene (Single-Tenant)
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"
Anmeldedaten für den Anfragetext
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:
BASE64_ENCODED_CREDENTIALS: Der Base64-codierte String vonCLIENT_ID:CLIENT_SECRET.AUTHORIZATION_CODE: Der vonGoogle Cloudausgestellte Autorisierungscode.REDIRECT_URI: der Weiterleitungs-URI, der für Ihren OAuth-Client konfiguriert ist.ORGANIZATION_ID: Ihre numerische Google CloudOrganisations-ID.CLIENT_ID: Ihre registrierte OAuth-Client-ID.CLIENT_SECRET: Ihr OAuth-Clientschlüssel.
Zugriffstoken aktualisieren
Wenn ein Zugriffstoken abläuft, verwenden Sie den Grant-Typ refresh_token, um ein neues kurzlebiges Zugriffstoken abzurufen:
Endpunkt auf Organisationsebene (Single-Tenant)
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 REFRESH_TOKEN durch das Aktualisierungstoken, das zuvor vom Token-Endpunkt zurückgegeben wurde.
Felder der Token-Antwort
Wenn ein Tokenaustausch erfolgreich ist, gibt die Cloud OAuth API einen HTTP-Statuscode 200 OK mit den folgenden Feldern zurück:
| Feld | Typ | Beschreibung |
|---|---|---|
access_token |
string |
Das von der Cloud OAuth API ausgegebene OAuth 2.0-Zugriffstoken zum Aufrufen von Google Cloud APIs. |
refresh_token |
string |
Das Aktualisierungstoken, das verwendet wird, um neue Zugriffstokens abzurufen, wenn das aktuelle Token abläuft. |
expires_in |
integer |
Die verbleibende Lebensdauer des Zugriffstokens in Sekunden (in der Regel 3599). |
token_type |
string |
Der Tokentyp (z. B. Bearer). |
scope |
string |
Die Liste der mit dem Token verknüpften Bereiche. |
id_token |
string |
Das OIDC-ID-Token, das Ansprüche der authentifizierten Identität enthält. |
Informationen zu Fehlerantworten, die von der Cloud OAuth API zurückgegeben werden, finden Sie unter Cloud OAuth API-Tokenaustauschfehler.
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 Workforce Identity-Föderation verwalten
- Cloud OAuth REST API-Referenz