SecurityAuthentification
Authentification
La chaîne d'authentification du cluster, générée depuis les charts
La chaîne d'authentification du cluster, tirée du rendu Helm des applications Argo CD (comme les flux réseau), des CRs de l'opérateur weebo-authentik, de la configuration Pulumi de l'apiserver et d'Argo CD, et du kubeconfig du dépôt.
Fournisseur d'identité : Authentik (https://auth.weebo.poc), géré par CRs dans 2.argo/helm/auth/sub. Tout le reste s'y raccroche, directement ou par un Dex.
- Applications Authentik : chaque client, ses consommateurs et la façon dont le secret leur parvient.
- Groupes et accès : qui ouvre quoi, et ce que chaque groupe donne en aval.
- Flux Authentik : les flux, les blueprints, le second facteur.
- Kubernetes : de
kubectlaux RoleBindings. - Argo CD : connecteurs, rôles, projets et ce que chacun permet.
Légende
- Un groupe donne accès à une application Authentik par une politique d'accès (
AuthentikAccessPolicy). Les membres d'un groupe enfant passent aussi les politiques de ses parents :weebo_admin⊂weebo_moderator⊂weebo_user. - Une flèche Authentik → consommateur suit le client OIDC : l'opérateur écrit
client_id/client_secretdans Vault (secretTargets), unExternalSecretou une injectionvault:le relit dans un namespace, et l'objet qui nomme ce Secret est le consommateur. Une URL/application/o/<slug>/en dur compte aussi. - Une flèche épaisse (
==>) passe par une étape de second facteur (flux d'autorisation à étapeauthenticator_validate, iciadmin-step-up). - Les Dex sont des courtiers : ils se connectent à Authentik comme un client, puis émettent leurs propres jetons à leurs clients statiques.
- Les proxys Authentik sont servis par le middleware Traefik
forwardAuth: l'IngressRoute n'atteint le backend qu'après l'avant-poste Authentik. - Côté Kubernetes, l'apiserver accepte deux émetteurs JWT (
AuthenticationConfigurationde1.pulu-init), et les (Cluster)RoleBindings donnent les droits aux noms préfixés qu'ils produisent.
Chaîne globale
Applications
| Application | Type | Accès | Flux d'autorisation | Consommateurs |
|---|---|---|---|---|
angos | oauth2 public | weebo_moderator | default-provider-authorization-implicit-consent | AngosLocalInstance/registry (angos) |
argo | oauth2 | weebo_user | default-provider-authorization-implicit-consent | ConfigMap/argocd-cm (argocd) |
argo-admin | oauth2 | weebo_admin | admin-step-up | ConfigMap/argocd-cm (argocd) |
batlehub | oauth2 | weebo_moderator | default-provider-authorization-implicit-consent | Application/batlehub-app (batlehub) |
che-cluster | oauth2 | weebo_moderator | default-provider-authorization-implicit-consent | Application/dex (dex) CheCluster/eclipse-che (eclipse-che) |
clickstack | proxy | weebo_admin | admin-step-up | IngressRoute monitoring/clickstack |
endpoint-gateway | oauth2 | weebo_moderator | default-provider-authorization-implicit-consent | Application/weebo-si-endpoint-gateway (weebo-si-hardening) |
forgejo | oauth2 | weebo_moderator | default-provider-authorization-implicit-consent | Application/forgejo-app (forgejo) |
kube-admin | oauth2 public | weebo_admin | admin-step-up | kubeconfig Weebo-si-adminapiserver jwt[1] |
longhorn | proxy | weebo_admin | admin-step-up | IngressRoute longhorn/longhorn |
s3 | oauth2 | weebo_moderator | default-provider-authorization-implicit-consent | Tenant/main (s3) |
stalwart | oauth2 public | weebo_user | default-provider-authorization-implicit-consent | aucun rendu |
Charts non rendus
- aucun