diff --git a/sysadmin-doc/installation-6.md b/sysadmin-doc/installation-6.md index 1a32334..a6d7631 100644 --- a/sysadmin-doc/installation-6.md +++ b/sysadmin-doc/installation-6.md @@ -233,3 +233,54 @@ avec : Cette commande ne doit rien afficher (ce qui signifie que tout s'est bien déroulé), les comptes doivent être visibles dans [https://connexion-moncompte.macollectivite.fr/manage/users/](https://connexion-moncompte.macollectivite.fr/manage/users/) + +### Configuration de la synchronisation automatique des rôles des comptes LDAP + +Dans le fichier */var/lib/authentic2-multitenant/tenants/connexion-moncompte.macollectivite.fr/settings.json*, pour l'annuaire des agents, rajouter les paramètres *group_filter* et *group_to_role_mapping*. + +Le paramètre *group_filter* liste recursivement les groupes LDAP dont le compte est membre: + + group_filter": "(&(objectClass=group)(member:1.2.840.113556.1.4.1941:={user_dn})(sAMAccountName=*))" + + +Le paramètre *group_to_role_mapping* contient une liste de paramètres au format suivant: + + ["cn=Group1,ou=Groups,dc=maville,dc=fr", ["slug-du-rôle1", "slug-du-rôle2"]] + +où le pemier paramètre est le DN du groupe dans l'annuaire et le deuxième paramètre est la liste des slugs des rôles à attribuer. + +Ainsi, le fichier de configuration aurait la forme suivante: + + { + "LDAP_AUTH_SETTINGS": [ + { + "realm": "mairie-macollectivite.fr", + "url": ["ldap://v-dc1.vnan.intra/", "ldap://v-dc2.vnan.intra/"], + "basedn": "OU=macollectivite,DC=vnan,DC=intra", + "binddn": "xxxxx@vnan.intra", + "bindpw": "xxxxx", + "user_filter": "(&(objectClass=user)(sAMAccountType=805306368)(|(mail=%s)(samaccountname=%s))(|(memberOf=CN=.LD_Agents_BO,OU=macollectivite,DC=vnan,DC=intra)(memberOf=CN=.LD_Agents_Publik,OU=macollectivite,DC=vnan,DC=intra)))", + "username_template": "{samaccountname[0]}@{realm}", + "update_username": true, + "active_directory": true, + "attributes": [ + "mail", + "sAMAccountName", + "cn", + "sn", + "givenName", + "userPrincipalName" + ], + "external_id_tuples": [["samaccountname"],["dn:noquote"]], + "shuffle_replicas": false, + "require_cert": "never", + "use_tls": false, + "set_mandatory_roles": ["Agent"], + "user_can_change_password": false, + "group_filter": "(&(objectClass=group)(member:1.2.840.113556.1.4.1941:={user_dn})(sAMAccountName=*))", + "group_to_role_mapping": [ + ["cn=Group1,ou=Groups,dc=maville,dc=fr", ["slug-du-rôle1", "slug-du-rôle2"]], + ] + } + ] + }