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.

Esup-nfc-tag-server permettant permet d'utiliser comme lecteur/borne de badge NFC :

...

Il propose une architecture standardisée et connectée autour du badgeage d'une carte présentant un identifiant (CSN ou identifiant codé en Desfire AES) correspondant à une carte valide d'un individu connu du système d'information.

L'application EsupNfcTagServer, elle Esup-nfc-tag-server est développée en Spring (ROO) et tourne sur Tomcat.

Sommaire

Installation

Pré-requis

...

  • Git

Configuration Apache Shibboleth

L'authentification repose sur Shibboleth. Apache doit être configuré pour faire du mod_shib.

...

Bloc de code
languagexml
<Location /manager>
AuthType shibboleth
ShibRequestSetting requireSession 1
require shib-session
ShibUseHeaders On
</Location>
<Location /nfc>
AuthType shibboleth
ShibRequestSetting requireSession 1
require shib-session
ShibUseHeaders On
</Location>

 

Configuration PostgreSQL

  • pg_hba.conf : ajout de
Bloc de code
languagebash
host all all 127.0.0.1/32 password

...

Bloc de code
languagebash
create database esupnfctag;
create USER esupnfctag with password 'esup';
grant ALL ON DATABASE esupnfctag to esupnfctag;

 

Paramétrage mémoire JVM :

Pensez à paramétrer les espaces mémoire JVM :

...

Bloc de code
languagebash
export MAVEN_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m"

Sources

Bloc de code
languagebash
git clone https://github.com/EsupPortail/esup-nfc-tag-server

Configurations

Au niveau de l'application, les fichiers de configuration à modifier sont les suivants : 

...

  • NfcAuthConfig
  • TagIdCheckApi
  • AppliExtApi

NfcAuthConfig

NfcAuthConfig correspond à la façon dont la carte est authentifiée/identifiée.

...

Les 2 autres services TagIdCheckApi et AppliExtApi sont indépendants quant à eux de EsupNfcTagDroid et de nouvelles implémentations de ces services peuvent être envisagées, même si le recours à leurs implémentations sous forme de Web Service REST doit être naturellement privilégiées.

TagIdCheckApi

TagIdCheckApi correspond à la façon dont on récupère l'identification d'un individu depuis un identifiant de carte (identifiant CSN ou issu de la lecture d'un fichier Desfire). Cette identification de l'individu consiste en son eppn, nom, prénom.

...

  • TagIdCheckRestWs : recupération des identifants via webservices REST

  • TagIdCheckSql : recupération des identifants via une base de données

  • TagIdCheckLdap : recupération des identifants via un annuaire LDAP

AppliExtApi

AppliExtApi correspond à l'application cible finale du badgeage :

...

 

Les services utilisables avec la carte peuvent être configurés dans le fichier src/main/resources/META-INF/spring/applicationContext-custom.xml.

Exemples

AppliExt

Bloc de code
<bean id="esupSgcExtApi" class="org.esupportail.nfctag.service.api.impl.AppliExtRestWs">
	<property name="isTagableUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/isTagable"/>
	<property name="validateTagUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/validateTag"/>
	<property name="locationsUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/getLocations"/>
<!--   	<property name="displayUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/verso"/> -->
	<property name="description" value="Web Service Carte Culture"/>
	<property name="backgroundColor" value="rgb(121, 119, 116)"/>
	<property name="header" value="https://carte-culture.univ-rouen.fr/resources/images/logo.jpg"/>
</bean>
  • isTagable : adresse du webservice permettant de contrôler si un badge est valide

  • validateTagUrl : adresse du webservice permettant de confirmer un badgeage

  • locationsUrl : adresse du webservice retournant la liste des « lieux » disponible pour l'utilisateur courant (utilisateur du lecteur de carte)

  • displayUrl (non requis) : adresse du webservice permettant l'affichage d'information après la validation du tag

TagIdCheck

Bloc de code
<bean id="tagIdCheckApiCarteCulture" class="org.esupportail.nfctag.service.api.impl.TagIdCheckRestWs">
	<property name="tagIdCheckUrl" value="https://carte-culture.univ-rouen.fr/nfc-ws/tagIdCheck"/>
	<property name="description" value="via Carte Culture"/>
</bean>

...

 
Pour tester l'application rapidement, ajouter ce tagIdCheck (qui retournera toujours un résultat):
 
Bloc de code
<bean id="tagIdCheckApiDummy" class="org.esupportail.nfctag.service.api.impl.TagIdCheckDummyWs">
	<property name="description" value="TagIdCheckDummy"/>
</bean>

 

AuthConfig

Pour une configuration d'authentification de carte par CSN :

...

Bloc de code
<bean id="desfireAuthConfig" class="org.esupportail.nfctag.service.api.impl.DesfireAuthConfig">
	<property name="desfireKeyNumber" value="01"/>
	<property name="desfireAppId" value="A123F1"/>
	<property name="desfireAppName" value="test-app"/>
	<property name="readFileCommand" value="90BD0000070000000016000000"/>
	<property name="desfireKey" value="/var/local/key"/>
	<property name="description" value="Authentification DESFIRE"/>
</bean>

Base de données

src/main/resources/META-INF/persistence.xml

...

database.username=esupnfctag

database.password=esup

Logs

logbacksrc/main/resources.xml

modifier le fichier pour paramétrer l'adresse mail d'envoi et le chemin du fichier de log

Obtention du war pour déploiement sur tomcat ou autre :

Bloc de code
languagebash
mvn clean package

Lancement de la mise à jour de la base de données

Bloc de code
languagebash
mvn exec:java -Dexec.args="dbupgrade"

 

Droits utilisateur

Le rôle ROLE_ADMIN est necessaire pour gérer l'application

Il est à paramétrer dans application-context-security.xml. L'authentification/identification se fait en shibboleth, le credentialsRequestHeader est à paramétrer en fonction de vos attributs shibboleth; ainsi que le authUserDetailsService.

Paramétrage via l'IHM

A cette adresse :
https://esupnfctag.univ-ville.fr/manager/applications
Ajouter une application. Pour un test, choisir Authentification CSN, Dummy !, le tagIdCheck qui convient (voir implémentation du tagIdCheck)

Test de l'application sans EsupNfcTagDroid et sans EsupNfcTagArduino

L'idée est de tester le process de badgeage en simulant les appels HTTP du badgeur EsupNfcTagDroid et/ou EsupNfcTagArduino

...