OIDC-Anbieter für GKE Identity Service konfigurieren

In diesem Dokument wird erläutert, wie Sie den ausgewählten OIDC-Identitätsanbieter (OpenID Connect) für GKE Identity Service konfigurieren. Weitere Informationen zu GKE Identity Service finden Sie in der Übersicht.

Dieses Dokument richtet sich an Plattformadministratoren bzw. an die Person, die die Identitätseinrichtung in Ihrer Organisation verwaltet. Wenn Sie Clusteradministrator oder Anwendungsoperator sind, bitten Sie Ihren Plattformadministrator, diesen Abschnitt zu befolgen, bevor Sie beginnen, Cluster für GKE Identity Service auf Flottenebene zu konfigurieren oder Cluster für GKE Identity Service mit OIDC zu 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 größer als 1024 ist.
  • APISERVER-URL:11001/finish-login ist die Weiterleitungs-URL, wenn Sie die Authentifizierung über FQDN-Zugriff auswählen. Ersetzen Sie APISERVER-URL durch die URL, die den FQDN des Clusterservers hat. Wenn APISERVER-URL beispielsweise https://cluster.company.com ist, sollte redirect_uri https://cluster.company.com:11001/finish-login sein.

Speichern Sie die Client-ID und das Secret, die Sie im Rahmen der Registrierung erhalten. Geben Sie diese Details für Clusteradministratoren frei, die den GKE Identity Service einrichten müssen. Stellen Sie sicher, dass Sie Folgendes getan haben:

  • Konfigurieren Sie Ihren Domain Name Service (DNS), um APISERVER-URL zu den VIPs der Steuerungsebene (virtuelle IP-Adressen) aufzulösen. Nutzer können über diesen Domainnamen auf den Cluster zugreifen.
  • Verwenden Sie ein SNI-Zertifikat (Server Name Indication), das von Ihrer vertrauenswürdigen Unternehmenszertifizierungsstelle ausgestellt wurde. Bei diesem Zertifikat wird APISERVER-URL als gültige Domain erwähnt, wodurch potenzielle Zertifikatwarnungen für Nutzer vermieden werden. Sie können das SNI-Zertifikat während der Clustererstellung bereitstellen. Weitere Informationen zur Authentifizierung mit SNI-Zertifikaten finden Sie unter Authentifizierung von SNI-Zertifikaten.
  • Wenn SNI-Zertifikate nicht möglich sind, konfigurieren Sie alle Nutzergeräte so, dass sie dem Cluster-CA-Zertifikat vertrauen. Dadurch werden Zertifikatwarnungen vermieden, aber die Verteilung des Cluster-CA-Zertifikats an alle Nutzer ist erforderlich.

Weitere Informationen zum Nutzeranmelde-Zugriff mit diesen Zertifikaten finden Sie unter Mit FQDN-Zugriff authentifizieren.

Informationen zur Einrichtung des Anbieters

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

Verwenden Sie diese erweiterte Einrichtung nur, wenn Sie Cluster mit gruppenbasierten Azure AD-Autorisierungsrichtlinien einrichten möchten, bei denen die Nutzer der Cluster 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): Von GKE Enterprise 1.14
  • Anthos-Cluster in AWS: Ab GKE Enterprise 1.14 (Kubernetes-Version 1.25 oder höher)
  • Anthos-Cluster auf Azure: Ab GKE Enterprise 1.14 (Kubernetes-Version 1.25 oder höher)
  • Anthos-Cluster in AWS (vorherige Generation): Von GKE Enterprise 1.14

Prüfen Sie zuerst, 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.

Achten Sie darauf, dass der Client, den Sie im vorherigen Abschnitt registriert haben, delegierte Berechtigungen hat, 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.

Anbieterdetails teilen

Der Clusteradministrator muss die folgenden erforderlichen Informationen für die Clusterkonfiguration haben:

  • 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 Zertifikat verwendet, das von einer öffentlichen Zertifizierungsstelle signiert wurde, 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 zurück zum Root-Zertifikat führt. Wenn Sie diesen Wert in ClientConfig angeben, muss er als base64-codierter String formatiert sein. Zum Erstellen des Strings verketten Sie die vollständigen PEM-codierten Zertifikate zu einem einzelnen String und codieren Sie ihn dann mit base64.

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