Diese Seite richtet sich an Infrastrukturbetreiber.
Auf dieser Seite wird beschrieben, wie Sie die Authentifizierung bei Anthos Management Center über den OIDC-Anbieter (OpenID Connect) aktivieren. OIDC ist eine Authentifizierungsebene, die auf OAuth 2.0 basiert und eine RESTful HTTP API angibt. Sie verwendet JSON als Datenformat.
Mit OIDC können Sie Ihren vorhandenen Identitätsanbieter zum Verwalten von Nutzer- und Gruppenauthentifizierung verwenden. Mit OIDC können Sie den Zugriff auf einen Cluster verwalten und die Standardverfahren in Ihrer Organisation zum Erstellen, Aktivieren und Deaktivieren von Konten verwenden.
Hinweis
Zum Einrichten von OIDC benötigen Sie Folgendes:
- Den Domainnamen für den Zugriff auf Management Center, der vom Infrastrukturbetreiber bereitgestellt wird, z. B.
anthos.example.com
. - Einen OIDC-Anbieter wie Microsoft Active Directory Federation Services (ADFS), Google SSO oder Keycloak. Sowohl der Cluster als auch Ihr Browser müssen eine Verbindung zum OIDC-Anbieter herstellen können. Der OIDC-Anbieter muss keine direkte Verbindung zurück zum Cluster herstellen. Wenn Sie keinen OIDC-Anbieter haben, erfahren Sie unter Mit Keycloak authentifizieren, wie Sie einen installieren. Keycloak dient nur zu Demonstrationszwecken und wird für eine Produktionsumgebung nicht empfohlen.
Identitätsprofile erstellen
Identitätsprofile enthalten die erforderliche Konfiguration für die Verwendung eines Identitätsanbieters für die Authentifizierung. Um ein Identitätsprofil zu erstellen, führen Sie die folgenden Schritte aus:
Öffnen Sie in der Management Center Console das Menü Identität und Zugriff.
Klicken Sie auf dem Tab Identität auf Anthos Identity Service (OIDC) einrichten.
Weisen Sie im Feld Profilname einen nutzerfreundlichen Profilnamen zu. Dies ist der Name, auf den das Profil verweist.
Geben Sie die URL des OIDC-Anbieters, die Client-ID und den Clientschlüssel Ihres OIDC-Anbieters ein.
Geben Sie im Feld Nutzernamenanforderung einen Nutzernamen ein. Die Nutzernamenanforderung ist die Anforderung im OIDC-Token, die den Nutzernamen enthält. Wenn die Nutzernamenanforderung beispielsweise
email
lautet, werden die Nutzer durch das Nutzerfeld im OIDC-Token identifiziert.Achten Sie beim Festlegen dieser Anforderung darauf, dass die Anforderung in den angeforderten Bereichen vorhanden ist.
Geben Sie im Feld Nutzernamenpräfix einen Wert ein. Das Nutzernamenpräfix wird verwendet, um zwischen Nutzern verschiedener Identitätsanbieter zu unterscheiden. Das Nutzerpräfix muss auch enthalten sein, wenn Sie Nutzern RBAC-Berechtigungen zuweisen.
Beispiel: Wenn der Nutzername
email
und das Nutzerpräfixprefix-
ist, werden Nutzer alsprefix-sally@example.com
identifiziert. Der Nutzer istsally@example.com
und das Präfixprefix-
wird dem Nutzer vorangestellt, um zwischen verschiedenen Identitätsanbietern zu unterscheiden.Geben Sie im Feld Gruppenanforderung einen Wert ein. Im Anthos-Wartemodus lautet die Standardeinstellung
groups
. Weitere Informationen zu Rollen-Bindungsgruppen finden Sie unter Rollenbindungen.Geben Sie im Feld Gruppenpräfix einen Wert ein. Mit dem Gruppenpräfix wird zwischen Gruppen verschiedener Identitätsanbieter unterschieden. Das Gruppenpräfix muss auch enthalten sein, wenn Sie Gruppen RBAC-Berechtigungen zuweisen.
Wenn die Gruppenanforderung beispielsweise
groups
und das Gruppenpräfixgroupprefix-
lautet, werden Gruppen alsgroupprefix-group
identifiziert. Die Gruppe istgroup
und das Präfixgroupprefix-
wird der Gruppe vorangestellt. Wir empfehlen, am Ende des Präfixes ein Trennzeichen einzufügen, wie in Schritt 6 beschrieben.(Optional) Geben Sie in das Feld Bereiche einen Wert ein, wenn die Bereiche nicht
openid email profile
lauten.Bereiche sind die Kennzeichnungen, die angeben, welche Zugriffsberechtigungen im ID-Token angefordert werden sollten:
openid
ist für OIDC erforderlich.profile
enthält die standardmäßigenprofile
-Anforderungen des Nutzers.email
enthält im Allgemeinen die Anforderungenemail
undemail_verified
.
Wenn der OIDC-Anbieter (z. B. Google SSO) zusätzliche Parameter benötigt, legen Sie das Feld Zusätzliche Parameter fest.
Für das Feld Zusätzliche Parameter kann beispielsweise
prompt=consent,access_type=offline
festgelegt werden, um vor jedem Autorisieren der Zugriffsbereiche einen Zustimmungsbildschirm einzublenden.Wenn die HTTPS-Verbindung zur Seite
/.well-known/openid-configuration
und/oder die JWKS-Seite Ihres OIDC-Anbieters durch ein nicht vertrauenswürdiges Zertifikat (z. B. durch ein selbst signiertes Zertifikat) geschützt sind, müssen Sie in das Feld OIDC-Anbieterzertifikat das HTTPS-Zertifikat Ihres OIDC-Anbieters eingeben.Codieren Sie das PEM-codierte Zertifikat für den OIDC-Anbieter in
base64
. Codieren Sie das Zertifikat, einschließlich der Header, inbase64
, um den String zu erstellen. Fügen Sie den resultierenden String als eine Zeile ein.Beispiel:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
Ein Beispiel für die Festlegung dieses Felds finden Sie unter Mit Keycloak authentifizieren.
Klicken Sie auf Senden und wechseln Sie zum Tab Identität und Zugriff zurück.
Registrieren Sie die Callback-URL beim OIDC-Anbieter.
Erstellen Sie zusätzliche Identitätsprofile. Dazu klicken Sie auf dem Tab Identitätsprofil auf Hinzufügen.
Identitätsprofile auf den Administratorcluster anwenden
Identitätsprofile müssen nach dem Erstellen auf Cluster angewendet werden.
Klicken Sie im Tab Identitätsprofil auf Auf Cluster anwenden.
Klicken Sie auf den Tab Administratorcluster. Wählen Sie in der Drop-down-Liste Profile den Profilnamen für das zuvor erstellte Profil aus. Sie können mehrere Profile auf den Cluster anwenden.
Prüfen Sie den Domainnamen für das Profil. Dies ist der Domainname, der dem Profil des Identitätsanbieters zugeordnet ist. Nicht authentifizierte Nutzer, die auf Pfade in der Domain zugreifen möchten, werden zur Anmeldung mit diesem Identitätsanbieter weitergeleitet. Dieser Domainname wird vom Infrastrukturbetreiber zugewiesen.
Jedem Profil muss ein anderer Domainname zugewiesen werden, wenn mehrere Profile gleichzeitig angewendet werden sollen.
Informationen zum Konfigurieren eines Domainnamens finden Sie unter Domainnamen für den Zugriff auf Management Center konfigurieren.
Geben Sie einen anfänglichen Nutzernamen ein, dem Zugriffsrechte des Plattformadministrators erteilt werden (z. B. alice@example.com, bob@example.com). Dem Nutzernamen muss das im Profil festgelegte Nutzerpräfix vorangestellt werden. Wenn das Präfix beispielsweise
prefix-
lautet, muss der Nutzername im Feld Anfänglicher Plattformadministrator so aussehen:prefix-alice@example.com
. Weitere Informationen zu Plattformadministratoren und zur Autorisierung finden Sie unter Autorisierungsrollen.Wenden Sie die Einstellungen an und warten Sie einige Minuten, bis die Konfigurationen angewendet wurden und die Dienste neu gestartet wurden.
Sie können jetzt mit Ihrem Domainnamen auf Management Center zugreifen. Wenn Sie nicht angemeldet sind, werden Sie zur Anmeldung an Ihren OIDC-Anbieter weitergeleitet.
OIDC über API konfigurieren
Anstatt OIDC über das Managementcenter zu konfigurieren, können Sie es auch über die API einrichten.
Zum Konfigurieren der OIDC-Authentifizierung müssen Sie die ClientConfig-CRD Ihres Administratorclusters mit Authentifizierungsdetails konfigurieren. Erstellen Sie dazu eine Datei mit folgendem Inhalt (z. B. admin-cluster-oidc-config.yaml
):
spec:
authentication:
- name: CONFIGURATION_NAME
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
# The URI to redirect users going through the OAuth flow using cloud
# console.
# This is a required parameter not supported by Anthos private mode, so
# a dummy value is required.
cloudConsoleRedirectURI: http://cloud.console.not.enabled
extraParams: EXTRA_PARAMS
issuerURI: ISSUER_URI
# The redirect URL that kubectl uses for authorization.
kubectlRedirectURI: http://localhost:9879/callback
scopes: SCOPES
userClaim: USER_CLAIM
groupsClaim: GROUPS_CLAIM
certificateAuthorityData: CERT_AUTHORITY_DATA
Ersetzen Sie Folgendes:
- CONFIGURATION_NAME: Der Name der zu erstellenden OIDC-Konfiguration.
- CLIENT_ID: Die ID für die Clientanwendung, die Authentifizierungsanfragen an den OpenID-Anbieter sendet.
- CLIENT_SECRET: Secret für die Clientanwendung.
- EXTRA_PARAMS: zusätzliche Schlüssel/Wert-Parameter (durch Kommas getrennt), die an den OpenID-Anbieter gesendet werden sollen.
- ISSUER_URI: URL, wo Autorisierungsanfragen an Ihre OpenID gesendet werden.
- SCOPES: zusätzliche Bereiche (durch Kommas getrennt), die an den OpenID-Anbieter gesendet werden sollen.
- USER_CLAIM: JWT-Anspruch zur Verwendung als Nutzername. Je nach OpenID-Anbieter können Sie andere Anforderungen auswählen, beispielsweise E-Mail-Adresse oder Name. Allerdings wird anderen Anforderungen als der E-Mail-Adresse die Aussteller-URL vorangestellt, um Namenskonflikte zu vermeiden.
- GROUPS_CLAIM: Name des Anspruchs im OIDC-ID-Token, das die Informationen der Nutzergruppe enthält.
- CERT_AUTHORITY_DATA: Ein optionales base64- und PEM-codiertes Zertifikat für den OIDC-Anbieter. Entfernen Sie es, wenn es nicht erforderlich ist. Codieren Sie das Zertifikat, einschließlich der Header, in base64, um den String zu erstellen. Fügen Sie den erstellten String in certificateAuthorityData als eine Zeile ein.
Nachdem Sie die Datei mit der gewünschten Konfiguration bearbeitet haben, führen Sie den folgenden Befehl aus:
kubectl patch --kubeconfig=ADMIN_KUBECONFIG clientconfig default -n kube-public \
--type=merge --patch "$(cat OIDC_CONFIG)"
Ersetzen Sie Folgendes:
- ADMIN_KUBECONFIG: der Pfad zur kubeconfig-Datei des Administratorclusters.
- OIDC_CONFIG: Pfad zur erstellten Konfigurationsdatei.
Mit OIDC beim Kubernetes API-Server des Administratorclusters anmelden
Nutzer können admin-actl-auth-login-config.yaml
von der Seite Identität und Zugriff herunterladen, nachdem OIDC eingerichtet wurde.
Klicken Sie auf der Seite „Identität und Zugriff“ auf den Tab Identität und dann auf den Tab Cluster.
Suchen Sie den Cluster Admin und klicken Sie auf Konfigurationsdetails ansehen.
Klicken Sie auf Anmeldekonfiguration herunterladen, um die Konfiguration herunterzuladen, die für die Anmeldung mit Identität beim Kubernetes API-Server des Administratorclusters benötigt wird.
Die Ausgabedatei
admin-actl-auth-login-config.yaml
enthält die Konfiguration, die Nutzer für die Authentifizierung beim Administratorcluster benötigen. Geben Sieadmin-actl-auth-login-config.yaml
für vertrauenswürdige Nutzer frei, die Zugriff auf den Cluster benötigen.Nach Erhalt von
admin-actl-auth-login-config.yaml
können sich Nutzer mit dem Befehlactl auth login
anmelden. Bei erfolgreicher Anmeldung über einen Browser wird eine kubeconfig-Datei generiert. Nutzer können diese neue Datei mit ihren föderierten Anmeldedaten für den Cluster verwenden:# Where to store the new kubeconfig export ADMIN_OIDC_KUBECONFIG=$(pwd)/admin-oidc-kubeconfig actl auth login --login-config=admin-actl-auth-login-config.yaml --cluster=admin \ --kubeconfig=${ADMIN_OIDC_KUBECONFIG} \ --preferred-auth="CONFIGURATION_NAME"
Ersetzen Sie
CONFIGURATION_NAME
durch den Namen des Identitätsprofils, das zur Authentifizierung dient.Nutzer können jetzt
${ADMIN_OIDC_KUBECONFIG}
für den Zugriff auf Ressourcen im Administrator-Cluster verwenden. Beispiel:kubectl get pods -n anthos-management-center --kubeconfig=${ADMIN_OIDC_KUBECONFIG}
${ADMIN_OIDC_KUBECONFIG}
kann auch verwendet werden, umactl
-CLI-Befehle zu authentifizieren. Beispiel:actl platform management-center describe --kubeconfig=${ADMIN_OIDC_KUBECONFIG}
Authentifizierungskonfiguration zurücksetzen
Wenn ein Plattformadministrator aufgrund eines Fehlers in den Authentifizierungseinstellungen keinen Zugriff mehr auf Management Center hat, führen Sie den folgenden Befehl aus, um die OIDC-Authentifizierung auf die ursprüngliche Einrichtung zurückzusetzen und die neue Zugriffs-URL für Management Center abzurufen.
actl auth reset --kubeconfig=ADMIN_KUBECONFIG
# Get the new access URL to management center.
actl platform management-center describe --kubeconfig=ADMIN_KUBECONFIG