2026-07-03 16:57:04 -04:00
|
|
|
; Géré par Set-OPS (rôle serveur_icingaweb2). Ne pas éditer à la main.
|
2026-09-15 08:49:32 -04:00
|
|
|
{% if serveur_icingaweb2_auth == 'db' %}
|
|
|
|
|
; MODE `db` : Icinga Web 2 gere ses comptes LUI-MEME, dans sa propre base, avec sa propre
|
|
|
|
|
; page de connexion. C'est la reponse pour un ecosysteme sans annuaire — un SITE.
|
une console pour le site, et un repli qui ouvrait vers l Internet
Icinga Web 2 gagne un troisieme mode, locale : nginx authentifie en HTTP Basic
et pose REMOTE_USER, l application le croit. Un SITE n a ni annuaire ni Keycloak
— ce sont des services d ecosysteme. Ni backend LDAP ni backend de groupes : un
backend qui vise une ressource inexistante fait echouer chaque ouverture de
session. L habilitation nomme alors une personne, entorse a D-66 ecrite plutot
que contournee.
Deux pieges en chemin : resoudre_annuaire etait appele sans condition et tombait
sur NoneType has no len (default sans son second argument ne remplace pas None),
et le flux du role ne nommait que l edge — le site n en a pas, donc personne ne
pouvait entrer. serveur_grafana portait deja la reponse.
LE DEFAUT DU DEVIS : une sortie vers un role ABSENT de l ecosysteme retombait
sur !SETOPS_INTERNES, la forme de vers l Internet. La frontiere aurait autorise
la console a parler LDAPS a n importe quelle machine du monde, pour joindre un
annuaire qui n existe pas. C est une source vide ouvre le port, cote
destination. Trois regles du meme defaut etaient DEJA posees pour postfix.
La frontiere n est pas ecrite : elle porte la production, et le devis attend un
mot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:11:22 -04:00
|
|
|
;
|
2026-09-15 08:49:32 -04:00
|
|
|
; AUCUN VESTIBULE DEVANT. La premiere ecriture posait un `auth_basic` nginx et faisait
|
|
|
|
|
; confiance a `REMOTE_USER` : ca reinventait une page de connexion devant une application
|
|
|
|
|
; qui en a une, et ca privait l'exploitant de la gestion des comptes dans l'interface.
|
une console pour le site, et un repli qui ouvrait vers l Internet
Icinga Web 2 gagne un troisieme mode, locale : nginx authentifie en HTTP Basic
et pose REMOTE_USER, l application le croit. Un SITE n a ni annuaire ni Keycloak
— ce sont des services d ecosysteme. Ni backend LDAP ni backend de groupes : un
backend qui vise une ressource inexistante fait echouer chaque ouverture de
session. L habilitation nomme alors une personne, entorse a D-66 ecrite plutot
que contournee.
Deux pieges en chemin : resoudre_annuaire etait appele sans condition et tombait
sur NoneType has no len (default sans son second argument ne remplace pas None),
et le flux du role ne nommait que l edge — le site n en a pas, donc personne ne
pouvait entrer. serveur_grafana portait deja la reponse.
LE DEFAUT DU DEVIS : une sortie vers un role ABSENT de l ecosysteme retombait
sur !SETOPS_INTERNES, la forme de vers l Internet. La frontiere aurait autorise
la console a parler LDAPS a n importe quelle machine du monde, pour joindre un
annuaire qui n existe pas. C est une source vide ouvre le port, cote
destination. Trois regles du meme defaut etaient DEJA posees pour postfix.
La frontiere n est pas ecrite : elle porte la production, et le devis attend un
mot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:11:22 -04:00
|
|
|
[icingaweb2]
|
2026-09-15 08:49:32 -04:00
|
|
|
backend = "db"
|
|
|
|
|
resource = "icingaweb_db"
|
une console pour le site, et un repli qui ouvrait vers l Internet
Icinga Web 2 gagne un troisieme mode, locale : nginx authentifie en HTTP Basic
et pose REMOTE_USER, l application le croit. Un SITE n a ni annuaire ni Keycloak
— ce sont des services d ecosysteme. Ni backend LDAP ni backend de groupes : un
backend qui vise une ressource inexistante fait echouer chaque ouverture de
session. L habilitation nomme alors une personne, entorse a D-66 ecrite plutot
que contournee.
Deux pieges en chemin : resoudre_annuaire etait appele sans condition et tombait
sur NoneType has no len (default sans son second argument ne remplace pas None),
et le flux du role ne nommait que l edge — le site n en a pas, donc personne ne
pouvait entrer. serveur_grafana portait deja la reponse.
LE DEFAUT DU DEVIS : une sortie vers un role ABSENT de l ecosysteme retombait
sur !SETOPS_INTERNES, la forme de vers l Internet. La frontiere aurait autorise
la console a parler LDAPS a n importe quelle machine du monde, pour joindre un
annuaire qui n existe pas. C est une source vide ouvre le port, cote
destination. Trois regles du meme defaut etaient DEJA posees pour postfix.
La frontiere n est pas ecrite : elle porte la production, et le devis attend un
mot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:11:22 -04:00
|
|
|
{% elif serveur_icingaweb2_auth == 'external' %}
|
2026-07-03 19:05:04 -04:00
|
|
|
; SSO : l'utilisateur est fourni par la passerelle (oauth2-proxy → Keycloak) via REMOTE_USER.
|
|
|
|
|
[icingaweb2]
|
|
|
|
|
backend = "external"
|
2026-08-07 19:54:41 -04:00
|
|
|
|
|
|
|
|
; Backend LDAP declare mais JAMAIS utilise pour authentifier : l'externe repond en
|
|
|
|
|
; premier. Il sert au backend de GROUPES, qui doit resoudre un nom d'utilisateur vers
|
|
|
|
|
; son DN — les membres d'un `groupOfNames` sont des DN, pas des uid.
|
|
|
|
|
; Sans lui, l'habilitation par groupe est impossible en mode SSO, et il faudrait
|
|
|
|
|
; nommer des personnes (ce que D-66 interdit).
|
|
|
|
|
[ldap-annuaire]
|
|
|
|
|
backend = "ldap"
|
|
|
|
|
resource = "icingaweb_ldap"
|
|
|
|
|
user_class = "{{ serveur_icingaweb2_ldap_user_class }}"
|
|
|
|
|
user_name_attribute = "{{ serveur_icingaweb2_ldap_user_attr }}"
|
|
|
|
|
base_dn = "{{ serveur_icingaweb2_ldap_users_dn }}"
|
2026-07-03 19:05:04 -04:00
|
|
|
{% else %}
|
2026-07-03 16:57:04 -04:00
|
|
|
[icingaweb2]
|
|
|
|
|
backend = "ldap"
|
|
|
|
|
resource = "icingaweb_ldap"
|
|
|
|
|
user_class = "{{ serveur_icingaweb2_ldap_user_class }}"
|
|
|
|
|
user_name_attribute = "{{ serveur_icingaweb2_ldap_user_attr }}"
|
|
|
|
|
base_dn = "{{ serveur_icingaweb2_ldap_users_dn }}"
|
2026-07-03 19:05:04 -04:00
|
|
|
{% endif %}
|