Arborescence des pages

Vous regardez une version antérieure (v. /wiki/display/SGC/Configurations+ESUP-SGC+et+ESUP-NFC-TAG-SERVER) 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. 13) afficher la version suivante »

Introduction

Comme dit précédemment, le SGC nécessite une instance d'ESUP-NFC-TAG-SERVER pour fonctionner. Dans ce document on présente les modifications de configuration qu'il faudra effectué au niveau d'ESUP-NFC-TAG-SERVER.

Versioning de la configuration

D'une manière générale il est conseillé de faite des commits GIT locaux pour sauvegarder vos modifications de configuration.

Par exemple, lors que vous avez fini la configuration du fichier "src/main/resources/META-INF/spring/applicationContext-custom.xml" vous pouvez executer les commandes suivantes depuis la racine de vos sources (ex : /opt/esup-nfc-tag):

git add src/main/resources/META-INF/spring/applicationContext-custom.xml
git commit -m "config prod univ-ville-fr"

La modification du fichier applicationContext-custom.xml sera versionnée ce qui permet de concerver les traces de toutes les modifications (procédure à faire à chaque modification). De plus lors d'une mise à jour d'ESUP-SGC (git pull) la configuration ne sera pas écrasée.

ESUP-SGC

La configuration se fait via les fichiers suivants :

  • src/main/resources/META-INF/spring/database.properties

  • src/main/resources/META-INF/persistence.xml
  • src/main/resources/META-INF/spring/applicationContext-services.xml
  • src/main/resources/META-INF/spring/applicationContext-crous.xml

  • src/main/resources/META-INF/spring/applicationContext-paybox.xml

  • src/main/resources/META-INF/spring/applicationContext-access-control.xml

  • src/main/resources/META-INF/spring/applicationContext-security.xml

Paramétrage de la base de données (database.properties et persistence.xml)

Les paramètres de connexion à la base de données sont indiqués dans le database.properties. Par exemple:

database.driverClassName=org.postgresql.Driver
database.url=jdbc\:postgresql\://localhost\:5432/esupsgc
database.username=esupsgc
database.password=esup

applicationContext-services.xml

UserInfo :

La première partie du fichier comporte les « UserInfoService » ainsi que les « SpelUserInfoService » . Ces deux entités ont pour but de peupler les informations des demandeurs de carte à l’aide des différentes sources de données présentent dans le SI. Trois methodes sont implémentées dans le SGC :

  • ShibUserInfoService (recupération des données via le context Shibboleth)

  • LdapUserInfoService

  • SqlUserInfoService

Les spelUserInfoService sont des règles qui s’appliquent ensuite pour calculer certains attributs de l’utilisateur.

La recherche dans les différentes sources ainsi que le calcul des règles se fait de manière séquentielle dans l’ordre défini par la propriété « p:order ». A chaque étape, quand une donnée est trouvée, elle remplace celle trouvée par l’étape précédente.

C'est via les 'userInfos' que la synchronisation des données utilisateurs depuis le Système d'Information se fait. Les champs 'userInfos' sont de tout type : nom, prénom, date de naissance, indice, numéro étudiant, numéro personnel, email, libellés à écrire sur la carte, thème de la carte, etc.

Nom du champ esup-sgcUsageObligatoire Source à 'privilégier'
eppn Identifiant métier : eduPersonPrincipalNameOuieduPersonPrincipalName - obligatoire dans toutes les sources - car permet de faire le lien -> shib, ldap et sql
email Envoi d’email d’information lors de l’évolution de la carte ; ticket paybox, ...

Non

shib/ldap - champ mail
eduPersonPrimaryAffiliationCatégorisation population – moteur de recherche Nonshib/ldap - champ eduPersonPrimaryAffiliation
supannEtuId moteur de recherche Nonshib/ldap - champ supannEtuId
supannEmpIdmoteur de rechercheNonshib/ldap - champ supannEmpId
supannCodeINE
affichage / construction identifiant ESCRNonshib/ldap - champ supannCodeINE
supannEntiteAffectationPrincipalemoteur de rechercheNonshib/ldap - champ supannEntiteAffectationPrincipale
firstnameAffichage / moteur de rechercheOuishib/ldap - champ givenname
nameAffichage / moteur de rechercheOuishib/ldap - champ sn
schacDateOfBirthDate de naissance - obligatoire dans les contrôles d’accèsOuishib/ldap - champ schacDateOfBirth
schacExpiryDateDate de fin de droits – les cartes de l’individu sont marquées comme caduques cette date passée.Nonshib/ldap - champ schacExpiryDate
referenceStatutPopulation crous (etd, stg, prs, psg, …) - permet de calculer le tarif et société crous depuis le fichier ESIST.xmlOui sql
indiceIndice du personnel - permet de calculer le tarif et société crous depuis le fichier ESIST.xmlNon sql
secondaryIdIdentifiant secondaire quelconque – affichage / moteur de recherche / web serviceNon ...
instituteÉtablissementOui 
supannEtablissementCode RNE Établissement - permet de calculer le tarif et société crous depuis le fichier ESIST.xmlOuishib/ldap - champ supannEtablissement
recto1Libellé sur rectoNon 
recto2Libellé sur rectoNon 
recto3Libellé sur rectoNon 
recto4Libellé sur rectoNon 
recto5Libellé sur rectoNon 
verso1Libellé sur verso (dématérialisé)Non 
verso2Libellé sur verso (dématérialisé)Non 
verso3Libellé sur verso (dématérialisé)Non 
verso4Libellé sur verso (dématérialisé)Non 
verso5Libellé sur verso (dématérialisé)Non 
supannRefId4ExternalCardsupannRefId donnant des numéros de cartes 'externes', cad non issus du SGC (et donc issus d'un autre SGC)Nonshib/ldap - champ supannRefId
jpegPhoto4ExternalCardjpegPhoto donnant la photo de cartes 'externes', cad non issus du SGC (et donc issus d'un autre SGC)Nonshib/ldap - champ jpegPhoto

 

cardIdsService :

Permet de configurer la génération d'identifiants qui pourront être codés dans la carte par esup-nfc-tag :

  • pour du contrôle d'accès par exemple
  • ou pour générer l'identifiant de carte crous si on n'opte pas pour l'usage de carte préencodé crous et qu'on souhaite qu'esup-sgc et esup-nfc-tag se chargent de cet encodage. Aussi dans ce cadre crousEncodeEnabled à true permet de spécifier que l’application CROUS doit être écrite lors de l’encodage des cartes.
	<bean id="cardIdsService" class="org.esupportail.sgc.services.cardid.CardIdsService">
		<property name="cardIdServices">
			<list>
				<bean class="org.esupportail.sgc.services.cardid.ComueNuAccessControlCardIdService">
					<property name="appName" value="access-control"/>
					<property name="idCounterBegin" value="XXXXXXXXXXXXXXX"/>
					<property name="postgresqlSequence" value="card_sequence"/>
				</bean>
				<bean class="org.esupportail.sgc.services.cardid.ComueNuBuCardIdService">
					<property name="appName" value="bu"/>
				</bean>
				<bean class="org.esupportail.sgc.services.cardid.CnousCardIdService">
					<property name="appName" value="crous"/>
					<property name="idCounterBegin" value="XXXXXXXX"/>
					<property name="postgresqlSequence" value="crous_smart_card_sequence"/>
					<property name="crousEncodeEnabled" value="false"/>
				</bean>
			</list>
		</property>
	</bean>

 

EsupNfcTagService :

Pour spécifier l’adresse du serveur esup-nfc-tag. Le SGC déclare et contrôle ses périphériques d’encodage (esup-scg-client) avec esup-nfc-tag (applicationName correspond à l'application créée dans esup-nfc-tag)

<bean id="esupNfcTagService" class="org.esupportail.sgc.services.EsupNfcTagService">
 <property name="restTemplate" ref="restTemplate"/>
 <property name="webUrl" value="http://esup-nfc-tag.univ-ville.fr"/>
 <property name="applicationName" value="Ecriture SGC"/>
 <property name="location" value="Encodage ESUP SGC"/>
</bean>

 

LdapValidateService

Le SGC peut transmettre des données au LDAP lorsque la carte est activée. Dans le bean ldapValidateService il est possible de paramétrer deux types de clés : Simple ou multivaluée (ldapCardIdsMappingValue, ldapCardIdsMappingMultiValues)

Les valeurs transmissibles sont : %csn%, %reverse_csn% (le csn retourné par paires), %access-control% (ex : identifiant contrôle d'accès), %photo%.

<bean id="ldapValidateService" class="org.esupportail.sgc.services.ldap.LdapValidateService">
 <property name="ldapTemplate" ref="ldapTestTemplate"/>
 <property name="peopleSearchFilter" value="(eduPersonPrincipalName={0})"/>
 <property name="ldapCardIdsMappingMultiValues">
  <map>
   <!-- Exemple clé multi-valuée -->
   <entry key="supannRefId">
    <list>
     <value>{ISO15693}%csn%</value>
     <value>{LEOCARTE:ACCESS-CONTROL}%access-control%</value>
    </list>
   </entry>
   <!-- Exemple clé multi-valuée -->
   <entry key="autreExemple">
    <list>
     <value>%reverse_csn%@ISO15693</value>
    </list>
   </entry>
  </map>
 </property>
 <property name="ldapCardIdsMappingValue">
  <map>
    <!-- Exemple clé simple -->
    <entry key="jpegPhoto" value="%photo%"/>
  </map>
 </property>
</bean>

applicationContext-crous.xml

ApiCrousService :

Permet d’activer l’envoi de données au CROUS via l’api

<bean id="apiCrousService" class="org.esupportail.sgc.services.crous.ApiCrousService">
 <property name="enable" value="false"/>
 <property name="webUrl" value="https://api-pp.nuonet.fr/v1" />
 <property name="login" value="truc@univ-ville.fr" />
 <property name="password" value="xxxxxxxxxxxxxxx" />
 <property name="restTemplate" ref="restTemplate" />
</bean>

 

EsistCrousService :

Fait référence au fichier XML de calcul des tarifs CROUS

ApiEscrService :

Permet de configurer l’envoi des données à l’api ESC (Eropean Student Card) voir : http://europeanstudentcard.eu/

<bean id="europeanStudentCardService" class="org.esupportail.sgc.services.esc.ApiEscrService">
 <property name="enable" value="false"/>
 <property name="webUrl" value="http://api-sandbox.europeanstudentcard.eu/v1" />
 <property name="key" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
 <property name="restTemplate" ref="restTemplate" />
 <property name="countryCode" value="FR"/>
 <property name="picInstitutionCode" value="000000000"/>
 <!--
  Type of cards. Possibles values are :
   1 - passive card, with no electronic
   2 - Smartcard without European common data zone
   3 - Smartcard with European common data zone
   4 - Smartcard on which application may be installed by service providers
  -->
 <property name="cardType" value="3"/>
</bean>

applicationContext-paybox.xml

Permet le paramétrage du module paybox dans le cas d’un renouvellement de carte payant.

applicationContext-access-control.xml

Permet de paramétrer le chemin d'export des informations pour le controle d'accès. Formats disponibles:

  • P2S
  • TIL
  • SYNCHRONIC

applicationContext-security.xml

Comme pour la configuration esup-nfc-tag, il s’agit de mapper les groups sur les rôles proposés par le SGC :

<util:map id="sgcMappingGroupesRoles">
	<beans:entry key="cn=for.esup-sgc.admin,ou=groups,dc=univ-ville,dc=fr" value="ROLE_ADMIN" />
	<beans:entry key="cn=for.esup-sgc.super-manager,ou=groups,dc=univ-ville,dc=fr" value="ROLE_SUPER_MANAGER" />
	<beans:entry key="cn=for.esup-sgc.livreur,ou=groups,dc=univ-ville,dc=fr" value="ROLE_LIVREUR" />
	<beans:entry key="cn=for.esup-sgc.updater,ou=groups,dc=univ-ville,dc=fr" value="ROLE_UPDATER" />
	<beans:entry key="cn=for.esup-sgc.consult,ou=groups,dc=univ-ville,dc=fr" value="ROLE_CONSULT" />
	<beans:entry key="cn=for.esup-sgc.user,ou=groups,dc=univ-ville,dc=fr" value="ROLE_USER" />
	<beans:entry key="cn=from.apogee.dossier-nok,ou=groups,dc=univ-ville,dc=fr" value="ROLE_USER_NO_EDITABLE" />
	<beans:entry key="cn=from.esup-sgc.users-cards-3years-student,ou=groups,dc=univ-ville,dc=fr" value="ROLE_USER_RENEWAL_PAYED" />
</util:map>

ESUP-NFC-TAG-SERVER

La configuration se fait par les fichiers suivants :

  • src/main/resources/META-INF/spring/applicationContext-custom.xml

  • src/main/resources/META-INF/spring/applicationContext-desfire.xml (voir Configuration Desfire avancée)

  • src/main/resources/META-INF/spring/applicationContext-security.xml

applicationContext-custom.xml

Le fichier applicationContext-custom.xml permet de configurer les différentes applications avec lesquelles esup-nfc-tag va communiquer.

Dans le cadre du SGC il faudra à minima configurer la connexion avec esup-sgc à l’aide de la configuration suivante :

<bean id="csnAuthConfig" class="org.esupportail.nfctag.service.api.impl.CsnAuthConfig">
 <property name="description" value="Authentification CSN"/>
</bean>
<bean id="esupSgcWriteExtApi" class="org.esupportail.nfctag.service.api.impl.AppliExtRestWs">
 <property name="isTagableUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/isTagable"/>
 <property name="validateTagUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/validateTag"/>
 <property name="getLocationsUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/locations"/>
 <property name="description" value="Web Service Write Esup SGC"/>
</bean>
<bean id="tagIdCheckApiEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagIdCheckRestWs">
 <property name="tagIdCheckUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/tagIdCheck"/>
 <property name="idFromEppnInitUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/idFromEppnInit"/>
 <property name="description" value="via Esup SGC"/>
</bean>

en remplacant les liens par ceux pointant vers votre instance d’esup-sgc

applicationContext-desfire.xml

Dans le ficher applicationContext-desfire.xml on trouve la structure et les données qui seront écrites sur la carte lors de l’encodage. Par défaut la configuration de Desfire est vide, aucune application ne sera écrite sur la carte.

<bean id="tagName" class="org.esupportail.nfctag.beans.DesfireTag" p:formatBeforeWrite="false" p:key="0000000000000000" p:keyType="DES" p:keyVersion="00">
</bean>
 
<bean id="desfireAuthConfigComueWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.DesfireWriteConfig">
		<property name="desfireTag" ref="tagName" />
		<property name="description" value="Ecriture ESUP SGC"/>
</bean>
 
 

Voir la documentation avancée pour l'ajout d'application Desfire sur la carte.

Configuration Desfire avancée

applicationContext-security.xml

Dans le fichier applicationContext-security.xml il faut modifier le mapping des groupes pour l’attribution des rôles Admin et Supervisor en precisant le cn des groupes concernés :

<beans:bean id="authUserDetailsService" class="org.esupportail.nfctag.security.ShibAuthenticatedUserDetailsService">
 <beans:property name="mappingGroupesRoles">
  <beans:map>
   <beans:entry key="cn=for.esup-nfc-tag.admin,ou=groups,dc=univ-ville,dc=fr" value="ROLE_ADMIN" />
   <beans:entry key="cn=for.esup-nfc-tag.supervisor,ou=groups,dc=univ-ville,dc=fr" value="ROLE_SUPERVISOR" />
  </beans:map>
 </beans:property>
</beans:bean>
 

Configuration de l'application dans l'IHM

ESUP-NFC-TAG est multi-service. Il faut donc déclarer les applications, auxquelles il peut s’adresser, au niveau de l’IHM.

Dans la section « Application » → « +Ajouter une application »

On retrouve les éléments configurés dans applicationContext-custom.xml. Pour l’encodage des cartes par le SGC, nous allons créer une application nommée "Ecriture SGC" avec les paramètres suivants:

  • Nom : « Ecriture SGC »

  • Configuration NFC : « Ecriture ESUP SGC » (spécifié dans applicationContext-desfire.xml)

  • Application externe : « Web Service Write Esup SGC »

  • Contrôle du tagId : « via Esup SGC »

  • Valeur par défaut pour la validation sans confirmation : true

Cette application étant dédiée au client ESUP-SGC-CLIENT il n'est pas souhaitable de la voir apparaitre dans les applications ESUP-NFC-TAG DROID et DESKTOP. Pour cela il faut la modifier pour décocher la case "Active" :

Voir aussi la configuration des applications optionnelles : Applications ESUP-SGC / ESUP-NFC-TAG optionnelles

  • Aucune étiquette