Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das kubelogin-Plug-In in Azure ist ein client-go-Anmeldeinformations-Plug-In, das die Microsoft Entra-Authentifizierung implementiert. Das kubelogin-Plug-In bietet Funktionen, die im kubectl-Befehlszeilenstool nicht verfügbar sind. Weitere Informationen finden Sie in der Einführung zu kubelogin Einführung und kubectl.
Dieser Artikel enthält eine Übersicht und Beispiele für die Verwendung von Kubelogin für alle unterstützten Microsoft Entra-Authentifizierungsmethoden in AKS.
Einschränkungen der Kubelogin-Authentifizierung in AKS
- Gruppen, die in Microsoft Entra erstellt werden, werden nur durch ihren ObjectID-Wert und nicht durch ihren Anzeigenamen eingeschlossen. Der Befehl
sAMAccountNameist nur für Gruppen verfügbar, die aus dem lokalen Windows Server Active Directory synchronisiert werden.
- Die Dienstprinzipalauthentifizierungsmethode funktioniert nur mit verwaltetem Microsoft Entra und nicht mit der früheren Version von Azure Active Directory.
- Der Dienstprinzipal kann Mitglied von maximal 200 Microsoft Entra Gruppen sein. Wenn Sie mehr als 200 Gruppen haben, sollten Sie Anwendungsrollen verwenden.
- Die Gerätecode-Authentifizierungsmethode funktioniert nicht, wenn eine Microsoft Entra-Richtlinie für den bedingten Zugriff auf einen Microsoft Entra-Mandanten festgelegt ist. Verwenden Sie in diesem Szenario stattdessen die interaktive Webbrowserauthentifizierung.
- Die Azure CLI-Authentifizierungsmethode funktioniert nur mit von AKS verwalteten Microsoft Entra.
Funktionsweise der Authentifizierung
Hinweis
Beachten Sie die folgenden Informationen zur Kubelogin-Authentifizierung für AKS-Cluster, die in Microsoft Entra integriert sind:
- Cluster mit Kubernetes Version 1.24 oder höher verwenden automatisch das Kubelogin-Format.
- Cluster, die Kubernetes 1.24 oder früher ausführen , erfordern eine manuelle Konvertierung. Sie können die Methode für die Gerätecodeauthentifizierung verwenden, um die Kubeconfig-Datei in das exec-Plug-In-Format zu konvertieren.
Für die meisten Interaktionen mit kubelogin wird der Unterbefehl convert-kubeconfig verwendet. Der Unterbefehl verwendet die kubeconfig-Datei, die in --kubeconfig oder in der Umgebungsvariablen KUBECONFIG angegeben ist, um die endgültige kubeconfig-Datei basierend auf der angegebenen Authentifizierungsmethode in das exec-Format zu konvertieren.
Die von kubelogin implementierten Authentifizierungsmethoden sind Microsoft-Entra-OAuth-2.0-Token-Grant-Flows. Bei jeder Authentifizierungsmethode wird das Token nicht im Dateisystem zwischengespeichert.
Gerätecodeauthentifizierung
Der Gerätecode ist die Standardauthentifizierungsmethode für den Unterbefehl convert-kubeconfig. Bei dieser Authentifizierungsmethode wird der Gerätecode abgefragt, damit sich der Benutzer über eine Browsersitzung anmelden kann.
Hinweis
Bevor die Plug-Ins kubelogin und exec eingeführt wurden, unterstützte die Azure-Authentifizierungsmethode in kubectl ausschließlich den Gerätecodeflow. Es wurde eine frühere Version einer Bibliothek verwendet, die ein Token erzeugt, das das audience-Anspruch mit einem spn:-Präfix enthält. Es ist nicht kompatibel mit AKS verwaltetem Microsoft Entra, das einen On-Behalf-Of-Flow (OBO) verwendet. Wenn Sie den Unterbefehl convert-kubeconfig ausführen, entfernt kubelogin das spn:-Präfix aus dem Zielgruppenanspruch.
Parameter für die Gerätecodeauthentifizierung
In der folgenden Tabelle sind Parameter aufgeführt, die Sie mit der Gerätecodeauthentifizierung verwenden können:
| Parameter | Description |
|---|---|
-l devicecode (wahlweise) |
Gibt die Kubelogin-Authentifizierungsmethode an. Dieser Parameter ist optional, da Gerätecode die Standardmethode ist. |
--legacy |
Verwendet das Legacyverhalten für frühere Versionen von Azure Active Directory-Clustern. Wenn Sie die kubeconfig-Datei in einem Azure Active Directory-Cluster einer früheren Version verwenden, fügt kubelogin automatisch das Flag --legacy hinzu. |
--token-cache-dir |
Überschreibt den Standardpfad des Tokencacheverzeichnisses, das ${HOME}/.kube/cache/kubelogin ist. |
Azure CLI-Authentifizierung
Die Azure CLI -Authentifizierungsmethode (Befehl: -l azurecli) verwendet den angemeldeten Kontext, den die Azure CLI zum Abrufen des Zugriffstokens herstellt. Das Token wird in demselben Microsoft Entra-Mandanten wie az login ausgegeben. Kubelogin schreibt keine Token in die Tokencachedatei, da die Azure CLI sie bereits verwaltet.
Parameter für die Azure CLI-Authentifizierung
In der folgenden Tabelle sind Parameter aufgeführt, die Sie mit der Azure CLI-Authentifizierung verwenden können:
| Parameter | Description |
|---|---|
-l azurecli |
Gibt die Kubelogin-Authentifizierungsmethode an. |
--azure-config-dir |
Gibt das Azure CLI-Konfigurationsverzeichnis an. Das Standardverzeichnis ist ${HOME}/.azure. |
Anmelden bei Azure
Melden Sie sich mit dem az login-Befehl bei Azure an.
az login
Interaktive Authentifizierung des Webbrowsers
Die interaktive Authentifizierungsmethode öffnet automatisch einen Webbrowser, um den Benutzer anzumelden (Befehl: -l interactive). Nachdem der Benutzer authentifiziert wurde, leitet der Browser mithilfe der überprüften Anmeldeinformationen an den lokalen Webserver um. Diese Authentifizierungsmethode entspricht der Richtlinie für bedingten Zugriff.
Sie können entweder ein Bearertoken oder ein PoP-Token (Proof-of-Possession) mit dieser Authentifizierungsmethode verwenden.
Parameter für die Bearertokenauthentifizierung
In der folgenden Tabelle sind Parameter aufgeführt, die Sie mit der Bearertokenauthentifizierung verwenden können:
| Parameter | Description |
|---|---|
-l interactive |
Gibt die Kubelogin-Authentifizierungsmethode an. |
--token-cache-dir |
Überschreibt den Standardpfad des Tokencacheverzeichnisses, das ${HOME}/.kube/cache/kubelogin ist. |
Parameter für die PoP-Tokenauthentifizierung
In der folgenden Tabelle sind Parameter aufgeführt, die Sie mit der PoP-Tokenauthentifizierung verwenden können:
| Parameter | Description |
|---|---|
-l interactive |
Gibt die Kubelogin-Authentifizierungsmethode an. |
--pop-enabled |
Aktiviert die PoP-Tokenauthentifizierung. |
--pop-claims |
Gibt die PoP-Tokenansprüche in einem Schlüsselwert-Paarformat an. Beispiel: u=/ARM/ID/OF/CLUSTER. |
Dienstprinzipalauthentifizierung
Die Dienstprinzipal-Authentifizierungsmethode (Befehl: -l spn) nutzt einen Dienstprinzipal, um den Benutzer zu authentifizieren. Sie können die Anmeldeinformation durch Setzen einer Umgebungsvariablen oder durch Verwendung der Anmeldeinformationen in einem Befehlszeilenargument bereitstellen. Die unterstützten Anmeldeinformationen, die Sie verwenden können, sind ein Kennwort oder ein PFX-Clientzertifikat (Personal Information Exchange).
Parameter für die Authentifizierung des Dienstprinzipals
In der folgenden Tabelle sind Parameter aufgeführt, die Sie mit der Dienstprinzipalauthentifizierung verwenden können:
| Parameter | Description |
|---|---|
-l spn |
Gibt die Kubelogin-Authentifizierungsmethode an. |
--client-id |
Die Anwendungs-ID (Client-ID) des Dienstprinzipals. |
--client-secret |
Das Kundengeheimnis des Dienstherrn. |
Authentifizierung der verwalteten Identität
Verwenden Sie die Verwaltete Identität (Befehl: -l msi) Authentifizierungsmethode für Anwendungen, die eine Verbindung mit Ressourcen herstellen, die die Microsoft Entra-Authentifizierung unterstützen. Beispiele hierfür sind der Zugriff auf Azure-Ressourcen wie ein virtueller Azure-Computer (VM), ein Skalierungssatz für virtuelle Computer oder Azure Cloud Shell.
Sie können die standardverwaltete Identität verwenden, die der Ressource oder einer bestimmten vom Benutzer zugewiesenen verwalteten Identität zugewiesen ist.
Parameter für die verwaltete Identitätsauthentifizierung
In der folgenden Tabelle sind Parameter aufgeführt, die Sie mit verwalteter Identitätsauthentifizierung verwenden können:
| Parameter | Description |
|---|---|
-l msi |
Gibt die Kubelogin-Authentifizierungsmethode an. |
--client-id |
Die Anwendungs-ID (Client-ID) der vom Benutzer zugewiesenen verwalteten Identität. Wenn Sie diesen Parameter nicht angeben, wird die standardmäßige verwaltete Identität verwendet. |
Workload-Identitätsauthentifizierung
Die Workload-Identitätsmethode (Befehl: -l workloadidentity) verwendet Identitätsanmeldeinformationen, die mit Microsoft Entra verbunden sind, um den Zugriff auf AKS-Cluster zu authentifizieren. Die Methode verwendet die integrierte Authentifizierung von Microsoft Entra. Sie funktioniert, indem die folgenden Umgebungsvariablen festgelegt werden:
| Variable | Description |
|---|---|
AZURE_CLIENT_ID |
Die Microsoft Entra-Anwendungs-ID, die mit der Workload-Identität verbunden ist. |
AZURE_TENANT_ID |
Die Microsoft Entra-Mandanten-ID. |
AZURE_FEDERATED_TOKEN_FILE |
Die Datei, die eine signierte Assertion der Workload-Identität enthält, z. B. ein Kubernetes-Token (Projected Service Account, JWT). |
AZURE_AUTHORITY_HOST |
Die Basis-URL einer Microsoft Entra-Autorität. Beispiel: https://login.microsoftonline.com/. |
Sie können eine Workload-Identität verwenden, um von CI/CD-Systemen wie GitHub oder ArgoCD aus auf Kubernetes-Cluster zuzugreifen, ohne die Anmeldeinformationen des Dienstprinzipals in den externen Systemen zu speichern. Um OpenID Connect (OIDC) Federation von GitHub aus zu konfigurieren, sehen Sie sich das Beispiel mit dem OIDC-Partnerverbund an.
Parameter für die Workload-Identitätsauthentifizierung
In der folgenden Tabelle sind Parameter aufgeführt, die Sie mit der Workload-Identitätsauthentifizierung verwenden können:
| Parameter | Description |
|---|---|
-l workloadidentity |
Gibt die Kubelogin-Authentifizierungsmethode an. |
Exportieren des Kubeconfig-Dateipfads
Bevor Sie den convert-kubeconfig Unterbefehl ausführen, exportieren Sie den Kubeconfig-Dateipfad in die KUBECONFIG Umgebungsvariable. Beispiel:
export KUBECONFIG=/path/to/kubeconfig
Konvertieren der Kubeconfig-Datei
Führen Sie den convert-kubeconfig Unterbefehl aus, um die Kubeconfig-Datei zu konvertieren, um das exec-Plug-In für die ausgewählte Authentifizierungsmethode zu verwenden.
kubelogin convert-kubeconfig
kubelogin convert-kubeconfig -l azurecli
# Bearer token authentication
kubelogin convert-kubeconfig -l interactive
# Proof-of-Possession (PoP) token authentication
kubelogin convert-kubeconfig -l interactive --pop-enabled --pop-claims "u=/ARM/ID/OF/CLUSTER"
- Verwenden von Umgebungsvariablen
- Verwenden von Befehlszeilenargumenten
- Verwenden eines Clientzertifikats
- Verwenden eines PoP-Tokens mit Umgebungsvariablen
Führen Sie den
convert-kubeconfigUnterbefehl aus, um die Kubeconfig-Datei zu konvertieren, um das exec-Plug-In zu verwenden.kubelogin convert-kubeconfig -l spnLegen Sie die Umgebungsvariablen für die Client-ID und den geheimen Clientschlüssel oder das Clientzertifikat fest. Beispiel:
export AZURE_CLIENT_ID=<service-principal-client-id> export AZURE_CLIENT_SECRET=<service-principal-client-secret>
# Default managed identity authentication
kubelogin convert-kubeconfig -l msi
# Specific managed identity authentication
kubelogin convert-kubeconfig -l msi --client-id <managed-identity-client-id>
kubelogin convert-kubeconfig -l workloadidentity
Entfernen zwischengespeicherter Token
Entfernen Sie zwischengespeicherte Token mithilfe des kubelogin remove-tokens Befehls.
kubelogin remove-tokens
Abrufen von Knoteninformationen
Abrufen von Knoteninformationen mithilfe des kubectl get Befehls.
kubectl get nodes
Verwendung von kubelogin mit AKS
AKS verwendet zwei Erstanbieteranwendungen von Microsoft Entra. Diese Anwendungs-IDs sind in allen Umgebungen identisch.
Die AKS Microsoft Entra-Serveranwendungs-ID (Server-ID), die von der Serverseite verwendet wird, ist 6dae42f8-4368-4678-94ff-3960e28e3630. Das Zugriffstoken, das auf AKS-Cluster zugreift, muss für diese Anwendung ausgestellt werden. Bei den meisten kubelogin-Authentifizierungsmethoden müssen Sie --server-id mit kubelogin get-token verwenden.
Die AKS Microsoft Entra-Clientanwendungs-ID (Client-ID), die kubelogin zur Ausführung der öffentlichen Clientauthentifizierung im Auftrag des Benutzers verwendet, ist 80faf920-1908-4b52-b5ef-a8e7bedfc67a. Die Clientanwendungs-ID wird bei den Authentifizierungsmethoden „Gerätecode“ und „interaktive Webbrowseranmeldung“ verwendet.
Verwandte Inhalte
- Erfahren Sie, wie Sie AKS mit Microsoft Entra in dem AKS-verwalteten Microsoft Entra-Integrations-Tutorial integrieren.
- Informationen zu den ersten Schritten mit verwalteten Identitäten in AKS finden Sie unter Verwenden einer verwalteten Identität in AKS.
- Informationen zu den ersten Schritten mit Workloadidentitäten in AKS finden Sie unter Verwenden einer Workloadidentität in AKS.