Arborescence des pages

Vous regardez une version antérieure (v. /wiki/display/SGC/FAQ) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 15) afficher la version suivante »

ESUP-SGC

Dans l'application ESUP-SGC, peut-on utiliser une base de données externe Oracle pour récupérer des données utilisateurs ?

Oui.

Le driver oracle n'étant pas dans le maven central, une modification du pom.xml ne suffit pas. Il faudra en plus l'ajouter dans votre 'repository local' ainsi : 

mvn install:install-file -Dfile=/tmp/ojdbc6-11.2.0.3.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -DgeneratePom=true

puis ajout dans le pom.xml de la dépendance :

<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>11.2.0.3</version>
</dependency>

La configuration se fait ensuite dans applicationContext-services.xml avec un dataSource adéquat ...

    <bean id="dataSourceOracle" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@oracle.devcake.co.uk:1521:INTL"/>
        <property name="username" value="sa"/>
        <property name="password" value=""/>
    </bean>

 

Je n'ai pas de groupes dans ldap, est-ce que je peux plutôt utiliser des filtres pour affecter les rôles dans l'application ESUP-SGC ?

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-services.xml on modifiera 

	<bean id="groupService" class="org.esupportail.sgc.services.ldap.LdapGroupService">
		<property name="ldapTemplate" ref="ldapTemplate"/>
		<property name="groupSearchBase" value="ou=groups" />
		<property name="groupSearchFilter" value="member={0}"/>
		<property name="memberSearchBase" value="ou=people"/>
		<property name="memberSearchFilter" value="memberOf={0}"/>
	</bean>

par quelque chose du type : 

	<bean id="groupService" class="org.esupportail.sgc.services.ldap.LdapFilterGroupService">
		<property name="ldapTemplate" ref="ldapTemplate"/>
		<property name="ldapFiltersGroups">
			<map>
				<entry key="(|(eduPersonAffiliation=student)(eduPersonAffiliation=employee))" value="esup-sgc-users"/>
				<entry key="eduPersonPrincipalName=joe@univ-ville.fr" value="esup-sgc-admins"/>
				<entry key="eduPersonPrincipalName=jack@univ-ville.fr" value="esup-sgc-managers"/>
			</map>
		</property>
	</bean>

C'est ensuite ces noms de groupes ainsi déifinis ('esup-sgc-users', esup-sgc-admins', ...) qui peuvent être utilisés dans applicationContext-security.xml au niveau du bean sgcMappingGroupesRoles pour définir les rôles de chacun : 

	<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).

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:

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

La valeur de templateCard correspond en fait à l'ID du thème que vous souhaitez utiliser (colonne ID de la table TEMPLATE_CARD dans la base de données).

La liste des clients autorisés à utiliser ce webservice est définie dans la variable accessRestrictionWSRestAPI du fichier security.properties. Par exemple, pour autoriser certaines adresses IP (notez que la valeur de cette variable n'est pas entourée de guillemets):

accessRestrictionWSRestApi=hasIpAddress('127.0.0.1') or hasIpAddress('192.168.1.39') or hasIpAddress('192.168.22.0/24')

 

Peut-on encoder l'application CROUS quand on utilise des cartes vierges ?

Dans le cadre d'Esup-SGC il est conseillé d'utiliser des cartes pré-encodées avec l'application CROUS/IZLY. Il est tout de même possible d'activer l'encodage CROUS lors de l'encodage de cartes vierges avec Esup-Sgc-Client. Pour cela il faut:

  • Utiliser un PC sous windows 64 et se procurer l'application cnousApi auprès de la liste esup-sgc-devel@esup-portail.org
  • Obtenir une plage d'identifiants auprès du CNOUS ainsi qu'un fichier clé CNOUS ZDC et une clé matérielle SAM.
  • Installer l'application sous c:\cnousApi, le dossier devra contenir les fichier suivants:
    - cnous_fournisseur_carte.dll
    - CreationCarteCrous.exe
    - CreationCarteCrous.exe.config
    - key.txt (Clé CNOUS ZDC)
    - libeay32.dll (openSSL)
    - libssl32.dll (openSSL)
    - pcsc_desfire.dll (springcard)

  • Brancher la clé USB SAM

  • Lancer CreationCarteCrous.exe permet de s'assurer que l'application fonctionne correctement

- "CreationCarteCrous.exe -t" doit afficher true
- "CreationCarteCrous.exe -l" permet de lire l'application CROUS d'une carte

  • Modifier la configuration du sgc dans applicationContext-services.xml
<bean class="org.esupportail.sgc.services.cardid.CnousCardIdService">
	<property name="appName" value="crous"/>
	<property name="idCounterBegin" value="<numero de debut de plage CNOUS>"/>
	<property name="postgresqlSequence" value="crous_smart_card_sequence"/>
	<property name="crousEncodeEnabled" value="true"/>
</bean>
  • Inserer le premier identifiant de votre plage au niveau du idCounterBegin et mettre crousEncodeEnabled à true.

Lors du lancement de l'application Esup-Sgc-Client depuis le SGC, un contrôle de l'application cnousApi sera effectué. 

La première ligne de log doit indiquer "dll cnous : OK"

A quoi correspondent les Apps disponibles depuis le menu de l'interface web ESUP-SGC ?

Encodeur

Lien esup-sgc de esup-sgc-client.jnlp qui lance le jar esupsgcclient-XXXX.jar
Le code source est sur https://github.com/EsupPortail/esup-sgc-client - branche master
C'est l'encodeur par défaut à utiliser avec esup-sgc, il requiert une webcam et un lecteur usb nfc. Cela permet l'encodage de carte une à une.
Le jar est fourni par défaut compilé dans esup-sgc, il est signé par l'Université de Rouen.

Encodeur - robot ZXP3

Lien esup-sgc de esup-sgc-client-r2d2.jnlp qui lance le jar esupsgcclient-r2d2.jar
Le code source est sur https://github.com/EsupPortail/esup-sgc-client - branche univ-rouen-robot-zxp3
C'est un encodeur compatible esup-sgc, il requiert une webcam et une imprimante Zebra ZXP3 sous Windows. Cela permet l'encodage de plusieurs cartes via le chargeur de la ZXP3.
Le jar n'est par fourni par défaut dans esup-sgc, il faut le compiler soi-même et le signer (contrainte java web start).

Application Android

Lien esup-nfc-tag-server de esupnfctagdroid.apk
Le code source est sur https://github.com/EsupPortail/esup-nfc-tag-droid
C'est l'application cliente esup-nfc sous Android. Elle permet d'intégrer de manière générique le badgeage dans des applications institutionnelles. Pour ce faire elle propose le badgeage dans les 'salles' esup-nfc, salles elles-mêmes récupérées depuis d'autres applications. Esup-SGC fait partie de ces applications et propose des salles de recherche, livraison, verso dématérialisé, mise à jour.
L'apk n'est par fourni par défaut dans esup-nfc-tag-server, il faut configurer les sources (lien sur le serveur esup-nfc-tag-server) et le compiler soi-même.


Application Java

Lien esup-nfc-tag-server de esupnfctagdesktop.jar
Le code source est sur https://github.com/EsupPortail/esup-nfc-tag-desktop
C'est l'application cliente esup-nfc pour PC (Desktop : client java).
Elle permet d'intégrer de manière générique le badgeage dans des applications institutionnelles. Pour ce faire elle propose le badgeage dans les 'salles' esup-nfc, salles elles-mêmes récupérées depuis d'autres applications. Esup-SGC fait partie de ces applications et propose des salles de recherche, livraison, verso dématérialisé, mise à jour.
Le jar n'est par fourni par défaut dans esup-nfc-tag-server, il faut configurer les sources (lien sur le serveur esup-nfc-tag-server) et le compiler soi-même.

Dans le cadre d'une migration sur ESUP-SGC, comment réimporter les cartes éditées/encodées par l'ancien SGC ?

Si vous souhaitez utiliser ESUP-SGC alors que vous utilisiez précédemment un autre Système de Gestion de Cartes, il vous faudra sans doute effectivement reprendre l'existant, c'est à dire réimporter vos cartes éditées/encodées via votre ancien SGC dans ESUP-SGC.

Pour ce faire, ESUP-SGC vous propose des outils permettant d'importer des 'cartes'.

Cela se fait via un fichier CSV depuis la vue administrateur, onglet import.

Le CSV attendu doit avoir une entête (la première ligne est en fait ici simplement ignorée) et les lignes suivantes peuvent être de cette forme :

28/01/2015 14:40:35;14/06/2017 23:05:29;803412abcd5704;Autorisée;100020000002120;testju@univ-rouen.fr

qui correspondent à :

date d'impression/encodage;date de dernière modification;CSN;Autorisation données crous (Autorisée/Interdite);Identifiant Access-Control;eppn

Les autres informations sont en effet récupérées depuis le SI par ESUP-SGC (ldap, base de données ; le lien étant fait via l'eppn) ou encore depuis l'import csv crous
(pour la récupération des identifiants crous ; le lien étant fait via le CSN).

Si vos cartes sont encodées CROUS, le fichier CROUS doit également être réimportée dans ESUP-SGC depuis la vue administrateur, onglet crous.

Ce fichier CSV correspond

  • au fichier CSV donné avec les cartes pré-encodées 
  • ou encore au fichier CSV généré par la DLL CROUS si vous encodez vous-même la carte 
  • il peut enfin être retrouvé/réexporter par votre SGC.

Pour rappel chaque ligne de ce fichier donne les champs suivants : 

PIX.SS;PIX.NN;AAPL;NUM_PROTOCOLAIRE;NUM_APPLICATIF;NFO;CNOUS;CROUS;EMETTEUR;MAPPING;NUM_CARTE;DATE_CREATION

ESUP-NFC-TAG

Je n'ai pas de groupes dans ldap, est-ce que je peux plutôt utiliser des filtres pour affecter les rôles dans l'application ESUP-NFC-TAG ?

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 

	<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 : 

	<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.fr" value="esup-nfc-admins"/>
				<beans:entry key="eduPersonPrincipalName=jack@univ-ville.fr" value="esup-nfc-supervisors"/>
			</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 : 

	<util:map id="nfcMappingGroupesRoles">
			<beans:entry key="esup-nfc-admins" value="ROLE_ADMIN" />
			<beans:entry key="esup-nfc-supervisors" value="ROLE_SUPERVISOR" />
	</util:map>
  • Aucune étiquette