OAuth-Clients für IAP programmatisch erstellen

Auf dieser Seite wird beschrieben, wie Sie programmgesteuert OAuth-Clients für die Verwendung mit IAP erstellen und IAP programmgesteuert durchgängig für interne Anwendungen einrichten.

Bekannte Einschränkungen

Es gibt einige bekannte Einschränkungen für programmatisch erstellte OAuth-Clients:

  • Von der API erstellte OAuth-Clients können nur unter Einsatz der API geändert werden. Per API erstellte OAuth-Clients können nicht über die Cloud Console geändert werden.
  • Wenn Sie die API verwenden, sind pro Projekt nur 500 OAuth-Clients zulässig.
  • Von der API erstellte OAuth-Zustimmungsbildschirm-Marken haben bestimmte Beschränkungen. Weitere Informationen dazu finden Sie im nächsten Abschnitt.

Marken und Branding-Status verstehen

Der OAuth-Zustimmungsbildschirm, der Markeninformationen für Nutzer enthält, wird als eine Marke bezeichnet. Marken können auf interne oder öffentliche Nutzer beschränkt sein. Eine interne Marke macht den OAuth-Ablauf für eine Person zugänglich, die zur selben Google Workspace-Organisation wie das Projekt gehört. Eine öffentliche Marke macht den OAuth-Ablauf für jeden im Internet verfügbar.

Marken können manuell oder programmatisch über APIs erstellt werden. API-erstellte Marken werden automatisch mit unterschiedlichen Einstellungen konfiguriert:

  • Die Standardeinstellung ist intern; Marken müssen bei Bedarf manuell auf öffentlich gesetzt werden
  • Der Ausgangsstatus ist ungeprüft; es muss eine Markenprüfung ausgelöst werden

So bestimmen Sie manuell eine interne Marke als öffentlich:

  1. Öffnen Sie den OAuth-Zustimmungsbildschirm.
  2. Wählen Sie das gewünschte Projekt aus dem Dropdown-Menü aus.
  3. Beachten Sie, dass auf der Seite OAuth-Zustimmungsbildschirm der Wert für Nutzertyp automatisch als Intern bestimmt wird. Klicken Sie auf App bearbeiten, um eine App auf öffentlich zu setzen. Im Anschluss werden weitere Konfigurationsoptionen verfügbar.
  4. Klicken Sie unter Anwendungstyp auf öffentlich.

So lösen Sie eine Markenprüfung für eine ungeprüfte, API-erstellte Marke aus:

  1. Öffnen Sie den OAuth-Zustimmungsbildschirm.
  2. Wählen Sie das gewünschte Projekt aus dem Dropdown-Menü aus.
  3. Geben Sie auf der Seite OAuth-Zustimmungsbildschirm alle erforderlichen Informationen ein und klicken Sie auf Zur Prüfung einreichen.

Die Prüfung kann mehrere Tage dauern. Sie werden per E-Mail über den Fortschritt informiert. Weitere Informationen zur Prüfung. Während der Prüfungsprozess läuft können Sie die Anwendung weiter innerhalb Ihrer Google Workspace-Organisation nutzen. Weitere Informationen über das Verhalten Ihrer Anwendung vor der Bestätigung.

Hinweis

Bei der Erstellung eines Client muss der Aufrufer folgende Berechtigungen haben:

  • clientauthconfig.brands.list
  • clientauthconfig.brands.create
  • clientauthconfig.brands.get
  • clientauthconfig.clients.create
  • clientauthconfig.clients.listWithSecrets
  • clientauthconfig.clients.getWithSecret
  • clientauthconfig.clients.delete
  • clientauthconfig.clients.update

Diese Berechtigungen sind in den einfachen Rollen Editor (roles/editor) und Inhaber (roles/owner) enthalten. Wir empfehlen jedoch, eine benutzerdefinierte Rolle zu erstellen, die diese Berechtigungen enthält und sie stattdessen dem Aufrufer zu erteilen.

OAuth für IAP einrichten

In den folgenden Schritten wird beschrieben, wie Sie den Zustimmungsbildschirm konfigurieren und einen Oauth-Client für IAP erstellen.

  1. Prüfen Sie mit dem Befehl list, ob bereits eine Marke vorhanden ist. Sie können nur eine Marke pro Projekt haben.

    gcloud alpha iap oauth-brands list
    

    Hier sehen Sie ein Beispiel für eine gcloud-Antwort, wenn die Marke vorhanden ist:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. Wenn keine Marke vorhanden ist, verwenden Sie den Befehl create:

    gcloud alpha iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL
    

    Die obigen Felder sind für den Aufruf dieser API erforderlich:

    • supportEmail: Die Support-E-Mail-Adresse, die auf dem OAuth-Zustimmungsbildschirm angezeigt wird. Diese E-Mail-Adresse kann entweder die Adresse eines Nutzers oder ein Google Groups-Alias sein. Dienstkonten haben auch eine E-Mail-Adresse. Sie sind aber keine tatsächlich gültigen E-Mail-Adressen und können nicht beim Erstellen einer Marke verwendet werden. Ein Dienstkonto kann jedoch der Inhaber einer Google-Gruppe sein. Erstellen Sie entweder eine neue Google-Gruppe oder konfigurieren Sie eine vorhandene Gruppe und legen Sie das gewünschte Dienstkonto als Inhaber der Gruppe fest.

    • applicationTitle: Der Anwendungsname, der auf dem OAuth-Zustimmungsbildschirm angezeigt wird.

    Die Antwort umfasst die folgenden Felder:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    

IAP-OAuth-Client erstellen

  1. Verwenden Sie den Befehl "create", um einen Client zu erstellen. Verwenden Sie die Marke name aus dem vorherigen Schritt.

    gcloud alpha iap oauth-clients create projects/PROJECT_ID/brands/BRAND-ID --display_name=NAME
    

    Die Antwort umfasst die folgenden Felder:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID]
    secret: [CLIENT_SECRET]
    displayName: [NAME]
    
  2. Verwenden Sie die Client-ID (im obigen Beispiel client_id) und secret, um IAP zu aktivieren. Weitere Informationen zum Aktivieren von IAP mit den soeben erstellten Anmeldedaten finden Sie in folgenden Themen:

Authentifizierung wird durchgeführt

Wurde IAP für eine Anwendung konfiguriert, so müssen alle Anfragen authentifiziert werden. In folgenden Schritten wird beschrieben, wie Sie programmatisch auf eine IAP-gesicherte Anwendung zugreifen.

Endnutzerauthentifizierung

Nachdem Sie obige Schritte ausgeführt haben, finden Sie in diesem Thema weitere Informationen zur Authentifizierung mit OAuth 2.0. Sie müssen ein Aktualisierungstoken anfordern, um die Automatisierung zu ermöglichen. Während des OAuth-Ablaufs ist eine manuelle Einwilligung erforderlich, sie können aber mit dem Aktualisierungstoken neue Zugriffstokens programmatisch abrufen.

Dienstkonten und gcloud

So authentifizieren Sie sich mit einem Dienstkonto und gcloud:

  1. Erstellen Sie ein Dienstkonto und weisen Sie ihm die erforderlichen Berechtigungen zu.
  2. Erstellen Sie einen Dienstkontoschlüssel und laden Sie ihn in den gewünschten Pfad.
  3. Führen Sie folgenden gcloud-Befehl aus und geben Sie den Pfad zum Dienstkontoschlüssel an:

    gcloud auth activate-service-account [ACCOUNT-NAME]
        --key-file=/path/to/service-key.json --project=[PROJECT_ID]
    
  4. Führen Sie mit gcloud auth print-access-token API-Anfragen aus:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
        https://iap.googleapis.com/v1/projects/[PROJECT_ID_OR_NUMBER]/brands