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.

...

Bloc de code
	<util:map id="sgcMappingGroupesRoles">
		<beans:entry key="esup-sgc-admins" value="ROLE_ADMIN" />
		<beans:entry key="esup-sgc-managers" value="ROLE_MANAGER" />
		<beans:entry key="esup-sgc-users" value="ROLE_USER" />
	</util:map>

 

Qu'est-ce qu'un thème dans ESUP-SGC ?

Un thème correspond notamment à une CSS ainsi qu'au logo de l'établissement tous deux utilisés lors de l'impression de la carte.
Ce même CSS permet la prévisualisation (pour l'usager et pour le manager) de la carte, aussi dans ce contexte un css spécifique à la vue mobile est présent ainsi qu'un masque (de carte) et un qrcode.

On peut avoir plusieurs thèmes et une même 'clef' de thème peut également être utilisée plusieurs fois avec des versions différentes.

L'idée est ainsi de permettre d'avoir des thèmes différents suivant les individus et éventuellement des versions de thèmes différentes si le thème évolue dans le temps (changement de look de la carte d'un établissement).

Est-ce que ldap est obligatoire ?

L'identification par shibboleth est obligatoire. Ldap était aussi obligatoire au début du projet.

  • L'idée est de s'appuyer au mieux sur supann (et schémas ldap associés) pour les attributs utilisateurs et donc de privilégier la récupération de ces attributs utilisateurs via LDAP.
  • Ldap est aussi proposé pour gérer les rôles des utilisateurs via les groupes ldap.

Il est possible de fonctionner sans ldap, le premier cas d'usage ici a été le montage de site de démo esup-sgc-demo.univ-rouen.fr (voir la page wiki à propos de celle-ci, et notez notamment les limitations d'une telle intégration) :

  • on récupère les attributs utilisateurs de shibboleth, et éventuellement d'une BD sql
  • les groupes/rôles sont construits via des règles sur les attributs utilisateurs directement

Qu'est-ce qu'un thème dans ESUP-SGC ?

Un thème correspond notamment à une CSS ainsi qu'au logo de l'établissement tous deux utilisés L'affectation d'un thème à un utilisateur se fait au travers du peuplement d'un nouveau 'userInfo' nommé 'template'. La dernière version du thème coorespondant à cette clef étant utilisée lors de l'impression de la carte.

Enfin notez que les thèmes sont gérés depuis l'interface web d'esup-sgc et l'outil permettant de les créer ou les modifier permet ainsi au passage d'éditer la CSS avec rendu immédiat synchronisé dans le navigateur (~ livedit du css) !

 

Comment faire une demande de carte en utilisant le webservice proposé par ESUP-SGC ?

La demande de carte peut être faite par l'appel d'un webservice. Cet appel ressemble à ceci:

Ce même CSS permet la prévisualisation (pour l'usager et pour le manager) de la carte, aussi dans ce contexte un css spécifique à la vue mobile est présent ainsi qu'un masque (de carte) et un qrcode.

On peut avoir plusieurs thèmes et une même 'clef' de thème peut également être utilisée plusieurs fois avec des versions différentes.

L'idée est ainsi de permettre d'avoir des thèmes différents suivant les individus et éventuellement des versions de thèmes différentes si le thème évolue dans le temps (changement de look de la carte d'un établissement).

L'affectation d'un thème à un utilisateur se fait au travers du peuplement d'un nouveau 'userInfo' nommé 'template'. La dernière version du thème coorespondant à cette clef étant utilisée lors de l'impression de la carte.

Enfin notez que les thèmes sont gérés depuis l'interface web d'esup-sgc et l'outil permettant de les créer ou les modifier permet ainsi au passage d'éditer la CSS avec rendu immédiat synchronisé dans le navigateur (~ livedit du css) !

 

Comment faire une demande de carte en utilisant le webservice proposé par ESUP-SGC ?

La demande de carte peut être faite par l'appel d'un webservice. Cet appel ressemble à ceci:

Bloc de code
curl -F "eppn=username@univ-ville.fr" -F "difPhotoTransient=true" -F "crousTransient=true" -F "PhotoFile.file=
Bloc de code
curl -F "eppn=username@univ-ville.fr" -F "difPhotoTransient=true" -F "crousTransient=true" -F "PhotoFile.file=@/path/to/image.png"  https://esup-sgc.univ-ville.fr/wsrest/api

...

Même si l'usage de groupes ldap, notamment via l'usage de Grouper, est conseillé (c'est ce que propose la configuration par défaut et c'est ce qui est utilisé dans la VM de démonstration), il est effectivement possible d'utiliser en lieu et place des filtres ldap.Pour ce faire, dans applicationContext-security.xml on modifiera d'utiliser en lieu et place des filtres ldap.

Pour ce faire, dans applicationContext-security.xml on modifiera 

Bloc de code
	<beans:bean id="groupService" class="org.esupportail.nfctag.security.LdapGroupService">
		<beans:property name="ldapTemplate" ref="ldapTemplate"/>
		<beans:property name="groupSearchBase" value="ou=groups" />
		<beans:property name="groupSearchFilter" value="member={0}"/>
		<beans:property name="memberSearchBase" value="ou=people"/>
		<beans:property name="memberSearchFilter" value="memberOf={0}"/>
	</beans:bean>

par quelque chose du type : 

Bloc de code
	<beans:bean id="groupService" class="org.esupportail.nfctag.security.LdapGroupServiceLdapFilterGroupService">
		<beans:property name="ldapTemplate" ref="ldapTemplate"/>
		<beans:property name="groupSearchBase" value="ou=groups" />
ldapFiltersGroups">
			<util:map>
				<beans:propertyentry namekey="groupSearchFiltereduPersonPrincipalName=joe@univ-ville.fr" value="member={0}esup-nfc-admins"/>
				<beans:propertyentry namekey="memberSearchBaseeduPersonPrincipalName=jack@univ-ville.fr" value="ou=peopleesup-nfc-supervisors"/>
			<beans:property name="memberSearchFilter" value="memberOf={0}"/></util:map>
		</beans:property>
	</beans:bean>

par quelque chose du type : 

C'est ensuite ces noms de groupes ainsi déifinis ('esup-sgc-admins', 'esup-nfc-supervisors') qui peuvent être utilisés au niveau du bean nfcMappingGroupesRoles pour définir les rôles de chacun : 

Bloc de code
	<util:map id="nfcMappingGroupesRoles
Bloc de code
	<beans:bean id="groupService" class="org.esupportail.nfctag.security.LdapFilterGroupService">
		<beans:property name="ldapTemplate" ref="ldapTemplate"/>
		<beans:property name="ldapFiltersGroups">
			<util:map>
				<beans:entry key="eduPersonPrincipalName=joe@univ-ville.fresup-nfc-admins" value="esup-nfc-admins"ROLE_ADMIN" />
				<beans:entry key="eduPersonPrincipalName=jack@univ-ville.fresup-nfc-supervisors" value="esup-nfc-supervisors"ROLE_SUPERVISOR" />
			</util:map>
		</beans:property>
	</beans:bean>

C'est ensuite ces noms de groupes ainsi déifinis ('esup-sgc-admins', 'esup-nfc-supervisors') qui peuvent être utilisés au niveau du bean nfcMappingGroupesRoles pour définir les rôles de chacun : 

...

Est-ce que ldap est obligatoire ?

L'identification par shibboleth est obligatoire. Ldap était aussi obligatoire au début du projet.

  • Ldap est utilis pour gérer les rôles des utilisateurs via les groupes ldap.

Il est possible de fonctionner sans ldap, le premier cas d'usage ici a été le montage de site de démo esup-sgc-demo.univ-rouen.fr (voir la page wiki à propos de celle-ci, et notez notamment les limitations d'une telle intégration) :

  • les groupes/rôles sont construits via des règles sur l'eppn uniquement ...