OAuth-Anwendung verwalten

In diesem Leitfaden erfahren Sie, wie Sie OAuth-basierte Anwendungsintegrationen mitGoogle Cloudverwalten.

So integrieren Sie eine OAuth-basierte Anwendung:

  1. Erstellen Sie einen OAuth-Client.
  2. Erstellen Sie OAuth-Client-Anmeldedaten.
  3. 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

  1. Sie müssen eine Google Cloud -Organisation eingerichtet haben.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  3. 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öchten
  • PROJECT_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 haben
  • APP_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öchten
  • PROJECT_ID: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert haben
  • REDIRECT_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 haben
  • APP_OAUTH_CLIENT_ID: die OAuth-Client-ID für den OAuth-Client, den Sie aktualisieren möchten
  • REDIRECT_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 soll
  • PROJECT_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 haben
  • APP_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:

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:

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 sollen
  • PROJECT_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 haben
  • APP_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:

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:

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:

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 haben
  • APP_OAUTH_CLIENT_ID: die OAuth-Client-ID
  • APP_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 haben
  • APP_OAUTH_CLIENT_ID: die OAuth-Client-ID
  • APP_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-ID
  • PROJECT_ID: die ID des Projekts, in dem Sie Ihre OAuth-Anwendung registriert haben
  • APP_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 haben
  • APP_OAUTH_CLIENT_ID: die Client-Anmeldedaten-ID
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: die OAuth-Client-ID

Nächste Schritte