Esup-Signature

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Info

esup-signature propose plusieurs mode modes d'authentification qui peuvent être utilisés simultanément :

  • Authentification CAS
  • Authentification Shibboleth
  • Authentification OTP (one time password)
  • Authentification OAuth (à l'étude)

L'authentification d'un utilisateur donne lieu à l'attribution de rôles via un mécanismes mécanisme de correspondances correspondance groupes ↔ rôles de l'on va détailler ici.

La configuration ce 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-groupsSources 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 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 . Ex : le groupe toto.tata pour le pattern toto.(\w*) donnera le rôle ROLE_TATA

    • Enfin l'attribution des autres rôles ce 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 :

  • ROLE_USER : indispensable pour accéder à l'application
  • ROLE_ADMIN : qui ouvre les droits à la partie administration
  • ROLE_OTP : obtenu lors qu'un utilisateur externe ce se connecte via OTP. Il obtient des droit droits pour effectuer des signatures

...

Voici quelques exemples de configuration à mettre en place dans src/main/ressource/application.yml pour illustrer les différents cas de figure.

J'ai un annuaire ldap et je souhaite attribuer le

...

rôle ROLE_USER en fonction d'un filtre ldap

Dans la partie ldap, un exemple de filtre pour ne sélectionner les personnels staff. Toutes les personnes correspondant au filtre seront dans le groupe "mes-utilisateurs"

Bloc de code
languageyml
themeRDark
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 le roles un rôles à ce groupe il suffit d'ajouter l'affectation dans la partie security.web

Bloc de code
languageyml
themeRDark
security:
	...
	...
	web:
		...
	    mapping-groups-roles:										
	        mes-utilisateurs: ROLE_USER	        					# on affecte le groupe 'mes-utilisateurs' au role ROLE_USER
	    ws-access-authorize-ips: 127.0.0.1

J'ai déjà des groupes dans mon annuaire je souhaite les utiliser pour attribuer des rôles spécifiques aux

...

circuits et/ou pour donner le ROLE_USER

Prenons un cas ou l'utilisateur arrive dans esup-signature avec dans member les groupes suivants: 

...