OIDC-Anbieter für GKE Identity Service konfigurieren

Dieses Dokument richtet sich an Plattformadministratoren bzw. an die Person, die die Identitätseinrichtung in Ihrer Organisation verwaltet. Es wird erläutert, wie Sie den ausgewählten OIDC-Identitätsanbieter (OpenID Connect) für GKE Identity Service konfigurieren.

Registrieren Sie GKE Identity Service bei Ihrem Anbieter

Die Einrichtung von GKE Identity Service erfordert eine einzelne Client-ID und ein Secret von Ihrem Identitätsanbieter. Diese ID und dieses Secret werden von GKE Identity Service verwendet, wenn eine Verbindung zum Anbieter als Teil des Authentifizierungsvorgangs für Nutzer hergestellt wird. Um sie zu erhalten, müssen Sie GKE Identity Service bei Ihrem Anbieter als Clientanwendung registrieren. Gehen Sie dabei wie für Ihren Anbieter gewohnt vor. Im nächsten Abschnitt finden Sie einige spezifische Registrierungsdetails für beliebte Anbieter.

Geben Sie für Weiterleitungs-URLs die folgenden Werte an:

  • https://console.cloud.google.com/kubernetes/oidc ist die Weiterleitungs-URL für die Google Cloud Console.
  • http://localhost:PORT/callback ist die Weiterleitungs-URL für die gcloud CLI. Sie können eine beliebige Portnummer angeben, die höher als 1024 ist.
  • APISERVER-URL:11001/finish-login ist die Weiterleitungs-URL, wenn Sie eine Authentifizierung mit dem FQDN-Zugriff auswählen. Ersetzen Sie APISERVER-URL durch den FQDN des Kubernetes API-Servers des Clusters. Wenn APISERVER-URL beispielsweise https://apiserver.company.com ist, sollte redirect_uri der Wert https://apiserver.company.com:11001/finish-login sein.

Speichern Sie die Client-ID und das Secret, die Sie im Registrierungsschritt erhalten. Geben Sie diese Details an Clusteradministratoren weiter, die den GKE Identity Service einrichten müssen.

Informationen zur Einrichtung des Identitätsanbieters

Dieser Abschnitt enthält zusätzliche anbieterspezifische Informationen zur Registrierung von GKE Identity Service. Wenn Ihr Anbieter hier aufgeführt ist, registrieren Sie GKE Identity Service mithilfe der folgenden Anleitung als Clientanwendung bei Ihrem Anbieter.

Microsoft AD FS

Es steht Ihnen ein Set an AD FS-Verwaltungsassistenten zur Verfügung, mit denen Sie Ihren AD FS-Server und Ihre AD-Nutzerdatenbank konfigurieren können.

  1. Öffnen Sie das AD FS-Verwaltungsfenster.

  2. Wählen Sie Application Groups, Actions und Add an Application Group aus.

  3. Wählen Sie Server Application aus. Geben Sie einen Namen und eine Beschreibung ein. Klicken Sie auf Next.

  4. Geben Sie Ihre beiden Weiterleitungs-URLs wie oben angegeben ein. Sie erhalten eine Client-ID. Damit identifiziert der AD FS-Server den GKE Identity Service. Speichern Sie die Client-ID für eine spätere Verwendung.

  5. Wählen Sie Generate a shared secret aus. GKE Identity Service verwendet dieses Secret zur Authentifizierung beim AD FS-Server. Speichern Sie das Secret für eine spätere Verwendung.

Sicherheitsgruppen konfigurieren (optional)

  1. Wählen Sie in der AD FS-Verwaltung Relying party trusts und dann Add a new relying party trust aus.

  2. Wählen Sie Claims aware aus und klicken Sie auf Start.

  3. Wählen Sie Enter data about relying party manually aus.

  4. Geben Sie einen Anzeigenamen ein.

  5. Überspringen Sie die beiden nächsten Schritte.

  6. Geben Sie eine Vertrauensstellungs-ID für die vertrauende Seite ein. Vorschlag: token-groups-claim.

  7. Wählen Sie für Access control policy die Option Permit everyone aus. Mit dieser Auswahl wird festgelegt, dass alle Nutzer ihre Sicherheitsgruppeninformationen mit der gcloud CLI und der Google Cloud Console teilen.

  8. Klicken Sie auf Beenden.

LDAP-Attribute zu Anforderungsnamen zuordnen

  1. Wählen Sie in der AD FS-Verwaltung Relying party trusts und dann Edit claim issuance policy aus.

  2. Wählen Sie Send LDAP Attributes as Claims aus und klicken Sie auf Weiter.

  3. Geben Sie für Claim rule name den Wert groups ein.

  4. Wählen Sie für Attribute store die Option Active Directory aus.

  5. Wählen Sie in der Tabelle unter LDAP Attribute Folgendes aus:

    • AD FS Version 5.0 und höher: Token-Groups Qualified by Domain name
    • AD FS-Versionen vor 5.0: Token Groups – Qualified Names
  6. Wählen Sie unter Outgoing Claim Type Folgendes aus:

    • AD FS-Version 5.0 und höher: Group
    • AD FS-Versionen vor 5.0: Groups
  7. Klicken Sie auf Finish und dann auf Apply.

GKE Identity Service bei AD FS registrieren

Öffnen Sie im Administratormodus ein PowerShell-Fenster und geben Sie folgenden Befehl ein:

Grant-AD FSApplicationPermission `
  -ClientRoleIdentifier "[CLIENT_ID]" `
 -ServerRoleIdentifier [SERVER_ROLE_IDENTIFIER] `
  -ScopeName "allatclaims", "openid"

Ersetzen Sie Folgendes:

  • [CLIENT_ID] ist die Client-ID, die Sie zuvor abgerufen haben.

  • [SERVER_ROLE_IDENTIFIER] ist die Anforderungs-ID, die Sie zuvor eingegeben haben. Denken Sie daran, dass als ID token-groups-claim vorgeschlagen wurde.

Azure AD

OAuth-Client bei Azure registrieren

Führen Sie die Schritte unter den folgenden Links aus, um einen OAuth-Client bei Azure zu registrieren:

  1. Richten Sie einen Mandanten in Azure Active Directory ein, falls Sie dies noch nicht getan haben.

  2. Registrieren Sie eine Anwendung bei der Microsoft-Identitätsplattform.

  3. Öffnen Sie die Seite App-Registrierungen im Azure-Portal und wählen Sie den Namen der Anwendung aus.

  4. Erstellen Sie einen Clientschlüssel.

    1. Klicken Sie unter Grundlagen auf Zertifikat oder Secret hinzufügen. Eine Liste mit Zertifikaten und Secrets wird angezeigt.

    2. Klicken Sie auf Neuer geheimer Clientschlüssel. Geben Sie einen Namen für das Secret ein und klicken Sie auf Hinzufügen.

    3. Speichern Sie den Wert* des Secrets an einem sicheren Ort. Sie können sie nicht mehr abrufen, nachdem Sie die Seite geschlossen oder aktualisiert haben.

  5. Fügen Sie Weiterleitungs-URIs hinzu.

    1. Kehren Sie zur Seite mit den Anwendungen zurück.

    2. Wählen Sie unter Essentials die Option Weiterleitungs-URI hinzufügen aus. Die Seite Authentifizierung wird angezeigt.

    3. Wählen Sie Plattform hinzufügen aus. Daraufhin wird rechts der Bereich Plattformen konfigurieren angezeigt.

    4. Wählen Sie Web aus. Geben Sie unter Weiterleitungs-URIs http://localhost:PORT/callback für den Anmeldevorgang für die gcloud CLI ein. Wählen Sie einen PORT größer als 1.024 aus. Klicken Sie auf die Schaltfläche Konfigurieren.

    5. Klicken Sie auf die Schaltfläche URI hinzufügen, um einen weiteren URI (https://console.cloud.google.com/kubernetes/oidc) für die Anmeldung in der Google Cloud Console hinzuzufügen.

    6. Klicken Sie oben auf die Schaltfläche Speichern.

Ihre Kundenregistrierung ist jetzt abgeschlossen. Sie benötigen die folgenden Informationen für Ihren Clusteradministrator:

  • Aussteller-URI: https://login.microsoftonline.com/TENANT_ID/v2.0. Die Mandanten-ID wird als Directory (tenant) ID auf der Anwendungsseite im Azure-Portal angezeigt.

  • Client-ID: Die Client-ID wird als Application (client) ID auf der Anwendungsseite im Azure-Portal angezeigt.

  • Clientschlüssel: Diesen haben Sie im letzten Schritt erhalten. Sie können diese nicht mehr abrufen, wenn Sie die Seite nach der Secret-Erstellung schließen. Speichern Sie den Wert an einem sicheren Ort (oder generieren Sie ein neues Secret, wenn Sie das vorherige vergessen).

Erweiterte Einrichtung für Azure AD

Sie sollten diese erweiterte Einrichtung nur verwenden, wenn Sie Cluster mit gruppenbasierten Azure AD-Autorisierungsrichtlinien einrichten möchten, bei denen die Cluster-Nutzer zu mehr als 200 Azure AD-Gruppen gehören. Die erweiterte Einrichtung für Azure AD unterstützt die folgenden Plattformen:

  • Lokale GKE-Cluster (sowohl VMware als auch Bare Metal): Ab GKE Enterprise 1.14
  • Anthos Clusters on AWS: Von GKE Enterprise 1.14 (Kubernetes-Version 1.25 oder höher)
  • Anthos-Cluster on Azure: Ab GKE Enterprise 1.14 (Kubernetes-Version 1.25 oder höher)
  • Anthos Clusters on AWS (vorherige Generation): Ab GKE Enterprise 1.14

Bevor Sie beginnen, prüfen Sie, ob für jeden Nutzer eine E-Mail-Adresse als ID in Azure AD konfiguriert ist. GKE Identity Service verwendet die E-Mail-Adresse des Nutzers, um die Identität des Nutzers zu bestätigen und die Anfrage zu authentifizieren.

Der Client, den Sie im vorherigen Abschnitt registriert haben, muss delegierte Berechtigungen haben, um Nutzer- und Gruppeninformationen von der Microsoft Graph API abzurufen. Mit diesen Berechtigungen kann das GKE Identity Service-Plug-in auf die Microsoft Graph API-Endpunkte zugreifen, von denen Gruppeninformationen abgerufen werden. Ohne diesen Schritt kann GKE Identity Service keine Gruppen des Nutzers auflisten und RBAC-Autorisierungsrichtlinien basierend auf Gruppen funktionieren nicht wie erwartet.

Sie benötigen globale Administrator- oder Organisationsadministratorberechtigungen, um diesen Einrichtungsschritt auszuführen.

  1. Melden Sie sich im Azure-Portal an.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie im oberen Menü den Filter "Verzeichnis + Abo" aus, um den Mandanten mit der Registrierung Ihrer Client-App auszuwählen.
  3. Wählen Sie Azure Active Directory – Anwendungsregistrierungen und dann Ihre Clientanwendung aus.
  4. Wählen Sie API-Berechtigungen – Berechtigung hinzufügen – Microsoft Graph – Delegierte Berechtigungen aus.
  5. Klicken Sie auf dem Tab Gruppe auf das Kästchen Group.Read.All. Klicken Sie auf dem Tab Nutzer auf das Kästchen User.Read.All.
  6. Klicken Sie auf Berechtigungen hinzufügen, um den Vorgang abzuschließen.
  7. Wenn Sie im Namen aller Nutzer die Einwilligung erteilen möchten, klicken Sie auf die Schaltfläche Administratoreinwilligung erteilen für.... Weitere Informationen zum Erteilen der Administratoreinwilligung finden Sie unter Weitere Informationen zu API-Berechtigungen und Administratoreinwilligung.

Details zum Identitätsanbieter teilen

Geben Sie Ihrem Clusteradministrator die folgenden Anbieterinformationen für die Clustereinrichtung:

  • Den Aussteller-URI des Anbieters
  • Den Clientschlüssel
  • Die Client-ID
  • Der Weiterleitungs-URI und der Port, den Sie für die gcloud CLI angegeben haben
  • Das Feld „Nutzername“ (Anforderung), mit dem Ihr Anbieter Nutzer in seinen Tokens identifiziert (der angenommene Standardwert beim Konfigurieren von Clustern ist sub)
  • Das Feld „Gruppenname“ (Anforderung), mit dem Ihr Anbieter Sicherheitsgruppen gegebenenfalls zurückgibt.
  • Alle zusätzlichen Bereiche oder Parameter, die für Ihren Anbieter spezifisch sind, wie im vorherigen Abschnitt beschrieben. Wenn Ihr Autorisierungsserver beispielsweise zur Zustimmung zur Authentifizierung bei Microsoft Azure und Okta auffordert, muss der Clusteradministrator prompt=consent als Parameter angeben. Wenn Sie ADFS so konfiguriert haben, dass Informationen zur Sicherheitsgruppe bereitgestellt werden, ist der relevante zusätzliche Parameter resource=token-groups-claim (bzw. die von Ihnen ausgewählte Vertrauensstellungs-ID für die vertrauende Seite).
  • Optional: Wenn Ihr Anbieter kein von einer öffentlichen Zertifizierungsstelle signiertes Zertifikat nutzt (z. B. wenn Sie selbst signierte Zertifikate verwenden), benötigen Sie ein Zertifikat (oder eine Zertifikatskette) des Identitätsanbieters. Das Zertifikat oder die Zertifikatskette muss mindestens das Root-Zertifikat enthalten. Teilketten werden akzeptiert, solange die Kette an das Root-Zertifikat zurückgeht. Wenn Sie diesen Wert in ClientConfig angeben, muss er als base64-codierter String formatiert werden. Verketten Sie zum Erstellen des Strings die vollständigen PEM-codierten Zertifikate zu einem einzelnen String und codieren Sie ihn mit base64.

Eine vollständige Liste der GKE Identity Service-Konfigurationsparameter finden Sie unter Cluster konfigurieren.

Nächste Schritte

Ihr Clusteradministrator kann GKE Identity Service für einzelne Cluster oder eine Flotte einrichten.