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