...
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. |
Si l'on détail, l'objet DesfireTag peut contenir une liste de DesfireApplication.
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
<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:key="00000000000000000000000000000000"/> <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="01" p:keyVer="01" p:key="00000000000000000000000000000000"/> <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="02" p:keyVer="01" p:key="00000000000000000000000000000000"/> <bean class="org.esupportail.nfctag.beans.DesfireKey" p:keyNo="03" p:keyVer="01" p:key="00000000000000000000000000000000"/> </util:list> </property> </bean> |
Dans cet exemple, l'application a pour identifiant p:desfireAppId="AB0123", elle est configurée avec p:nok à 84 qui indique 4 clés AES
...
Ajout d'une configuration NFC pour une authentification en DESFIRE (NfcAuthConfig)
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
<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="desfireFileOffset" value="000000"/> <property name="desfireKey" value="00000000000000000000000000000000"/> <property name="description" value="Authentification SI Service COMUE"/> </bean> |
Info |
---|
L'attribut desfireFileSize n'est plus nécessaire, il doit etre supprimé. |
Ajout d'une application d' affichage du verso de la carte (AppliExtApi)
Bloc de code | ||||
---|---|---|---|---|
| ||||
<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.
Mise à jour électronique de cartes
Mise à jour classique
Esup-nfc-tag, en plus d'encoder les cartes, notamment en lien avec esup-sgc, peut permettre de mettre à jour vos cartes Desfire : il peut vous permettre d'ajouter des applications Desfire sur des cartes qui ont été prélablement éditées, ce si vous avez connaissance de la master-key.
Dans l'exemple ci-dessous, on montrer comment on peut déclencher des ajouts d'applications en fonction de dernières dates d'encodage (ou mises à jour élecroniques) de cartes.
Ici les dates de mises à jour électroniques sont récupérées depuis esup-sgc et les données à écrire dans le fichier également.
Notez qu'on met que des clefs AES 0000... pour les clefs des applications. Et on a gardé la master-key par défaut des cartes Desfire : clef DES 0000....
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="idAcTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagWriteRestWs">
<property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/idFromCsn?csn={0}&appName=access-control"/>
</bean>
<bean id="csnDomainTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagWriteRestWs">
<property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/idFromCsn?csn={0}&appName=csn-domain"/>
</bean>
<bean id="dateLastUpdateEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagLastUpdateRestWs">
<property name="wsUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/lastUpdateFromCsn"/>
</bean>
<bean id="desfireComueTagUpdateEsupSgc" class="org.esupportail.nfctag.beans.DesfireTag" p:formatBeforeWrite="false" p:keyStart="0000000000000000" p:keyTypeStart="DES" p:keyFinish="0000000000000000" p:keyTypeFinish="DES" p:keyVersionFinish="00">
<property name="applications">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireApplication"
p:desfireAppId="F585C1" p:amks="0B" p:nok="85" p:updateDate="2016-03-01 12:00" p:tagLastUpdateRestWs-ref="dateLastUpdateEsupSgc">
<property name="files">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="00" p:communicationSettings="03" p:accessRights="1444" p:fileSize="1F0000" p:tagWriteApi-ref="idAcTagWriteEsupSgc"/>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="01" p:communicationSettings="03" p:accessRights="2444" p:fileSize="1F0000" p:tagWriteApi-ref="idAcTagWriteEsupSgc"/>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="03" p:communicationSettings="03" p:accessRights="3444" p:fileSize="1F0000" p:tagWriteApi-ref="idAcTagWriteEsupSgc"/>
</util:list>
</property>
<property name="keys">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="00" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="01" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="02" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="03" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="04" p:keyVer="01" p:key="00000000000000000000000000000000"/>
</util:list>
</property>
</bean>
<bean class="org.esupportail.nfctag.beans.DesfireApplication"
p:desfireAppId="F585C2" p:amks="0B" p:nok="86" p:updateDate="2018-04-24 12:00" p:tagLastUpdateRestWs-ref="dateLastUpdateEsupSgc">
<property name="files">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="00" p:communicationSettings="03" p:accessRights="1FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="01" p:communicationSettings="03" p:accessRights="2FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="02" p:communicationSettings="03" p:accessRights="3FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="03" p:communicationSettings="03" p:accessRights="4FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="04" p:communicationSettings="03" p:accessRights="5FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
</util:list>
</property>
<property name="keys">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="00" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="01" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="02" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="03" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="04" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="05" p:keyVer="01" p:key="00000000000000000000000000000000"/>
</util:list>
</property>
</bean>
</util:list>
</property>
</bean>
<bean id="desfireAuthConfigComueUpdateEsupSgc" class="org.esupportail.nfctag.service.api.impl.DesfireUpdateConfig">
<property name="desfireTag" ref="desfireComueTagUpdateEsupSgc" />
<property name="description" value="Mise à jour ESUP SGC"/>
</bean>
|
Mise à jour par essais successifs
Suivant l'historique de votre gestion de cartes (SGC différents, erreurs de la part de prestataires, misconfigurations, fusions d'établissements), vous pouvez potentiellement vous retrouver avec un parc de cartes en activité dans des états différents et sans même avoir la possibilité d'identifier l'état de chacune d'elles.
On a pu notamment être confrontés à des cartes qui avaient des master-key restées par défaut, ou qui ont pu être positionnées différemment d'une année sur l'autre ...
esup-nfc-tag est capable de proposer via une seule et unique salle de badgeage de faire des tentatives de mises à jour successives. Il joue ces tentatives les unes à la suite des autres, jusqu'à la dernière. Seul le "résultat" de la dernière tentative est pris en compte comme résultat global du badgeage.
Ces tentatives sont autant de configurations de DesfireTag que voulu.
Voici un exemple d'une mise à jour par essais successifs - on se place dans un cas où on a des cartes qui peuvent avoir ou non une master-key en AES à 11111111111111111111111111111111 ou 22222222222222222222222222222222.
On souhaite ajouter une application F22221 avec fichier vide et des clefs (2 clefs DES ici → 82). On souhaite positionner une master-key en AES à 33333333333333333333333333333333 et que ça badge valide ci effectivement on a finalement une master-key AES à 33333333333333333333333333333333
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="desfireComueTagUpdateEsupSgc" class="org.esupportail.nfctag.beans.DesfireTag" p:keyStart="11111111111111111111111111111111" p:keyTypeStart="AES" p:keyFinish="33333333333333333333333333333333" p:keyTypeFinish="AES" p:keyVersionFinish="00">
<property name="applications">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireApplication"
p:desfireAppId="F22221" p:amks="0B" p:nok="82">
<property name="files">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="00" p:communicationSettings="03" p:accessRights="1111" p:fileSize="1F0000"/>
</util:list>
</property>
<property name="keys">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="00" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="01" p:keyVer="01" p:key="00000000000000000000000000000000"/>
</util:list>
</property>
</bean>
</util:list>
</property>
</bean>
<bean id="desfireComueTagUpdateEsupSgc2" class="org.esupportail.nfctag.beans.DesfireTag" p:keyStart="22222222222222222222222222222222" p:keyTypeStart="AES" p:keyFinish="33333333333333333333333333333333" p:keyTypeFinish="AES" p:keyVersionFinish="00">
<property name="applications">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireApplication"
p:desfireAppId="F22221" p:amks="0B" p:nok="82">
<property name="files">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="00" p:communicationSettings="03" p:accessRights="1111" p:fileSize="1F0000"/>
</util:list>
</property>
<property name="keys">
<util:list>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="00" p:keyVer="01" p:key="00000000000000000000000000000000"/>
<bean class="org.esupportail.nfctag.beans.DesfireKey"
p:keyNo="01" p:keyVer="01" p:key="00000000000000000000000000000000"/>
</util:list>
</property>
</bean>
</util:list>
</property>
</bean>
<bean id="desfireComueTagUpdateEsupSgcFinal" class="org.esupportail.nfctag.beans.DesfireTag" p:keyStart="33333333333333333333333333333333" p:keyTypeStart="AES" p:keyFinish="33333333333333333333333333333333" p:keyTypeFinish="AES" p:keyVersionFinish="00"/>
<bean id="desfireAuthConfigComueUpdateEsupSgc" class="org.esupportail.nfctag.service.api.impl.DesfireUpdateConfig">
<property name="desfireTags">
<util:list>
<ref bean="desfireComueTagUpdateEsupSgc"/>
<ref bean="desfireComueTagUpdateEsupSgc2"/>
<ref bean="desfireComueTagUpdateEsupSgcFinal"/>
</util:list>
</property>
<property name="description" value="Mise à jour DES Test"/>
</bean> |