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 vos applications OAuth sur votre cluster Azure Kubernetes Service (AKS) à l’aide d’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 modifie l’émetteur de jeton de compte de service actuel en une nouvelle valeur, ce qui entraîne une interruption de service avec le redémarrage du serveur d’API. Si vos pods d’application utilisant un jeton de service restent à l’é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 allez apprendre à créer, à mettre à jour, puis à gérer l’émetteur OIDC pour votre cluster.
Important
Après avoir activé l’émetteur OIDC sur le cluster, il n’est pas pris en charge pour le désactiver.
Important
Le jeton doit être actualisé régulièrement. Si vous utilisez un Kit de développement logiciel (SDK), la rotation est automatique. Dans le cas contraire, vous devez rafraîchir 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 à l’aide de la commande az aks create avec le paramètre --enable-oidc-issuer
pour utiliser 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
Mettre à jour un cluster AKS avec l’émetteur OIDC
Vous pouvez mettre à jour un cluster AKS à l’aide de la commande az aks update avec le paramètre --enable-oidc-issuer
pour utiliser 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
L’émetteur est défini par défaut pour utiliser l’URL de base https://{region}.oic.prod-aks.azure.com
, avec la valeur de {region}
qui 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. Cela signifie que l’ancienne clé (key1) et la nouvelle clé (key2) sont valides pendant une période de 24 heures. Si vous souhaitez invalider immédiatement l’ancienne clé (clé1), vous devez permuter la clé OIDC deux fois et redémarrer les pods à l’aide des jetons de compte de service projetés. Ensuite, les clés key2 et key3 sont valides et la clé key1 n’est plus 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/00000000-0000-0000-0000-000000000000/
L’émetteur est défini par défaut pour utiliser l’URL de base https://{region}.oic.prod-aks.azure.com/{uuid}
, avec la valeur de {region}
qui 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/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"
]
}
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.