OIDC-Anbieter für die Authentifizierung bei Clustern konfigurieren

Dieses Dokument richtet sich an Plattformadministratoren bzw. an die Person, die die Identitätseinrichtung in Ihrer Organisation verwaltet. Darin wird erläutert, wie Sie den ausgewählten OIDC-Identitätsanbieter (OpenID Connect) für die Authentifizierung bei Kubernetes-Clustern konfigurieren, die nicht auf Google Cloudausgeführt werden.

Clientanwendung beim Anbieter registrieren

Während des Authentifizierungsvorgangs für Nutzer verwendet der Cluster eine Client-ID und ein Secret, um eine Verbindung zu Ihrem Identitätsanbieter herzustellen. Sie können eine Client-ID und ein Secret von Ihrem Identitätsanbieter abrufen, indem Sie eine Clientanwendung für Kubernetes konfigurieren. Das Verfahren zum Einrichten einer Clientanwendung hängt von Ihrem Anbieter ab. 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 über 1024 angeben.
  • APISERVER_URL:11001/finish-login ist die Weiterleitungs-URL, wenn Sie die Authentifizierung mit 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 den Wert https://apiserver.company.com:11001/finish-login haben.

Speichern Sie die Client-ID und das Secret, die Sie bei der Registrierung erhalten. Geben Sie diese Informationen an Clusteradministratoren weiter, die ihre Cluster einrichten müssen.

Informationen zur Einrichtung des Identitätsanbieters

In diesem Abschnitt finden Sie eine Anleitung zum Registrieren einer Clientanwendung bei Microsoft Active Directory Federation Services (AD FS) oder bei Microsoft Entra ID.

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. AD FS identifiziert den Cluster anhand dieser Client-ID. Speichern Sie die Client-ID für eine spätere Verwendung.

  5. Wählen Sie Generate a shared secret aus. Der Kubernetes-Authentifizierungsmechanismus verwendet dieses Secret zur Authentifizierung beim AD FS-Server. Speichern Sie das Secret für später.

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 derGoogle Cloud -Konsole 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.

Kubernetes-Clientanwendung 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.

Microsoft Entra ID

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

  1. Richten Sie einen Microsoft Entra-Mandanten ein, falls Sie dies noch nicht getan haben.

  2. Registrieren Sie eine Anwendung in Microsoft Entra ID.

  3. Öffnen Sie im Microsoft Entra Admin Center die Seite App-Registrierungen und wählen Sie Ihre Anwendung aus. Die Übersichtsseite der Anwendung wird geöffnet.

  4. Clientschlüssel erstellen:

    1. Klicken Sie im Navigationsmenü auf Zertifikate und Secrets.
    2. Klicken Sie auf den Tab Clientschlüssel.
    3. Klicken Sie auf Neuer geheimer Clientschlüssel. Geben Sie einen Namen für das Secret ein und klicken Sie auf Hinzufügen.
    4. 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.

    Weitere Informationen finden Sie unter Anmeldedaten für Anwendungen in Microsoft Entra ID hinzufügen und verwalten.

  5. Weiterleitungs-URIs hinzufügen:

    1. Klicken Sie im Navigationsmenü auf Authentifizierung.
    2. Klicken Sie im Bereich Plattformkonfigurationen auf Plattform hinzufügen. Der Bereich Plattformen konfigurieren wird geöffnet.
    3. Klicken Sie auf Web.
    4. Geben Sie im Feld 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.
    5. Klicken Sie auf Konfigurieren.
    6. Klicken Sie auf URI hinzufügen, um einen weiteren URI hinzuzufügen.
    7. Geben Sie https://console.cloud.google.com/kubernetes/oidc für denGoogle Cloud -Konsolenanmeldevorgang ein.
    8. Speichern Sie Ihre Konfiguration.

    Weitere Informationen finden Sie unter Weiterleitungs-URI zur Anwendung hinzufügen.

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 Seite „Anwendungsübersicht“ im Microsoft Entra-Admin-Center angezeigt.

  • Client-ID: Die Client-ID wird als Application (client) ID auf der Seite „Anwendungsübersicht“ im Microsoft Entra Admin Center angezeigt.

  • Clientschlüssel: Der Wert des Clientschlüssels, den Sie bei der Registrierung der Clientanwendung erstellt haben. Wenn Sie keinen Zugriff auf diesen Wert haben, generieren Sie ein neues Secret.

Erweiterte Einrichtung für Microsoft Entra ID

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

  • Lokale Google Distributed Cloud-Bereitstellungen (sowohl VMware als auch Bare Metal): Ab Version 1.14
  • GKE on AWS: Ab Version 1.14 (Kubernetes-Version 1.25 oder höher)
  • GKE on Azure: Ab Version 1.14 (Kubernetes-Version 1.25 oder höher)

Bevor Sie beginnen, muss für jeden Nutzer eine E-Mail-Adresse als ID in Microsoft Entra ID konfiguriert sein. Diese E-Mail-Adresse wird verwendet, 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 der Kubernetes-Authentifizierungsmechanismus auf die Microsoft Graph API-Endpunkte zugreifen, von denen Gruppeninformationen abgerufen werden. Ohne diesen Schritt kann der Cluster keine Gruppeninformationen für den Nutzer abrufen. RBAC-Autorisierungsrichtlinien basierend auf Gruppen funktionieren dann nicht wie erwartet.

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

  1. Melden Sie sich im Microsoft Entra Admin Center an.
  2. Wählen Sie den Microsoft Entra-Mandanten mit Ihrer Clientanwendung aus.
  3. Wählen Sie App-Registrierungen 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 Administratoreinwilligung erteilen für.... Weitere Informationen finden Sie unter Weitere Informationen zu API-Berechtigungen und Administratoreinwilligung.

Details zum Identitätsanbieter teilen

Geben Sie die folgenden Anbieterinformationen an Ihren Clusteradministrator weiter, damit er den Cluster einrichten kann:

  • 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 Entra ID und Okta auffordert, muss der Clusteradministrator prompt=consent als Parameter angeben. Wenn Sie AD FS 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 sind zulässig, sofern die Kette bis zum Root-Zertifikat durchgehend ist. Wenn Sie diesen Wert in ClientConfig angeben, muss er als Base64-codierter String formatiert werden. Verketten Sie das oder die vollständigen PEM-codierten Zertifikate zu einem einzelnen String und codieren Sie diesen dann in Base64, um den String zu erstellen.

Weitere Informationen zu den Konfigurationsparametern für Cluster finden Sie unter Cluster konfigurieren.

Nächste Schritte