Weebo SI
SecurityAuthentification

Kubernetes

De kubectl aux RoleBindings : les émetteurs de l'apiserver

De kubectl aux droits : les deux émetteurs que l'apiserver accepte (AuthenticationConfiguration, écrite par 1.pulu-init/main.go), d'où viennent leurs jetons, et les (Cluster)RoleBindings qu'atteignent les noms qu'ils produisent.

Émetteurs JWT de l'apiserver

ÉmetteurAudienceOrigineDerrièreNom d'utilisateurGroupesGroupes retirés
jwt[0]https://dex.weebo.pocweebo-kubeVault (OIDC_URL, OIDC_CLIENT_ID), valeur attendue d'après le kubeconfigDex, connecteur vers Authentik che-cluster"labsso:" + claims.emailhas(claims.groups) ? dyn(claims.groups).filter(g, g != "weebo_admin").map(g, "labsso:" + g) : []weebo_admin
jwt[1]https://auth.weebo.poc/application/o/kube-admin/kube-adminconstante de 1.pulu-init/main.goAuthentik kube-admin"labsso-admin:" + claims.emailclaim groups, préfixe labsso:—

Règles communes, sur les claims puis sur l'utilisateur obtenu :

  • claims.email_verified == true
  • !user.username.startsWith('system:')
  • user.groups.all(group, !group.startsWith('system:'))

Contextes du kubeconfig

0.config/kubeconfig.oidc-template.yaml :

ContexteÉmetteurClientScopes en plus
Weebo-sihttps://dex.weebo.pocweebo-kubeemail offline_access profile openid groups
Weebo-si-adminhttps://auth.weebo.poc/application/o/kube-admin/kube-adminemail profile groups

Clients statiques de Dex

ClientNomRedirectionsPairs de confiance
weebo-kubeKube Apphttps://dex.weebo.poc/callback
http://localhost:8000
che-cluster
che-clusterEclipse Chehttps://cde.dev.weebo.poc/oauth/callback—

RBAC

Les bindings du rendu qui nomment un groupe ou un utilisateur hors system:, et l'émetteur capable de produire ce nom.

BindingPortéeRôleSujetAtteint parApp Argo CD
ClusterRoleBinding/weebo-admin-crbclusterClusterRole/cluster-adminGroup labsso:weebo_adminjwt[1] (accès Authentik : weebo_admin)app of apps

On this page