Utilitaire de diagnostic de GKE Identity Service
L'utilitaire de diagnostic de GKE Identity Service vous aide à résoudre les problèmes d'authentification basée sur un FQDN. Si vous rencontrez des difficultés à vous authentifier sur un cluster à l'aide d'un fournisseur OIDC spécifique, vous pouvez activer l'outil et l'utiliser pour identifier rapidement les problèmes de configuration en simulant les flux de connexion avec votre fournisseur OIDC.
L'utilitaire de diagnostic n'est disponible que sur des clusters individuels exécutant GKE Enterprise 1.32 ou version ultérieure, et n'est compatible qu'avec OIDC.
Activer l'utilitaire de diagnostic
L'utilitaire de diagnostic est désactivé par défaut et doit être activé avant de pouvoir l'utiliser pour résoudre les problèmes. Pour l'activer, suivez ces instructions:
Ouvrez la ressource personnalisée ClientConfig pour la modifier:
kubectl edit clientconfig default \ --kubeconfig CLUSTER_KUBECONFIG -n kube-public
Le fichier manifeste doit se présenter comme suit:
apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: authentication: - name: oidc oidc: clientID: example-client-id clientSecret: example-client-secret cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc extraParams: prompt=consent, access_type=offline issuerURI: https://example.com kubectlRedirectURI: http://localhost:PORT/callback scopes: openid,email,offline_access userClaim: email
Comme indiqué dans l'exemple suivant, ajoutez une section
identityServiceOptions
au fichier manifeste ClientConfig pour spécifier la configuration de l'utilitaire de diagnostic:apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: identityServiceOptions: diagnosticInterface: enabled: true expirationTime: TIMESTAMP authentication: - name: oidc oidc: clientID: example-client-id clientSecret: example-client-secret cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc extraParams: prompt=consent, access_type=offline issuerURI: https://example.com kubectlRedirectURI: http://localhost:PORT/callback scopes: openid,email,offline_access userClaim: email
Remplacez
TIMESTAMP
par une heure d'expiration au format RFC 3339. Exemple :2025-05-01T17:05:00Z
. L'heure d'expiration détermine le moment où la fonctionnalité de l'utilitaire de diagnostic s'arrête automatiquement. Étant donné que l'utilitaire de diagnostic est disponible pour tous les utilisateurs disposant d'un accès au cluster, définir correctement l'heure d'expiration permet de s'assurer que l'utilitaire ne reste pas activé plus longtemps que nécessaire. Lorsque vous définissez l'heure d'expiration, nous vous recommandons de la fixer à 12 heures dans le futur, bien que toute heure dans le futur soit valide.Enregistrez les modifications et quittez l'éditeur de texte pour appliquer le fichier manifeste au cluster.
Utiliser l'utilitaire de diagnostic pour simuler une connexion
Une fois l'utilitaire de diagnostic activé, vous pouvez simuler un événement de connexion et obtenir les informations de diagnostic correspondantes que vous pouvez utiliser pour résoudre les problèmes liés à un fournisseur spécifique.
Ouvrez la page de diagnostic dans un navigateur en accédant à l'URL suivante:
APISERVER-URL/diagnose
Remplacez
APISERVER_URL
par le nom de domaine complet (FQDN) de votre cluster. Exemple :https://apiserver.example.com
La page de diagnostic affiche la liste des fournisseurs OIDC configurés pour votre cluster.
Sélectionnez le fournisseur que vous souhaitez dépanner.
Connectez-vous comme d'habitude.
À la fin du processus de connexion, l'utilitaire affiche une page contenant des informations de diagnostic qui peuvent vous aider à résoudre les problèmes.
Utiliser la page "Diagnostic" pour résoudre les problèmes de connexion
La page "Diagnostic" fournit un résumé de l'authentification, divisé en trois sections:
État: contient
Success
ouFailed
, selon que l'authentification a réussi ou non.Identity Provider (Fournisseur d'identité) : contient des informations sur le fournisseur utilisé pour la connexion, telles que
Name
,Client ID
etUserClaim
.Jeton d'identification: contient des informations sur le jeton d'identification extrait par GKE Identity Service à l'aide du fournisseur donné. Le jeton d'ID est un objet JSON contenant un ensemble de paires clé-valeur. Les clés peuvent inclure
iss
,aud
,sub
etemail
.
Résoudre les problèmes d'authentification réussie
Si le contenu de la section État indique que l'authentification a réussi et que le problème persiste, il est possible que des contrôles d'accès basés sur les rôles (RBAC, Role-Based Access Control) soient manquants. Pour plus d'informations sur le dépannage, consultez Les autorisations RBAC pour les groupes ne fonctionnent pas pour les fournisseurs OIDC.
Résoudre les échecs d'authentification
Si le contenu de la section État indique que l'authentification a échoué, commencez par rechercher des incohérences entre les sections Identity Provider (Fournisseur d'identité) et ID Token (Jeton d'ID).
Voici quelques exigences d'authentification que vous devez vérifier:
Si le champ
UserClaim
de Identity Provider (Fournisseur d'identité) est vide, la section ID Token (Jeton d'ID) doit contenir un champ nommésub
. Un champsub
manquant indique qu'un problème est lié au jeton d'identité.La valeur du champ
UserClaim
dans Identity Provider (Fournisseur d'identité) doit être une clé dans la section ID Token (Jeton d'ID). Par exemple, si le champUserClaim
est défini suremail
, un champ nomméemail
doit être présent dans le jeton d'ID.La valeur du champ
GroupsClaim
dans Identity Provider doit être une clé dans ID Token. Par exemple, si le champGroupsClaim
est défini surgroupsList
(pour un fournisseur compatible avec les groupes), un champ nommégroupsList
doit être présent dans le jeton d'ID.La valeur du champ
Client ID
dans Identity Provider (Fournisseur d'identité) doit être incluse dans la valeur du champaud
dans la section ID Token (Jeton d'identité).
Si l'une des conditions précédentes n'est pas remplie, consultez l'un des guides suivants pour savoir comment configurer correctement vos clusters avec GKE Identity Service:
Si vous configurez GKE Identity Service pour des clusters individuels, consultez les instructions pour configurer des clusters individuels.
Si vous configurez GKE Identity Service au niveau du parc, consultez les instructions pour configurer un parc de clusters.
Utiliser les journaux pour poursuivre le dépannage
Les journaux du pod GKE Identity Service contiennent des informations de débogage supplémentaires. Pour utiliser les journaux de pod GKE Identity Service: