Erstellen eines OpenID Connect-Anbieters auf Azure Kubernetes Service (AKS)
OpenID Connect (OIDC) erweitert das OAuth 2.0-Autorisierungsprotokoll, damit es als anderes von Microsoft Entra ID ausgestelltes Authentifizierungsprotokoll verwendet werden kann. Mit OIDC können Sie einmaliges Anmelden (Single Sign-On, SSO) zwischen Ihren OAuth-fähigen Anwendungen auf Ihrem Azure Kubernetes Service-Cluster (AKS) ermöglichen, indem Sie ein sogenanntes ID-Token als Sicherheitstoken verwenden. Sie können den openID Connect-Aussteller (OIDC) für Ihren AKS-Cluster aktivieren. Dadurch kann Microsoft Entra ID oder die Identitäts- und Zugriffsverwaltungsplattform eines anderen Cloudanbieters die öffentlichen Signaturschlüssel des API-Servers erkennen.
AKS wechselt den Schlüssel automatisch und in regelmäßigen Abständen. Wenn Sie nicht warten möchten, können Sie den Schlüssel sofort manuell wechseln. Die maximale Lebensdauer des vom OIDC-Anbieter ausgestellten Tokens beträgt 1 Tag.
Warnung
Das Aktivieren des OIDC-Ausstellers für einen vorhandenen Cluster ändert den aktuellen Aussteller des Dienstkontotokens in einen neuen Wert, was zu Ausfallzeiten führen und einen Neustart des API-Servers zur Folge haben kann. Wenn die Anwendungspods, die ein Diensttoken nutzen, nach dem Aktivieren des OIDC-Ausstellers im Fehlerstatus bleiben, empfiehlt es sich, die Pods manuell neu zu starten.
In diesem Artikel erfahren Sie, wie Sie für Ihren Cluster den OIDC-Aussteller erstellen, aktualisieren und verwalten.
Wichtig
Nach dem Aktivieren des OIDC-Ausstellers im Cluster wird die Deaktivierung nicht unterstützt.
Wichtig
Das Token muss regelmäßig aktualisiert werden. Wenn Sie das SDK verwenden, ist die Rotation automatisch, andernfalls müssen Sie das Token alle 24 Stunden manuell aktualisieren.
Voraussetzungen
- Azure CLI, Version 2.42.0 oder höher. Führen Sie
az --version
aus, um Ihre Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sei bei Bedarf unter Installieren der Azure CLI. - AKS unterstützt OIDC-Aussteller ab Version 1.22.
Erstellen eines AKS-Clusters mit OIDC-Aussteller
Sie können einen AKS-Cluster über den Befehl az aks create mit dem Parameter --enable-oidc-issuer
erstellen, um den OIDC-Aussteller zu verwenden. Im folgenden Beispiel wird ein Cluster mit dem Namen myAKSCluster mit einem Knoten in myResourceGroup erstellt.
az aks create -g myResourceGroup -n myAKSCluster --node-count 1 --enable-oidc-issuer
Aktualisieren eines AKS-Clusters mit OIDC-Aussteller
Sie können mit dem Befehl az aks update mit dem Parameter --enable-oidc-issuer
einen AKS-Cluster aktualisieren, um den OIDC-Aussteller (Vorschau) zu verwenden. Im folgenden Beispiel wird ein Cluster mit dem Namen myAKSCluster aktualisiert.
az aks update -g myResourceGroup -n myAKSCluster --enable-oidc-issuer
Anzeigen der OIDC-Aussteller-URL
Führen Sie den Befehl az aks show aus, um die OIDC-Aussteller-URL abzurufen. Ersetzen Sie die Standardwerte für den Clusternamen und den Ressourcengruppennamen.
az aks show -n myAKScluster -g myResourceGroup --query "oidcIssuerProfile.issuerUrl" -otsv
Standardmäßig ist für den Aussteller die Verwendung der Basis-URL https://{region}.oic.prod-aks.azure.com
festgelegt, wobei der Wert für {region}
dem Standort entspricht, an dem der AKS-Cluster bereitgestellt wird.
Rotieren des OIDC-Schlüssels
Um den OIDC-Schlüssel zu wechseln, führen Sie den Befehl az aks oidc-issuer aus. Ersetzen Sie die Standardwerte für den Clusternamen und den Ressourcengruppennamen.
az aks oidc-issuer rotate-signing-keys -n myAKSCluster -g myResourceGroup
Wichtig
Nachdem Sie den Schlüssel rotiert haben, läuft der alte Schlüssel (Schlüssel1) nach 24 Stunden ab. Dies bedeutet, dass sowohl der alte Schlüssel (Schlüssel1) als auch der neue Schlüssel (Schlüssel2) innerhalb des Zeitraums von 24 Stunden gültig sind. Wenn Sie den alten Schlüssel (Schlüssel1) sofort ungültig machen möchten, müssen Sie den OIDC-Schlüssel zweimal rotieren und die Pods mithilfe von projizierten Dienstkontotoken neu starten. Anschließend sind Schlüssel2 und Schlüssel3 gültig, und Schlüssel1 ist ungültig.
Überprüfen der OIDC-Schlüssel
Abrufen der OIDC-Aussteller-URL
Führen Sie den Befehl az aks show aus, um die OIDC-Aussteller-URL abzurufen. Ersetzen Sie die Standardwerte für den Clusternamen und den Ressourcengruppennamen.
az aks show -n myAKScluster -g myResourceGroup --query "oidcIssuerProfile.issuerUrl" -otsv
Die Ausgabe sollte wie folgt aussehen:
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/
Standardmäßig ist für den Aussteller die Verwendung der Basis-URL https://{region}.oic.prod-aks.azure.com/{uuid}
festgelegt, wobei der Wert für {region}
dem Standort entspricht, an dem der AKS-Cluster bereitgestellt wird. Der Wert {uuid}
stellt den OIDC-Schlüssel dar, bei dem es sich um eine zufällig generierte GUID für jeden Cluster handelt, der unveränderlich ist.
Abrufen des Ermittlungsdokuments
Um das Ermittlungsdokument abzurufen, kopieren Sie die URL https://(OIDC issuer URL).well-known/openid-configuration
und öffnen Sie sie im Browser.
Die Ausgabe sollte wie folgt aussehen:
{
"issuer": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/",
"jwks_uri": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks",
"response_types_supported": [
"id_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"RS256"
]
}
Abrufen des JWK-Set-Dokuments
Um das JWK-Set-Dokument abzurufen, kopieren Sie die jwks_uri
aus dem Ermittlungsdokument, und fügen Sie es in der Adressleiste Ihres Browsers ein.
Die Ausgabe sollte wie folgt aussehen:
{
"keys": [
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
},
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
}
]
}
Während der Schlüsselrotation ist ein anderer Schlüssel im Ermittlungsdokument vorhanden.
Nächste Schritte
- Machen Sie sich damit vertraut, wie Anmeldinformationen einer Verbundidentität eine Vertrauensstellung zwischen einer Anwendung in Ihrem Cluster und einem externen Identitätsanbieter herstellen. Informationen hierzu finden Sie unter Konfigurieren der Erstellung einer Vertrauensstellung zwischen einer App und einem externen Identitätsanbieter.
- Lesen Sie die Informationen unter Microsoft Entra Workload ID (Vorschau). Diese Authentifizierungsmethode integriert sich in die nativen Kubernetes-Funktionen, um im Namen der Anwendung einen Verbund mit externen Identitätsanbietern einzugehen.
- Machen Sie sich damit vertraut, wie Sie die Netzwerkrichtlinien-Engine verwenden und in Kubernetes-Netzwerkrichtlinien zur Steuerung des Datenverkehrs zwischen Pods in AKS erstellen. Informationen hierzu finden Sie unter Absichern des Pod-Netzwerkdatenverkehrs.