Benutzerdefinierte OAuth-Clients für IAP erstellen

Auf dieser Seite wird beschrieben, wie Sie einen OAuth-Client erstellen, wenn Sie die benutzerdefinierte OAuth-Konfiguration verwenden, um IAP mit Google-Identitäten zu aktivieren.

Wenn Sie einen von Google verwalteten OAuth-Client zum Aktivieren von IAP verwenden möchten, lesen Sie den Abschnitt IAP mit einem von Google verwalteten OAuth-Client aktivieren.

OAuth-Client erstellen

Sie können maximal 36 OAuth-Clients für jedes Projekt mit derGoogle Cloud -Konsole erstellen. Sie können mit der Google Cloud CLI maximal 500 OAuth-Clients pro Projekt erstellen.

Console

Führen Sie die folgenden Schritte aus, um einen OAuth-Client über dieGoogle Cloud -Konsole zu erstellen.

  1. Konfigurieren Sie den OAuth-Zustimmungsbildschirm gemäß der Anleitung unter OAuth-Zustimmungsbildschirm einrichten.

  2. Erstellen Sie einen OAuth-Client, indem Sie der Anleitung unter OAuth 2.0 einrichten folgen.

gcloud

Bekannte Einschränkungen

Im Folgenden finden Sie Einschränkungen für OAuth-Clients, die programmatisch über die API erstellt wurden:

  • 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 Google Cloud -Konsole geändert werden.
  • Die von der API erstellten OAuth-Clients sind nur für die IAP-Nutzung gesperrt. Daher sind über die API keine Aktualisierungen der Weiterleitungs-URI oder anderer Attribute möglich.
  • Die API funktioniert nicht mit OAuth-Clients, die über die Google Cloud Console erstellt wurden.
  • 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 finden Sie im 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. Marken, die über eine API erstellt werden, werden automatisch mit den folgenden Einstellungen konfiguriert:

  • Intern. Sie müssen sie manuell auf „öffentlich“ setzen.

  • Nicht überprüft. Sie müssen eine Markenprüfung auslösen.

So bestimmen Sie eine interne Marke als öffentlich:

  1. Öffnen Sie den OAuth-Zustimmungsbildschirm.
  2. Wählen Sie ein Projekt aus dem Drop-down-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 ein Projekt aus dem Drop-down-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.

Erforderliche Berechtigungen

Bei der Erstellung eines Clients 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. Check if you already have an existing brand by using the list command. You may only have one brand per project.

    gcloud iap oauth-brands list

    The following is an example gcloud response, if the brand exists:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. If no brand exists, use the create command:

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

    The above fields are required when calling this API:

    • supportEmail: The support email displayed on the OAuth consent screen. This email address can either be a user's address or a Google Groups alias. While service accounts also have an email address, they are not actual valid email addresses, and cannot be used when creating a brand. However, a service account can be the owner of a Google Group. Either create a new Google Group or configure an existing group and set the desired service account as an owner of the group.

    • applicationTitle: The application name displayed on OAuth consent screen.

    The response contains the following fields:

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

Creating an IAP OAuth Client

  1. Use the create command to create a client. Use the brand name from previous step.

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

    The response contains the following fields:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID]
    secret: [CLIENT_SECRET]
    displayName: [NAME]