Share via


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