Proces studentské mobility (Erasmus without Paper) vyžaduje globálně unikátní, persistentní, necílený, protokolově a datově neutrální evropský studentský identifikátor — ESI (European Student Identifier), který je v rámci SAML protokolu transportován právě v atributu schacPersonalUniqueCode.
Následující ukázka implementace využívá atributu uid, do kterého se ze systému STAG posílá OSOBIDNO
obsahující řetězec „st“ následovaný číslem uživatele, např. st123456, ze kterého se počáteční „st“ odebere a číslo se přidá na konec řetězce „urn:schac:personalUniqueCode:int:esi:example.org:“.
Ze vstupní hodnoty st123456
se tedy stane výstupní hodnota urn:schac:personalUniqueCode:int:esi:example.org:123456
.
Generování výstupní hodnoty atributu schacPersonalUniqueCode závisí i na atributu eduPersonAffiliation, který musí obsahovat klíčové slovo „student“.
<!-- schacPersonalUniqueCode --> <AttributeDefinition xsi:type="ScriptedAttribute" id="schacPersonalUniqueCode"> <InputDataConnector ref="myLDAP" attributeNames="uid" /> <InputAttributeDefinition ref="eduPersonAffiliation" /> <Script> <![CDATA[ if (typeof eduPersonAffiliation !== "undefined") { if (eduPersonAffiliation.getValues().contains("student")) { var value = ""; value = "urn:schac:personalUniqueCode:int:esi:example.org:" + uid.getValues().get(0).substring(2); schacPersonalUniqueCode.addValue( value ); } } ]]> </Script> <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.14" friendlyName="schacPersonalUniqueCode" encodeType="false"/> </AttributeDefinition>
urn:schac:personalUniqueCode:int:esi:example.org:123456