Иди на текст

European Student Identifier (ESI)

Nakon što ste uspešno instalirali i konfigurisali Shibboleth IdP možete da prilagodite Vaš IdP ukoliko želite da učestvujete u Erazmus+ projektu.

ESI atribut je neophodan isključivo studentima u okviru Erazmus+ projekta! Samo insitutcija koja ima HEI (Higher Education Institution) ulogu u Erazmus+ projeku treba da implementrira ESI. Pojedinačni fakulteti nemaju tu ulogu.

O Erazmus+ projektu

Erazmus+ je jedan od najvećih programa EU koji finansira projekte mobilnosti i saradnje u oblasti obrazovanja, obuka mladih i sporta. Projekti mobilnosti u oblasti visokog obrazovanja podržavaju fizičku i kombinovanu (blended) mobilnost studenata i mobilnost zaposlenih na visokoškolskim ustanovama.

O ESI atributu

ESI (European Student Identifier) je poseban atribut koji se koristi u administraciji studenata u okviru evropske razmene studenata, npr. u okviru Erazmus+ projekata, kako bi se prvenstveno olakšao prenos ličnih podataka i studentskih dosijea između uključenih institucija. Sve HEI (Higher Education Institution) institucije će želeti da omoguće ESI atribut kako bi njihovi studenti mogli nesmetano da pristupe Erazmus+ servisima. ESI je jedinstven, trajan i stabilan identifikator. Moguće je da osoba ima više od jednog ESI atributa tokom studija, ali je znatno lakše pratiti samo jedan ESI atribut. ESI je predstavljen kao SAML schacPersonalUniqueCode atribut i njegova struktura u okviru Erazmus+ projekta će biti objašnjena u nastavku.

Format ESI atributa: urn:schac:personalUniqueCode:int:esi:<sHO>:<code>

ESI atribut se sastoji od:

  • prefiksa koji je jedinstven za HEI (urn:schac:personalUniqueCode:int:esi:%{idp.scope}) i

  • sufiksa koji je jedinstven unutar jedne ili više organizacija i ne sme se menjati (<code>)

U okviru iAMRES Federacije identiteta sufiks je se može kreirati na dva načina:

1) od rsEduPersonLocalNumber atributa čija je vrednost JOB (Jedinstveni Obrazovni Broj) studenta iz JISP sistema.

2) kao hash vrednost uid atributa koji mora biti jedinstven na nivou institucije i ne sme se menjati.

Struktura 1 ESI atributa

Sledeći kod definiše ESI atribut od rsEduPersonLocalNumber atributa i dodaje se u fajl /opt/shibboleth-idp/conf/attribute-resolver.xml

1
2
3
4
5
6
7
8
<AttributeDefinition id="schacPersonalUniqueCode" xsi:type="ScriptedAttribute">
     <InputDataConnector ref="myLDAP" attributeNames="rsEduPersonLocalNumber" />
     <InputAttributeDefinition ref="eduPersonAffiliation" />
     <Script><![CDATA[
        if  (eduPersonAffiliation.getValues().get(0).contains("student") )
        {schacPersonalUniqueCode.addValue("urn:schac:personalUniqueCode:int:esi:%{idp.scope}:" + rsEduPersonLocalNumber.getValues().get(0));};
     ]]></Script>
</AttributeDefinition>

Struktura 2 ESI atributa

Sledeći kod definiše ESI atribut od uid atributa i dodaje se u fajl /opt/shibboleth-idp/conf/attribute-resolver.xml

<AttributeDefinition id="schacPersonalUniqueCode" xsi:type="ScriptedAttribute">
     <InputDataConnector ref="myLDAP" attributeNames="%{idp.persistentId.sourceAttribute}" />
     <InputAttributeDefinition ref="eduPersonAffiliation" />
     <Script><![CDATA[
        if  (eduPersonAffiliation.getValues().get(0).contains("student") )
        {var digestUtils = Java.type("org.apache.commons.codec.digest.DigestUtils");
        var saltedHash  = digestUtils.sha256Hex(%{idp.persistentId.sourceAttribute}.getValues().get(0));
        schacPersonalUniqueCode.addValue("urn:schac:personalUniqueCode:int:esi:%{idp.scope}:" + saltedHash); };
     ]]></Script>
</AttributeDefinition>

Implementacija ESI atributa

Izmeniti fajl attribute-resolver.xml tako da se doda definicija za ESI atribut.

vim /opt/shibboleth-idp/conf/attribute-resolver.xml

Definiciju za ESI atribut atribut dodati iznad sekcije konektora, tj. iznad:

 <!-- ========================================== -->
 <!--      Data Connectors                       -->
 <!-- ========================================== -->

Restartovati Jetty proces:

systemctl restart jetty.service

Proveriti status Davaoca Identiteta:

bash /opt/shibboleth-idp/bin/status.sh