feat(grafana): SSO OIDC via Authentik + admin par groupe lab-admins (#86)

- values.yaml monitoring : auth.generic_oauth (auth_url navigateur,
  token/api sur le Service interne), root_url, mapping lab-admins→Admin /
  sinon Viewer. Login local conservé (break-glass).
- vault : vault_grafana_oauth_client_secret (= secret k8s
  monitoring/grafana-oauth-secret, déjà créé)
- doc : runbook « ajouter une app » complété (exemple Grafana concret +
  groupe lab-admins) et procédure SQL pour promouvoir un compte SSO admin
  Guacamole (appliquée à Alkatrazz)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
ALI YESILKAYA 2026-07-07 12:11:00 +02:00 committed by GitHub
parent 9b903c0311
commit 514cb89579
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 208 additions and 131 deletions

View file

@ -10,8 +10,29 @@ grafana:
host: 192.168.10.1:5432
name: grafana
user: grafana
server:
# Requis pour construire le redirect_uri OAuth (LAN : grafana.lab.local)
root_url: http://grafana.lab.local
# SSO OIDC via Authentik (app « grafana » dans l'UI Authentik).
# auth_url = navigateur (auth.lab.local) ; token/api = serveur→serveur (Service
# interne, les pods ne résolvent pas lab.local). Le login local reste actif
# (break-glass : admin / adminPassword ci-dessous) — ne pas mettre disable_login_form.
auth.generic_oauth:
enabled: true
name: Authentik
client_id: grafana
client_secret: $__env{GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET}
scopes: openid profile email
auth_url: http://auth.lab.local/application/o/authorize/
token_url: http://authentik.auth.svc.cluster.local:9000/application/o/token/
api_url: http://authentik.auth.svc.cluster.local:9000/application/o/userinfo/
# Membre du groupe lab-admins → Admin, sinon Viewer
role_attribute_path: contains(groups[*], 'lab-admins') && 'Admin' || 'Viewer'
role_attribute_strict: false
allow_assign_grafana_admin: true
envFromSecrets:
- name: grafana-db-secret
- name: grafana-oauth-secret
ingress:
enabled: true
ingressClassName: traefik