Créer un émetteur OpenID Connect sur Azure Kubernetes Service (AKS)

S’applique à : ✔️ AKS Automatic ✔️ AKS Standard

Cet article explique comment créer et gérer un émetteur OpenID Connect (OIDC) pour votre cluster Azure Kubernetes Service (AKS). L’émetteur OIDC permet à votre cluster AKS de s’intégrer à des fournisseurs d’identité tels que Microsoft Entra ID. Vous pouvez donc vous authentifier en toute sécurité et fournir des fonctionnalités d’authentification unique (SSO) pour les applications s’exécutant dans le cluster.

Pour la plupart des charges de travail de production, AKS Automatic est l’expérience AKS par défaut recommandée. AKS Automatic est prêt pour la production par défaut et inclut l’émetteur OIDC en tant que fonctionnalité de sécurité préconfigurée. Dans AKS Standard, le comportement de l’émetteur OIDC dépend de la version et de l’état du cluster Kubernetes, et vous pouvez l’activer manuellement si nécessaire.

Pour en savoir plus sur AKS Automatic, consultez Qu’est-ce que Azure Kubernetes Service (AKS) Automatique ?

Émetteur OIDC pour AKS Automatic et AKS Standard

Les deux modes de cluster AKS prennent en charge l’émetteur OIDC, mais la configuration diffère :

  • AKS Automatic : l’émetteur OIDC est préconfiguré.
  • AKS Standard : vous devrez peut-être activer explicitement l’émetteur OIDC, selon la version et si elle est déjà configurée.

Pour la plupart des scénarios de production, commencez par AKS Automatic pour utiliser les valeurs par défaut prêtes pour la production et réduire la surcharge opérationnelle.

À propos d’OpenID Connect (OIDC) sur AKS

OpenID Connect (OIDC) étend le protocole d’autorisation OAuth 2.0 à utiliser comme autre protocole d’authentification émis par Microsoft Entra ID. Vous pouvez utiliser OIDC pour activer l’authentification unique (SSO) entre les applications compatibles OAuth sur votre cluster Azure Kubernetes Service (AKS) à l’aide d’un jeton de sécurité appelé jeton d’ID. Vous pouvez activer l'émetteur OIDC sur vos clusters AKS, ce qui permet Microsoft Entra ID (ou la plateforme de gestion des identités et des accès d'un autre fournisseur cloud) de découvrir les clés de signature publiques du serveur d'API.

Prérequis

Configuration requise pour la plateforme :

Comportement spécifique à la version (AKS Standard) :

  • L’émetteur OIDC est activé par défaut (aucun --enable-oidc-issuer indicateur nécessaire) pour les clusters AKS nouvellement créés sur Kubernetes version 1.34 ou ultérieure.
  • Pour les clusters existants, OIDC n’est pas activé par défaut, quelle que soit la version de Kubernetes et nécessite une activation manuelle.
  • Extension automatique de jeton désactivée (--service-account-extend-token-expiration=false) pour Kubernetes version 1.30.0 ou ultérieure.
  • Si l’émetteur OIDC n’a pas été configuré précédemment, l’activation manuelle est requise pour les versions de Kubernetes antérieures à la version 1.34.
  • Les tokens de compte de service projetés sont requis pour les clusters Kubernetes version 1.30 ou ultérieure.

Considérations importantes :

  • Vous ne pouvez pas désactiver l’émetteur OIDC une fois activé.
  • L’activation de l’émetteur OIDC sur les clusters existants nécessite le redémarrage du serveur d’API (bref temps d’arrêt).
  • La durée de vie maximale du jeton est de 24 heures (un jour).

Créer un cluster AKS avec l’émetteur OIDC

Dans AKS Automatic, l’émetteur OIDC est préconfiguré. Vous n’avez pas besoin d’une étape d’activation d’émetteur OIDC distincte.

Créez un cluster automatique AKS en suivant le guide de démarrage rapide :

AKS Standard

Créez un cluster AKS Standard à l’aide de la az aks create commande avec le --enable-oidc-issuer paramètre.

# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
    
# Create the AKS Standard cluster with OIDC issuer enabled
az aks create \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --node-count 1 \
    --enable-oidc-issuer \
    --generate-ssh-keys

Note

Sur les clusters AKS Standard créés avec Kubernetes version 1.34 ou ultérieure, l’émetteur OIDC est activé par défaut pour les nouveaux clusters.

Activer l’émetteur OIDC sur un cluster AKS Standard existant

Activez l’émetteur OIDC sur un cluster AKS Standard existant à l’aide de la commande az aks update avec le paramètre --enable-oidc-issuer.

# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>

# Enable the OIDC issuer on the existing AKS Standard cluster
az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --enable-oidc-issuer 

Obtenir l’URL de l’émetteur OIDC

Obtenez l’URL de l’émetteur OIDC à l’aide de la az aks show commande.

# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>

# Get the OIDC issuer URL
az aks show \
    --name $CLUSTER_NAME \
    --resource-group $RESOURCE_GROUP \
    --query "oidcIssuerProfile.issuerUrl" \
    -o tsv

Par défaut, l’émetteur utilise l’URL de base https://{region}.oic.prod-aks.azure.com, où la valeur de {region} correspond à l’emplacement où vous avez déployé le cluster AKS.

Faire pivoter la clé de signature OIDC

Important

Gardez à l’esprit les considérations suivantes lors de la rotation des clés de signature OIDC :

  • Si vous souhaitez invalider l’ancienne clé immédiatement après la rotation, vous devez effectuer deux rotations de la clé OIDC et redémarrer les pods qui utilisent des jetons de compte de service projetés.
  • Les clés anciennes et nouvelles restent valides pendant 24 heures après la rotation.
  • Vous devez actualiser manuellement le jeton toutes les 24 heures (sauf si vous utilisez les bibliothèques clientes Azure Identity, qui s’actualisent automatiquement).

Faites pivoter la clé OIDC à l’aide de la az aks oidc-issuer commande.

# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>

# Rotate the OIDC signing keys
az aks oidc-issuer rotate-signing-keys \
    --name $CLUSTER_NAME \
    --resource-group $RESOURCE_GROUP

Obtenir le document de découverte

Accédez à l’URL de l’émetteur OIDC dans un navigateur et ajoutez /.well-known/openid-configuration à l’URL.

Exemple : https://eastus.oic.prod-aks.azure.com/.well-known/openid-configuration

Votre sortie doit ressembler à l’exemple suivant :

{
  "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

Dans votre navigateur, accédez au jwks_uri du document de découverte.

Par exemple : https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks

Votre sortie doit ressembler à l’exemple suivant :

{
  "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"
    }
  ]
}

Note

Pendant la rotation des clés, le document de découverte inclut une clé supplémentaire.