In diesem Leitfaden erfahren Sie, wie Sie OAuth-basierte Anwendungsintegrationen mitGoogle Cloudverwalten.
So integrieren Sie eine OAuth-basierte Anwendung:
- Erstellen Sie einen OAuth-Client.
- Erstellen Sie OAuth-Client-Anmeldedaten.
- Rufen Sie in den OAuth-Clientanmeldedaten den Clientschlüssel ab. Informationen zu den Risiken, die mit dem Speichern und Abrufen des Clientschlüssels verbunden sind, und zu Strategien zur Risikominimierung finden Sie unter Sicherheitsrisiken und Risikominderung für OAuth-Clients und Anmeldedaten.
Nachdem Sie diese Schritte ausgeführt haben, kann die OAuth-basierte Anwendung auf Produkte und Daten vonGoogle Cloud zugreifen.
Hinweise
Sie müssen eine Google Cloud -Organisation eingerichtet haben.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Sie müssen einen Mitarbeiteridentitätspool und einen Anbieter in der Organisation eingerichtet haben, in der Sie die OAuth-Anwendung registrieren. Informationen zum Einrichten der Mitarbeiteridentitätsföderation für Microsoft Entra ID, Okta und andere OIDC- und SAML 2.0-Anbieter
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle IAM OAuth Client Admin (roles/iam.oauthClientAdmin
) für das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Registrieren einer OAuth-Anwendung für Ihre Organisation benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
OAuth-Clients verwalten
In diesem Abschnitt erfahren Sie, wie Sie OAuth-Clients verwalten.
OAuth-Client erstellen
So erstellen Sie einen OAuth-Client:
gcloud
gcloud iam oauth-clients create APP_OAUTH_CLIENT_ID \
--project=PROJECT_ID \
--location=global \
--client-type="CONFIDENTIAL_CLIENT" \
--display-name="My OAuth application" \
--description="An application registration for MyApp" \
--allowed-scopes="https://www.googleapis.com/auth/cloud-platform" \
--allowed-redirect-uris="REDIRECT_URI" \
--allowed-grant-types="authorization_code_grant"
Ersetzen Sie Folgendes:
APP_OAUTH_CLIENT_ID
: eine Client-ID, die diesen OAuth-Client repräsentiert.PROJECT_ID
: die ID des Projekts, in dem Sie den Mitarbeiteridentitätspool und den Anbieter erstellt haben. Das Projekt muss in der Organisation erstellt werden, in der Ihr Mitarbeiteridentitätspool und Anbieter erstellt wurden.REDIRECT_URI
: der Weiterleitungs-URI für die OAuth-Anwendung, z. B.https://myapp.com/signin-callback
.
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
-d "{ \
'allowedGrantTypes': ['AUTHORIZATION_CODE_GRANT'], \
'allowedRedirectUris': ['REDIRECT_URI'], \
'allowedScopes': ['https://www.googleapis.com/auth/cloud-platform'], \
'clientType': 'CONFIDENTIAL_CLIENT', \
'description': 'My OAuth client description', \
'disabled': false, \
'displayName': 'My OAuth client'}" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients\?oauthClientId\=APP_OAUTH_CLIENT_ID
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie den Mitarbeiteridentitätspool und den Anbieter erstellt haben. Das Projekt muss in der Organisation erstellt werden, in der Ihr Mitarbeiteridentitätspool und Anbieter erstellt wurden.REDIRECT_URI
: der Weiterleitungs-URI für die OAuth-Anwendung, z. B.https://myapp.com/signin-callback
.APP_OAUTH_CLIENT_ID
: eine Client-ID, die diesen OAuth-Client repräsentiert.
Nachdem Sie die Anwendung registriert haben, erstellen Sie die OAuth-Client-Anmeldedaten und rufen Sie das Secret ab, das die OAuth-Anwendung für den Zugriff aufGoogle Cloudverwendet.
OAuth-Clients auflisten
Führen Sie den folgenden Befehl aus, um registrierte OAuth-Clients aufzulisten:
gcloud
gcloud iam oauth-clients list \
--project=PROJECT_ID \
--location=global
REST
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients
Ersetzen Sie PROJECT_ID
durch die ID des Projekts, in dem Ihre OAuth-Anwendungen registriert sind.
OAuth-Client beschreiben
Führen Sie den folgenden Befehl aus, um einen OAuth-Client zu beschreiben:
gcloud
gcloud iam oauth-clients describe APP_OAUTH_CLIENT_ID \
--project PROJECT_ID \
--location global
Ersetzen Sie Folgendes:
APP_OAUTH_CLIENT_ID
: die ID des OAuth-Clients, den Sie beschreiben möchtenPROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert haben
REST
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die ID des OAuth-Clients, den Sie beschreiben möchten
OAuth-Client aktualisieren
Führen Sie den folgenden Befehl aus, um einen OAuth-Client zu aktualisieren.
gcloud
gcloud iam oauth-clients update APP_OAUTH_CLIENT_ID \
--project=PROJECT_ID \
--location=global \
--allowed-redirect-uris="REDIRECT_URI"
Ersetzen Sie Folgendes:
APP_OAUTH_CLIENT_ID
: die OAuth-Client-ID für den OAuth-Client, den Sie aktualisieren möchtenPROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenREDIRECT_URI
: die Weiterleitungs-URI für die OAuth-Anwendung
Verwenden Sie zum Aktualisieren anderer Felder die in gcloud iam oauth-clients update
aufgeführten Flags.
REST
curl -d'{"allowedRedirectUris":"REDIRECT_URI"}' \
-H "Content-Type: application/json" -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID?update_mask=allowed_redirect_uris
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die OAuth-Client-ID für den OAuth-Client, den Sie aktualisieren möchtenREDIRECT_URI
: der Weiterleitungs-URI für den OAuth-Client
Wenn Sie andere Felder aktualisieren möchten, setzen Sie update_mask
auf die Feldnamen, die in gcloud iam oauth-clients update
aufgeführt sind.
OAuth-Client löschen
Führen Sie den folgenden Befehl aus, um einen OAuth-Client zu löschen:
gcloud
gcloud iam oauth-clients delete APP_OAUTH_CLIENT_ID \
--project PROJECT_ID \
--location global
Ersetzen Sie Folgendes:
APP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, die gelöscht werden sollPROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert haben
REST
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, die gelöscht werden soll
OAuth-Clientanmeldedaten verwalten
In diesem Abschnitt erfahren Sie, wie Sie OAuth-Clientanmeldedaten für den OAuth-Client verwalten.
OAuth-Client-Anmeldedaten erstellen
Führen Sie den folgenden Befehl aus, um Anmeldedaten für einen OAuth-Client zu erstellen:
gcloud
gcloud iam oauth-clients credentials create APP_OAUTH_CLIENT_CREDENTIAL_ID \
--oauth-client=APP_OAUTH_CLIENT_ID \
--display-name='My OAuth client credential' \
--location='global'
Ersetzen Sie Folgendes:
APP_OAUTH_CLIENT_CREDENTIAL_ID
: eine ID, die diese Anmeldedaten des Clients darstelltAPP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, die Sie durch die Beschreibung der registrierten OAuth-Clientanwendung erhalten haben.
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
-d "{'disabled': false, 'displayName': 'My OAuth client credential'}" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials\?oauthClientCredentialId=APP_OAUTH_CLIENT_CREDENTIAL_ID
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, die Sie durch die Beschreibung der registrierten OAuth-Clientanwendung erhalten haben.APP_OAUTH_CLIENT_CREDENTIAL_ID
: eine ID, die diese Anmeldedaten des Clients darstellt
OAuth-Clientanmeldedaten auflisten
Führen Sie den folgenden Befehl aus, um OAuth-Clientanmeldedaten aufzulisten:
gcloud
gcloud iam oauth-clients credentials list \
--oauth-client=APP_OAUTH_CLIENT_ID \
--project=PROJECT_ID \
--location=global
Ersetzen Sie Folgendes:
APP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, für die Anmeldedaten aufgelistet werden sollenPROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert haben
REST
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/$PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, für die Anmeldedaten aufgeführt werden sollen
OAuth-Clientanmeldedaten beschreiben
Führen Sie den folgenden Befehl aus, um Anmeldedaten für einen OAuth-Client zu beschreiben. Sie können den Clientschlüssel in der Ausgabe abrufen.
gcloud
gcloud iam oauth-clients credentials describe APP_OAUTH_CLIENT_CREDENTIAL_ID \
--oauth-client=APP_OAUTH_CLIENT_ID \
--location='global'
Ersetzen Sie Folgendes:
APP_OAUTH_CLIENT_CREDENTIAL_ID
: der Weiterleitungs-URI für den OAuth-ClientAPP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, die Sie durch die Beschreibung der Registrierung der Clientanwendung erhalten haben.
REST
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_CREDENTIAL_ID
: der Weiterleitungs-URI für den OAuth-ClientAPP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, die Sie durch die Beschreibung der Registrierung der Clientanwendung erhalten haben.
In der Ausgabe ist clientSecret
der Clientschlüssel. Das ist das Secret, das die OAuth-Anwendung für den Zugriff auf Google Cloudverwendet.
OAuth-Client-Anmeldedaten aktualisieren
Führen Sie den folgenden Befehl aus, um die Anmeldedaten eines OAuth-Clients zu aktualisieren:
gcloud
gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
--client-id=APP_OAUTH_CLIENT_ID \
--display-name="My new credential name" \
--location=global
REST
curl -d'{"displayName":"My new credential name"}' -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=display_name
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_CREDENTIAL_ID
: der Weiterleitungs-URI für den OAuth-ClientAPP_OAUTH_CLIENT_ID
: die OAuth-Client-ID, die Sie durch die Beschreibung der Registrierung der Clientanwendung erhalten haben.
OAuth-Clientanmeldedaten deaktivieren
Bevor Sie OAuth-Clientanmeldedaten löschen können, müssen Sie sie deaktivieren. Führen Sie den folgenden Befehl aus, um die OAuth-Clientanmeldedaten zu deaktivieren:
gcloud
gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
--oauth-client=APP_OAUTH_CLIENT_ID \
--disabled \
--project=PROJECT_ID \
--location=global
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die OAuth-Client-IDAPP_OAUTH_CLIENT_CREDENTIAL_ID
: die ID der Anmeldedaten des Clients, die deaktiviert werden soll
REST
curl -d'{"disabled":"true"}' \
-H "Content-Type: application/json" -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=disabled
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die OAuth-Client-IDAPP_OAUTH_CLIENT_CREDENTIAL_ID
: die ID der Anmeldedaten des Clients, die deaktiviert werden soll
OAuth-Clientanmeldedaten löschen
Führen Sie den folgenden Befehl aus, um OAuth-Clientanmeldedaten zu löschen:
gcloud
gcloud iam oauth-clients credentials delete APP_OAUTH_CLIENT_CREDENTIAL_ID \
--project=PROJECT_ID \
--oauth-client=APP_OAUTH_CLIENT_ID \
--location=global
Ersetzen Sie Folgendes:
APP_OAUTH_CLIENT_CREDENTIAL_ID
: die OAuth-Client-IDPROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die Client-Anmeldedaten-ID
REST
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert habenAPP_OAUTH_CLIENT_ID
: die Client-Anmeldedaten-IDAPP_OAUTH_CLIENT_CREDENTIAL_ID
: die OAuth-Client-ID