Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Kubernetes Service (AKS) prend en charge l’authentification structurée, ce qui vous permet de configurer des fournisseurs d’identité externes pour authentifier les utilisateurs auprès du serveur d’API Kubernetes. Cette fonctionnalité est basée sur la configuration d’authentification structurée Kubernetes en amont. AKS implémente cette fonctionnalité via des authentificateurs JSON Web Token (JWT) qui valident les jetons des fournisseurs d’identité externes en fonction de votre configuration. Avec l’authentification structurée, les organisations peuvent intégrer AKS à leur infrastructure d’identité existante au-delà de l’ID Microsoft Entra.
Cet article fournit une vue d’ensemble de l’utilisation de fournisseurs d’identité externes avec l’authentification structurée AKS, notamment les concepts clés, les considérations relatives à la sécurité et les étapes suivantes pour la configuration.
Important
Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions d'essai sont fournies « en l’état » et « selon disponibilité », et elles sont exclues des contrats de niveau de service et de la garantie limitée. Les versions préliminaires AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :
Avantages de l’authentification du fournisseur d’identité externe
L’authentification structurée étend AKS au-delà de l’intégration traditionnelle de Microsoft Entra ID en prenant en charge les fournisseurs d’identité OpenID Connect (OIDC) standard. Cette fonctionnalité vous permet d’effectuer les opérations suivantes :
- Authentifiez les utilisateurs avec des fournisseurs d’identité externes tels que Google, GitHub ou n’importe quel fournisseur conforme à OIDC.
- Gérez la gestion centralisée des identités au sein de votre organisation.
- Implémentez des règles de validation des revendications personnalisées et de mappage utilisateur.
- Prendre en charge plusieurs fournisseurs d’identité simultanément sur un seul cluster.
Flux d’authentification du fournisseur d’identité externe
Lorsqu’un utilisateur tente d’accéder au serveur d’API Kubernetes à l’aide d’une authentification structurée avec un fournisseur d’identité externe, le flux d’authentification et d’autorisation est le suivant :
-
Authentification : les étapes suivantes valident l’identité de l’utilisateur :
- Présentation du jeton : l’utilisateur présente un jeton JWT à partir de son fournisseur d’identité configuré.
- Validation du jeton : le serveur d’API valide la signature, l’émetteur, l’audience et l’expiration du jeton.
- Traitement des revendications : les règles de validation de revendication personnalisées sont appliquées pour garantir que le jeton répond à vos besoins.
- Mappage utilisateur : les revendications sont mappées à l’identité utilisateur Kubernetes (nom d’utilisateur, groupes et attributs supplémentaires).
- Autorisation : Le contrôle d'accès basé sur le rôle (RBAC) standard de Kubernetes détermine les actions que l'utilisateur authentifié peut effectuer.
Fournisseurs d’identité pris en charge
Bien que l’authentification structurée AKS autorise n’importe quel fournisseur d’identité conforme à l’OIDC, les fournisseurs courants incluent :
- GitHub : s’authentifier à l’aide d’identités GitHub ou gitHub Actions.
- Google OAuth 2.0 : Utilisez des comptes Google pour l’authentification.
- Fournisseurs OIDC génériques : tout fournisseur implémentant des normes OIDC.
- Solutions d’identité personnalisées : implémentations OIDC spécifiques à l’organisation.
Note
Microsoft Entra ID n’est pas pris en charge en tant que fournisseur d’identité externe via l’authentification structurée. Utilisez l’intégration de Microsoft Entra existante pour l’authentification Microsoft Entra ID.
Configuration requise pour les fournisseurs d’identité externes
Les fournisseurs d’identité externes doivent répondre aux exigences suivantes pour utiliser l’authentification structurée AKS :
- Prendre en charge les normes OIDC.
- Fournissez des points de terminaison de découverte OIDC accessibles publiquement.
- Émettez des jetons JWT avec les revendications appropriées.
- Être accessible à partir des nœuds du cluster AKS pour la validation des jetons.
Authentificateurs JWT pour l’authentification structurée AKS
Un authentificateur JWT est un objet de configuration qui définit la façon dont AKS valide et traite les jetons d’un fournisseur d’identité externe. Par exemple, AKS attend un jeton d’identité (JWT) dont la réclamation aud (audience) correspond à la valeur d’audience que vous configurez pour l’authentificateur, telle que"my-api", ou à un ID client OAuth. Chaque authentificateur JWT inclut les composants suivants :
- Configuration de l’émetteur : spécifie l’URL de l’émetteur OIDC et les valeurs d’audience attendues pour les jetons.
- Règles de validation des revendications : utilise des expressions CEL (Common Expression Language) pour appliquer une logique de validation personnalisée sur les revendications de jeton.
- Mappages de revendications : définit comment les revendications JWT sont mappées aux attributs utilisateur Kubernetes tels que le nom d’utilisateur, les groupes et les champs supplémentaires.
- Règles de validation utilisateur : applique une logique de validation supplémentaire après le mappage des revendications pour restreindre ou autoriser l’accès.
Expressions CEL pour la validation et le mappage des revendications
L’authentification structurée utilise des expressions CEL pour la validation et le mappage de revendications flexibles. CEL fournit un environnement de bac à sable sécurisé pour l’évaluation de la logique personnalisée par rapport aux revendications JWT.
Exemple d’expressions CEL :
// Validate that the 'sub' claim exists
has(claims.sub)
// Map username with AKS prefix
'aks:jwt:' + claims.sub
// Map groups from comma-separated string
claims.groups.split(',').map(g, 'aks:jwt:' + g)
// Conditional mapping based on claim verification
'aks:jwt:' + (claims.email_verified ? claims.email : claims.sub)
Bonnes pratiques de sécurité
Gardez à l’esprit les meilleures pratiques de sécurité suivantes lors de l’utilisation de fournisseurs d’identité externes avec l’authentification structurée AKS :
- Utilisez une validation forte des revendications : implémentez des règles de validation complètes pour vous assurer que seuls les jetons autorisés sont acceptés.
- Limiter l’étendue du jeton : configurez votre fournisseur d’identité pour émettre des jetons avec des revendications minimales nécessaires.
- Rotation régulière : Rotater régulièrement les secrets client et les certificats.
-
Surveiller l’accès : activez les journaux de ressources et activez
kube-apiserverles journaux pour inspecter les éventuels problèmes liés aux authentificateurs JWT configurés et suivre les événements d’authentification. - Configurations de test : validez d’abord votre configuration d’authentificateur JWT dans un environnement hors production.
Considérations relatives à la sécurité
Gardez à l’esprit les considérations de sécurité suivantes lors de l’utilisation de fournisseurs d’identité externes avec l’authentification structurée AKS :
-
Exigences de préfixe : tous les noms d’utilisateur et groupes mappés via l’authentification structurée doivent être préfixés
aks:jwt:pour éviter les conflits avec d’autres méthodes d’authentification et comptes système. -
Accès réseau : les points de terminaison du fournisseur d’identité doivent être accessibles à partir de :
- Nœuds de cluster AKS pour la validation des jetons.
- Systèmes clients pour l’acquisition de jetons.
- Tous les chemins réseau impliqués dans le flux d’authentification.
-
Couches de validation : l’authentification structurée fournit plusieurs couches de validation :
- La validation de la signature de jeton garantit l’authenticité des jetons.
- La validation standard des assertions vérifie l’émetteur, le public et l’expiration.
- La validation de revendication personnalisée applique les exigences spécifiques de votre organisation.
- Vérifications finales de validation de l’utilisateur après le mappage des revendications.
Contenu connexe
Pour plus d’informations sur l’authentification structurée et les fonctionnalités associées, consultez les ressources suivantes :