Иди на текст

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:<sHO>) i

Napomena: <sHO> predstavlja SCHAC code institucije koja je registrovana u Erazmus+ projektu.

Spisak institucija možete pronaći na linku https://wiki.geant.org/display/SM/ECHE+Whitelist (pretražite RS country code).

Npr. Ukoliko konfigurište IdP (Elektrotehnički fakultet) čiji je scope i domen etf.bg.ac.rs, vrednost atributa sHO je bg.ac.rs pošto je Elektrotehnički fakultet deo Univerziteta u Beogradu. Za određene institucije sa spiska ove vrednosti su identične, a posebnu pažnju treba da obrate fakulteti jer oni nisu direktno registrovani u Erazmus+ projektu.

  • 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 i dodavanja idp.scope vrednosti na početku <code> segmenta, koja je definisana prilikom instalacije Davaoca Identiteta.

2) kao hash vrednost uid atributa koji mora biti jedinstven na nivou institucije i ne sme se menjati i dodavanja idp.scope vrednosti na početku <code> segmenta, koja je definisana prilikom instalacije Davaoca Identiteta.

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

Izmeniti <sHO> vrednost prema uputstvu iznad.

<AttributeDefinition id="schacPersonalUniqueCode" xsi:type="ScriptedAttribute">
         <InputDataConnector ref="myLDAP" attributeNames="rsEduPersonLocalNumber" />
         <InputAttributeDefinition ref="eduPersonAffiliation" />
         <Script><![CDATA[
                if  (eduPersonAffiliation.getValues().get(0).contains("student") && (typeof rsEduPersonLocalNumber != "undefined" ) && rsEduPersonLocalNumber.getValues().size() > 0 )
                {var digestUtils = Java.type("org.apache.commons.codec.digest.DigestUtils");
                var saltedHash  = digestUtils.sha256Hex(rsEduPersonLocalNumber.getValues().get(0));
                schacPersonalUniqueCode.addValue("urn:schac:personalUniqueCode:int:esi:amres.ac.rs:%{idp.scope}" + saltedHash);};
         ]]></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

Izmeniti <sHO> vrednost prema uputstvu iznad.

<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:<sHO>:%{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