Chaque role web declare le GROUPE qu'il reconnait et ce qu'il lui accorde. Un troisieme champ s'est impose en ecrivant : `porte_par` — le mecanisme qui transporte reellement l'habilitation. Sans lui, les declarations auraient decrit une chaine inexistante. Etat mesure : grafana `role-realm` (reel) ; forgejo, nextcloud et keycloak `aucun` ; icingaweb2 `liste-uid` — il NOMME DES PERSONNES, ce que D-66 interdit. Le maillon manquant est chez Keycloak : `role_assignments` assigne un role a un UTILISATEUR, et son propre commentaire l'admettait (« en prod, preferer l'assignation via groupe d'annuaire »). Sans group-ldap-mapper, les groupes LDAP n'atteignent jamais les services. Sa meta a donc une autre forme, `acces_projection` : Keycloak projette au lieu de consommer (D-65). Defaut corrige : `serveur_icingaweb2_admins` valait "testmail", un compte de test code en dur dans le moteur qu'aucune instance ne surchargeait — le seul administrateur declare de la supervision etait un utilisateur inexistant. Il suit desormais l'uid d'amorcage. Verifie sur mon-01 : users = "sysadmin". Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
19 lines
838 B
YAML
19 lines
838 B
YAML
---
|
|
# Habilitations reconnues par ce service. Voir docs/autorisation.md.
|
|
#
|
|
# `groupe` : le groupe LDAP — jamais une personne (D-66).
|
|
# `accorde` : le vocabulaire DU SERVICE, pas une echelle abstraite.
|
|
# `porte_par` : le mecanisme qui transporte reellement l'habilitation. Le nommer
|
|
# rend visible, dans la declaration meme, ce qui n'est pas cable.
|
|
acces:
|
|
- groupe: sysadmin
|
|
accorde: Admin
|
|
porte_par: role-realm # claim `roles` -> serveur_grafana_oidc_role_path
|
|
raison: >-
|
|
Administration : sources de donnees, tableaux de bord, organisations.
|
|
- groupe: personnel
|
|
accorde: Viewer
|
|
porte_par: defaut # tout utilisateur authentifie, sans role
|
|
raison: >-
|
|
Lecture des tableaux de bord. C'est le niveau par defaut : aucun role de
|
|
realm n'est requis pour l'obtenir.
|