Créer un fournisseur OpenID Connect sur Azure Kubernetes Service (AKS)
OpenID Connect (OIDC) étend le protocole d’autorisation OAuth 2.0 pour l’utiliser comme protocole d’authentification alternatif émis par Microsoft Entra ID. Vous pouvez utiliser OIDC pour activer l’authentification unique (SSO) entre des applications avec OAuth sur votre cluster Azure Kubernetes Service (AKS) en utilisant un jeton de sécurité, appelé jeton d’ID. Avec votre cluster AKS, vous pouvez activer l’émetteur OpenID Connect (OIDC), ce qui permet à Microsoft Entra ID ou à une autre plateforme de gestion des identités et des accès du fournisseur de cloud de découvrir les clés de signature publiques du serveur d’API.
AKS fait pivoter la clé automatiquement et régulièrement. Si vous ne souhaitez pas attendre, vous pouvez faire pivoter la clé manuellement et immédiatement. La durée de vie maximale du jeton émis par le fournisseur OIDC est d’un jour.
Avertissement
L’activation de l’émetteur OIDC sur le cluster existant change l’émetteur de jetons de compte de service actuel en une nouvelle valeur, ce qui peut entraîner un temps d’arrêt lors du redémarrage du serveur d’API. Si vos pods d’applications utilisant un jeton de service restent dans un état d’échec après que vous avez activé l’émetteur OIDC, nous vous recommandons de redémarrer manuellement les pods.
Dans cet article, vous découvrez comment créer, mettre à jour et gérer l’émetteur OIDC pour votre cluster.
Important
Une fois l’émetteur OIDC activé sur le cluster, sa désactivation n’est pas prise en charge.
Le jeton doit être actualisé régulièrement. Si vous utilisez le Kit de développement logiciel (SDK), la rotation est automatique. Sinon, vous devez actualiser le jeton manuellement toutes les 24 heures.
Prérequis
- Azure CLI version 2.42.0 ou version ultérieure. Exécutez
az --version
pour rechercher votre version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. - AKS prend en charge l’émetteur OIDC sur les versions 1.22 et ultérieures.
Créer un cluster AKS avec l’émetteur OIDC
Vous pouvez créer un cluster AKS en utilisant la commande az aks create avec le paramètre --enable-oidc-issuer
pour activer l’émetteur OIDC. L’exemple suivant crée un cluster à un nœud nommé myAKSCluster avec un nœud dans myResourceGroup :
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 1 \
--enable-oidc-issuer \
--generate-ssh-keys
Mettre à jour un cluster AKS avec l’émetteur OIDC
Vous pouvez mettre à jour un cluster AKS en utilisant la commande az aks update avec le paramètre --enable-oidc-issuer
pour activer l’émetteur OIDC. L’exemple suivant démarre un cluster nommé myAKSCluster :
az aks update --resource-group myResourceGroup --name myAKSCluster --enable-oidc-issuer
Afficher l’URL de l’émetteur OIDC
Pour obtenir l’URL de l’émetteur OIDC, exécutez la commande az aks show. Remplacez les valeurs par défaut pour le nom du cluster et le nom du groupe de ressources.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
Par défaut, l’émetteur est défini pour utiliser l’URL de base https://{region}.oic.prod-aks.azure.com
, où la valeur de {region}
correspond à l’emplacement de déploiement du cluster AKS.
Faire tourner la clé OIDC
Pour faire pivoter la clé OIDC, exécutez la commande az aks oidc-issuer. Remplacez les valeurs par défaut pour le nom du cluster et le nom du groupe de ressources.
az aks oidc-issuer rotate-signing-keys --name myAKSCluster --resource-group myResourceGroup
Important
Une fois que vous faites tourner la clé, l’ancienne clé (key1) expire au bout de 24 heures. L’ancienne clé (key1) et la nouvelle clé (key2) sont valides pendant une période de 24 heures après la rotation. Si vous voulez invalider immédiatement l’ancienne clé (key1), vous devez permuter la clé OIDC deux fois et redémarrer les pods en utilisant des jetons de compte de service projetés. Avec ce processus, les clés key2 et key3 sont valides, et la clé key1 est non valide.
Vérifier les clés OIDC
Obtenir l’URL de l’émetteur OIDC
Pour obtenir l’URL de l’émetteur OIDC, exécutez la commande az aks show. Remplacez les valeurs par défaut pour le nom du cluster et le nom du groupe de ressources.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
La sortie doit ressembler à ce qui suit :
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/
Par défaut, l’émetteur est défini pour utiliser l’URL de base https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}
, où la valeur de {region}
correspond à l’emplacement de déploiement du cluster AKS. La valeur {uuid}
représente la clé OIDC générée de manière aléatoire pour chaque cluster immuable.
Obtenir le document de découverte
Pour obtenir le document de découverte, copiez l’URL https://(OIDC issuer URL).well-known/openid-configuration
et ouvrez-la dans un navigateur.
La sortie doit ressembler à ce qui suit :
{
"issuer": "https://eastus.oic.prod-aks.azure.com/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/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"
]
}
Obtenir le document JWK Set
Pour obtenir le document JWK Set, copiez le jwks_uri
à partir du document de découverte et collez-le dans la barre d’adresse de votre navigateur.
La sortie doit ressembler à ce qui suit :
{
"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"
}
]
}
Pendant une rotation des clés, une autre clé est présente dans le document de découverte.
Étapes suivantes
- Veuillez consulter la rubrique Configurer la création d’une relation de confiance entre une application et un fournisseur d’identité externe pour comprendre comment les informations d’identification d’identité fédérée créent une relation de confiance entre une application sur votre cluster et un fournisseur d’identité externe.
- Consultez Microsoft Entra Workload ID (préversion). Cette méthode d’authentification s’intègre avec les fonctionnalités natives Kubernetes pour opérer une fédération avec tout fournisseur d’identité externe, au nom de l’application.
- Veuillez consulter la rubrique Sécuriser le trafic réseau des pods pour comprendre comment utiliser le moteur de stratégie réseau, puis créer des stratégies réseau Kubernetes pour contrôler le flux de trafic entre les pods dans AKS.
Azure Kubernetes Service