kubelogin : connecter kubectl à OpenID Connect
Plugin kubectl pour l'authentification Kubernetes OpenID Connect (kubectl oidc-login).
En bref
- De quoi s’agit-il ?
- kubelogin est un plugin kubectl qui utilise OpenID Connect pour obtenir des identifiants Kubernetes après une connexion dans le navigateur.
- À qui s’adresse-t-il ?
- kubelogin peut convenir si les commandes, formats et contraintes décrits dans son README correspondent à votre environnement. Il ne convient pas à un besoin qui exige des garanties absentes de la documentation.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 3 jours.
- En quel langage est-il écrit ?
- Principalement Go, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Le plugin kubectl nommé oidc-login
kubelogin est un plugin kubectl pour l'authentification OpenID Connect de Kubernetes, décrit dans le README comme `kubectl oidc-login`. Il est conçu pour fonctionner comme plugin d'identifiants client-go. Lorsque kubectl l'appelle, kubelogin ouvre un navigateur, l'utilisateur se connecte au fournisseur d'identité, puis kubelogin obtient un jeton que kubectl utilise pour accéder à l'API Kubernetes. Le dépôt est écrit en Go et est sous licence Apache-2.0.
Avec kubelogin, vérifiez enfin le nom exact du binaire `kubectl-oidc_login`, la section `exec` du kubeconfig et le nettoyage du cache avec `kubectl oidc-login clean`. Contrôlez les revendications `iss`, `aud` et `sub` produites par `kubectl oidc-login setup`. Le résultat dépend du fournisseur OIDC choisi et de ses cookies, points que le README expose sans fournir de garantie universelle. Le contrôle « Le plugin kubectl nommé oidc-login » permet de relier cette observation au périmètre exact de kubelogin.
Connexion navigateur et renouvellement de jeton
Le README illustre le fonctionnement avec `kubectl get pods`. Avant d'appeler l'API, kubectl exécute kubelogin, qui affiche une ligne comme `Open http://localhost:8000 for authentication` et ouvre cette adresse. Une fois la connexion terminée, kubelogin renvoie les identifiants à kubectl. kubelogin stocke le jeton d'ID et le jeton d'actualisation dans un cache. Si le jeton d'ID est valide, il est renvoyé directement ; s'il est expiré, le jeton d'actualisation est utilisé ; si le jeton d'actualisation est aussi expiré, une nouvelle authentification par navigateur est effectuée.
Avec kubelogin, vérifiez enfin le nom exact du binaire `kubectl-oidc_login`, la section `exec` du kubeconfig et le nettoyage du cache avec `kubectl oidc-login clean`. Contrôlez les revendications `iss`, `aud` et `sub` produites par `kubectl oidc-login setup`. Le résultat dépend du fournisseur OIDC choisi et de ses cookies, points que le README expose sans fournir de garantie universelle. Le contrôle « Connexion navigateur et renouvellement de jeton » permet de relier cette observation au périmètre exact de kubelogin.
Installation et entrée kubeconfig
Le README liste Homebrew, Krew, Chocolatey et GitHub Releases comme méthodes d'installation. Les commandes indiquées sont `brew install kubelogin`, `kubectl krew install oidc-login` et `choco install kubelogin`. Pour une installation via GitHub Releases, le binaire doit être nommé `kubectl-oidc_login` et placé dans le PATH afin que kubectl le trouve via sa convention de nommage des plugins. Le kubeconfig doit contenir une section exec avec `apiVersion: client.authentication.k8s.io/v1`, `command: kubectl`, et des arguments incluant `oidc-login get-token` ainsi que `--oidc-issuer-url` et `--oidc-client-id`.
Avec kubelogin, vérifiez enfin le nom exact du binaire `kubectl-oidc_login`, la section `exec` du kubeconfig et le nettoyage du cache avec `kubectl oidc-login clean`. Contrôlez les revendications `iss`, `aud` et `sub` produites par `kubectl oidc-login setup`. Le résultat dépend du fournisseur OIDC choisi et de ses cookies, points que le README expose sans fournir de garantie universelle. Le contrôle « Installation et entrée kubeconfig » permet de relier cette observation au périmètre exact de kubelogin.
Cache de jetons et stockage dans le trousseau
Par défaut, kubelogin écrit le cache de jetons dans le système de fichiers. Le README recommande de le stocker dans le trousseau du système pour une meilleure sécurité et renvoie au document d'utilisation pour les détails de configuration. La déconnexion se fait avec `kubectl oidc-login clean`, qui supprime le cache fichier et l'entrée du trousseau. Le README note qu'après la déconnexion, si le navigateur conserve un cookie du fournisseur, il faut se déconnecter du fournisseur ou effacer le cookie pour forcer une nouvelle connexion.
Avec kubelogin, vérifiez enfin le nom exact du binaire `kubectl-oidc_login`, la section `exec` du kubeconfig et le nettoyage du cache avec `kubectl oidc-login clean`. Contrôlez les revendications `iss`, `aud` et `sub` produites par `kubectl oidc-login setup`. Le résultat dépend du fournisseur OIDC choisi et de ses cookies, points que le README expose sans fournir de garantie universelle. Le contrôle « Cache de jetons et stockage dans le trousseau » permet de relier cette observation au périmètre exact de kubelogin.
Afficher les revendications du jeton d'ID avec setup
La commande `setup` est documentée pour inspecter un jeton d'ID. Lancer `kubectl oidc-login setup --oidc-issuer-url=ISSUER_URL --oidc-client-id=REDACTED` déclenche une connexion navigateur puis affiche les revendications du jeton en JSON, avec des champs comme `sub`, `iss` et `aud`. Le README montre aussi l'ajout de `-v1` aux arguments exec pour augmenter le niveau de journalisation. Un test d'acceptation est disponible pour vérifier que kubelogin fonctionne avec un fournisseur d'identité particulier.
Avec kubelogin, vérifiez enfin le nom exact du binaire `kubectl-oidc_login`, la section `exec` du kubeconfig et le nettoyage du cache avec `kubectl oidc-login clean`. Contrôlez les revendications `iss`, `aud` et `sub` produites par `kubectl oidc-login setup`. Le résultat dépend du fournisseur OIDC choisi et de ses cookies, points que le README expose sans fournir de garantie universelle. Le contrôle « Afficher les revendications du jeton d'ID avec setup » permet de relier cette observation au périmètre exact de kubelogin.
Documentation, licence et état du dépôt
Le README renvoie vers un guide d'installation, un document sur l'utilisation et les options, un document sur le mode autonome, un test système et un test d'acceptation pour les fournisseurs d'identité. Le projet est open source sous Apache License 2.0, et l'extrait de licence accorde des licences de droit d'auteur et de brevet pour la reproduction, la distribution et les œuvres dérivées. Le texte de licence ne décrit pas de modèle de garantie ou de support. Les métadonnées du dépôt indiquent Go comme langage, 2 334 étoiles, 241 forks et 117 problèmes ouverts ; le projet n'est pas archivé.
Avec kubelogin, vérifiez enfin le nom exact du binaire `kubectl-oidc_login`, la section `exec` du kubeconfig et le nettoyage du cache avec `kubectl oidc-login clean`. Contrôlez les revendications `iss`, `aud` et `sub` produites par `kubectl oidc-login setup`. Le résultat dépend du fournisseur OIDC choisi et de ses cookies, points que le README expose sans fournir de garantie universelle. Le contrôle « Documentation, licence et état du dépôt » permet de relier cette observation au périmètre exact de kubelogin.
Conclusion éditoriale
kubelogin peut convenir si les commandes, formats et contraintes décrits dans son README correspondent à votre environnement. Il ne convient pas à un besoin qui exige des garanties absentes de la documentation. Avant décision, exécutez le parcours propre à kubelogin, inspectez les fichiers de configuration concernés et mesurez le résultat attendu.
Notes de la communauté