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.

...

  • p:formatBeforeWrite précise si la carte doit être formatée avant l'encodage
  • p:key keyStart spécifie la PICC Master Key qui sera appliquée à la fin de l'encodage
  • p:keyType le type de clé (DES ou ASE)
  • p:keyVersion la version de la clé

...

  • utilisée pour s'authentifier sur la carte avant l'encodage
  • p:keyTypeStart est le type de la clé (DES ou AES) pré-positionnée sur la carte avant l'encodage
  • p:keyFinish spécifie la PICC Master Key qui sera positionnée sur la carte après l'encodage (si pas de changement de clé, il faut saisir la même valeur de pour p:keyStart)
  • p:keyTypeFinish est le type de la clé (DES ou AES) positionnée sur la carte après encodage (si pas de changement de clé, il faut saisir la même valeur de pour p:keyTypeStart)
  • p:keyVersionFinish est le numéro de version attribué à la nouvelle clé en fin d'encodage (n'a aucune incidence sur le fonctionnement de la carte mais peut permettre de s'assurer que l'encodage est bien complet)

Info

Une clé de type p:keyStart

...

="0000000000000000" p:

...

keyTypeStart="DES"

...

  est une clé PICC par défaut pour une carte Desfire. Avec cette clé la carte reste formatable facilement à l'aide d'un smartphone par exemple.

Bloc de code
languagexml
<bean id="desfireComueTagEsupSgc" class="org.esupportail.nfctag.beans.DesfireTag" p:formatBeforeWrite="false" p:keyStart="0000000000000000" p:keyTypeStart="DES" p:keyVersionStart="00":keyFinish="0000000000000000" p:keyTypeFinish="DES" p:keyVersionFinish="00">
 <property name="applications">
  <util:list>
   <bean class="org.esupportail.nfctag.beans.DesfireApplication" p:desfireAppId="AB0123" p:amks="0B" p:nok="84">
    <property name="files">
     <util:list>
      <bean class="org.esupportail.nfctag.beans.DesfireFile" p:fileNumber="00" p:communicationSettings="03" p:accessRights="1223" p:fileSize="1F0000" p:tagWriteApi-ref="idp2sTagWriteEsupSgc"/>
     </util:list>
    </property>
    <property name="keys">
     <util:list>
      <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="00" p:keyVer="01" p:type="AES" p:key="00000000000000000000000000000000"/>
      <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="01" p:keyVer="01" p:type="AES" p:key="00000000000000000000000000000000"/>
      <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="02" p:keyVer="01" p:type="AES" p:key="00000000000000000000000000000000"/>
      <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="03" p:keyVer="01" p:type="AES" p:key="00000000000000000000000000000000"/>
     </util:list>
    </property>
   </bean>
  </util:list>
 </property>
</bean>

...

Bloc de code
languagexml
<bean class="org.esupportail.nfctag.beans.DesfireApplication" p:desfireAppId="AB0123" p:amks="0B" p:nok="84">
 <property name="files">
  <util:list>
   <bean class="org.esupportail.nfctag.beans.DesfireFile" p:fileNumber="00" p:communicationSettings="03" p:accessRights="1223" p:fileSize="1F0000" p:tagWriteApi-ref="idp2sTagWriteEsupSgc"/>
  </util:list>
 </property>
 <property name="keys">
  <util:list>
   <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="00" p:keyVer="01" p:type="AES" p:key="00000000000000000000000000000000"/>
   <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="01" p:keyVer="01" p:type="AES" p:key="00000000000000000000000000000000"/>
   <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="02" p:keyVer="01" p:type="AES" p:key="00000000000000000000000000000000"/>
   <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="03" p:keyVer="01" p:type="AES" p:key="00000000000000000000000000000000"/>
  </util:list>
 </property>
</bean>

 

Dans cet exemple, l'application a pour identifiant AB0123identifiant p:desfireAppId="AB0123", elle est configurée avec p:nok  à 84 qui indique 4 clés AES  

...

Dans notre cas l'application possède un fichier numéro "00" et 4 clés de type AES.(p:fileNumber="00")

Le ficher est paramétré avec les autorisations suivantes suivantes p:accessRights="1223" :

  • clé 1 pour la lecture

  • clé 2 pour l’écriture

  • clé 2 pour lecture et écriture

  • clé 3 pour le changement d’autorisations

La clé 0 est la Master Key de l'application, dans l’exemple toutes les clés sont à zéro et insérées en tant que version "01"." (p:keyVer="01")

Info

Il n'est plus nécessaire de préciser le type de clé au niveau des beans DesfireKey, celui-ci est déterminé par la valeur de l'attribut p:nok de la DesfireApplication :

  • le premier chiffre représente de type (0 : DES, 8 : AES)
  • le deuxième est le nombre de clés

L'attribut p:type doit etre supprimé au niveau des clés

La valeur à écrire dans le fichier est définie par p:tagWriteApi-ref

...

applicationContext-custom.xml

Ajout d'une configuration NFC pour une autentification en DESFIRE (NfcAuthConfig)

 

Bloc de code
languagexml
<bean id="desfireAuthSiServices" class="org.esupportail.nfctag.service.api.impl.DesfireReadConfig">
	<property name="desfireKeyNumber" value="01"/>
	<property name="desfireFileNumber" value="00"/>
	<property name="desfireAppId" value="AB0123"/>
	<property name="desfireAppName" value="si-service"/>
	<property name="desfireFileSize" value="1F0000"/>
	<property name="desfireFileOffset" value="000000"/>
	<property name="desfireKey" value="00000000000000000000000000000000"/> 
	<property name="description" value="Authentification SI Service COMUE"/>
</bean>

...

Avec cet exemple le client ira lire le fichier desfireFileNumber "00" de l'application desfire desfireAppId : AB0123 présente sur la carte à l'aide de la clé desfireKey : 00000000000000000000000000000000.
Le desfireFileOffset permet de préciser à partir de quel octet on démarre la lecture. 

 

Info

L'attribut desfireFileSize n'est plus nécessaire, il doit etre supprimé.

 

Esup-nfc-tag-server enverra le contenu du fichier desfire ainsi que le desfireAppName : si-service (dans notre cas) à l'application TagIdCheck paramétrée dans esup-nfc-tag-server. Je web-service tagIdCheck associé à cette application doit contôler si une carte correspond effectivement à l'identifiant contenu dans le fichier defire et doit renvoyer un tagLog (voir Implémentation du Web Service TagIdCheck)

Ajout d'une application d' affichage du verso de la carte (AppliExtApi)

 

Bloc de code
languagexml
    <bean id="esupSgcVersoExtApi" 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/locationsVerso"/>
    	<property name="displayUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/verso"/>
    	<property name="description" value="Web Service Verso"/>
    </bean>

La nouvelle propriété displayUrl permet de définir l'emplacement des données qui seront affichées suite à la validation d'un tag. Esup-sgc peut retourner le verso en fonction du csn via cette adresse https://esup-sgc-test.univ-ville.fr/wsrest/nfc/verso.