...
| Info |
|---|
esup-signature propose plusieurs modes d'authentification qui peuvent être utilisés simultanément :
L'authentification d'un utilisateur donne lieu à l'attribution de rôles via un mécanisme de correspondance groupes ↔ → rôles de l'on va détailler ici. La configuration ce se fait dans le fichier de configuration src/main/resources/application.yml voir : Sources et configuration |
...
- Lorsqu’un utilisateur se connecte on récupère la liste des groupes dont il fait parti
- Si une connexion LDAP est configurée il est possible d'attribuer des groupes à l'utilisateur à l'aide de filtres ldap grâce à la propriété mapping-filters-groups : Sources et configuration
- Dans tous les cas il est aussi possible d'attribuer des groupes via des règles group-mapping-spel utilisant la syntaxe SePL de Spring. Cela est limité à l'utilisation de l'attribut #eppn pour permettre d'attribuer un groupe à une personne en particulier. Il est possible aussi d'attribuer un groupe à tous les utilisateurs en utilisant "true"
- Ensuite viens vient l'attribution des rôles :
Tout d'abord à l'aide du group-to-role-filter-pattern. Il va détecter les groupes de l'utilisateur qui correspondent au pattern défini et attribuer le rôle correspondant. Ex : le groupe toto.tata pour le pattern toto.(\w*) donnera le rôle ROLE_TATA
- Enfin l'attribution des autres rôles se fait à l'aide la liste de correspondance spécifiée dans mapping-groups-roles où l'on déclare nom_du_groupe = ROLE_NOM_DU_ROLE.
...
| Remarque |
|---|
esup-signature possède trois rôles particuliers :
|
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
ldap:
search-base: ou=people
group-search-base: ou=groups
user-id-search-filter: (uid={0})
group-search-filter: member={0}
member-search-filter: (&(uid={0})({1}))
mapping-filters-groups:
mes-utilisateurs : "eduPersonAffiliation:=staff" # ici le filtre ldap va remplir le groupe 'mes-utilisateurs' |
Pour affecter un rôles rôle à ce groupe il suffit d'ajouter l'affectation dans la partie security.web
...
Prenons un cas ou l'utilisateur arrive dans esup-signature avec dans member les groupes ldap suivants:
- esup-signature.mes-utilisateurs (groupe auquel on souhaite donner le ROLE_USER)
- esup-signature.mesroles.circuit_toto (groupe que l'on souhaite utiliser pour donner des droits sur le circuit "toto")
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
security:
...
...
web:
group-to-role-filter-pattern: esup-signature.mesroles.(\w*) # on configure le pattern permettant de retrouver automatiquement les groupes amenés à devenir
des rôles applicatifs
mapping-groups-roles:
esup-signature.mes-utilisateurs: ROLE_USER # on attribut directement le ROLE_USER auaux personnes du groupe 'esup-signature.usermes-utilisateurs'
ws-access-authorize-ips: 127.0.0.1 |
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
security: ... ... web: ... mapping-groups-roles: mes-utilisateurs: ROLE_USER # on attribut directement le ROLE_USER auaux personnes du groupe 'mes-utilsateurs' mes-admins: ROLE_ADMIN # on attribut directement le ROLE_ADMIN auaux personnes du groupe 'mes-admins' ws-access-authorize-ips: 127.0.0.1 group-mapping-spel: mes-utilisateurs: "true" # met tout le monde dans le groupe 'mes-utilisateurs" mes-admins: "#eppn='user1@univ-ville.fr' or #eppn='user2@univ-ville.fr" # met user1 et user2 dans le groupe 'mes-admins' |
...