Teilen über


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 das einmalige Anmelden (Single Sign-On, SSO) zwischen 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 den OIDC-Aussteller für Ihren Cluster erstellen, aktualisieren und verwalten.

Wichtig

Wenn Sie den OIDC-Aussteller im Cluster aktiviert haben, wird die Deaktivierung nicht unterstützt.

Das Token muss regelmäßig aktualisiert werden. Wenn Sie das SDK verwenden, erfolgt 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 Sie bei Bedarf unter Installieren der Azure CLI.
  • AKS unterstützt den OIDC-Aussteller ab Version 1.22 oder höher.

Erstellen eines AKS-Clusters mit dem 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 aktivieren. Im folgenden Beispiel wird ein Cluster mit dem Namen myAKSCluster mit einem Knoten in myResourceGroup erstellt.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --enable-oidc-issuer \
    --generate-ssh-keys

Aktualisieren eines AKS-Clusters mit OIDC-Aussteller

Sie können einen AKS-Cluster über den Befehl az aks create mit dem Parameter --enable-oidc-issuer aktualisieren, um den OIDC-Aussteller zu aktivieren. Im folgenden Beispiel wird ein Cluster mit dem Namen myAKSCluster aktualisiert.

az aks update --resource-group myResourceGroup --name myAKSCluster --enable-oidc-issuer 

Anzeigen der URL des OIDC-Ausstellers

Führen Sie den Befehl az aks show aus, um die URL des OIDC-Ausstellers abzurufen. Ersetzen Sie die Standardwerte für den Clusternamen und den Ressourcengruppennamen.

az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv

Standardmäßig ist der Aussteller so eingestellt, dass er die Basis-URL https://{region}.oic.prod-aks.azure.com verwendet, 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 --name myAKSCluster --resource-group myResourceGroup

Wichtig

Nachdem Sie den Schlüssel rotiert haben, läuft der alte Schlüssel (Schlüssel1) nach 24 Stunden ab. Dies bedeutet, dass 24 Stunden nach der Rotation sowohl der alte Schlüssel (Schlüssel1) als auch der neue Schlüssel (Schlüssel2) 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 URL des OIDC-Ausstellers abzurufen. Ersetzen Sie die Standardwerte für den Clusternamen und den Ressourcengruppennamen.

az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv

Die Ausgabe sollte wie folgt aussehen:

https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/

Standardmäßig ist der Aussteller so eingestellt, dass er die Basis-URL https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid} verwendet, 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