Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: amend with ESI exampe NOT from matrikelnr (for lack of a better place)

...

Info
iconfalse
titleBeispiel Attributwert, für Matrikelnummer 1234567
urn:schac:personalUniqueCode:int:esi:at:01234567

Shibboleth IDP

Erzeugen

Nachdem dieses Attribut nicht in genau in Form des ESI bereits irgendwo gespeichert sein wird, folgt ein Beispiel, wie dynamisch aus dem Attribut uid (das aus dem DataConnector mit der id="myLDAP" kommt) die Matrikelnummer extrahiert und in die benötigte Form gebracht werden kann. In diesem fiktiven Beispiel enthält uid eine lokale UserID, die für Studierende die Form "x<MATRIKELNR>" hat. Hat die UserID nicht die erwartete Form, bleibt das Attribut leer (und wird vom IDP später entfernt):

...

Code Block
languagehtml/xml
<AttributeDefinition id="schacPersonalUniqueCode" xsi:type="Template">
    <InputDataConnector ref="myLDAP" attributeNames="uid" />
    <DisplayName xml:lang="de">Europäische Studierendenkennung (ESI)</DisplayName>
    <DisplayName xml:lang="en">European Student Identifier (ESI)</DisplayName>
    <Template>urn:schac:personalUniqueCode:int:esi:at:${uid}</Template>
    <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.14" friendlyName="schacPersonalUniqueCode" encodeType="false" />
</AttributeDefinition>

Keine Matrikelnummer

Institutionen, die keine Matrikelnummern ausgeben, erzeugen den European Student Identifier übrigens weitgehend analog, nur eben aus einer lokal eindeutigen Kennung (im Beispiel unten wieder aus dem uid-Attribut) sowie der kanonischen DNS-Domain ("scope") der Institution:

Code Block
languagehtml/xml
<AttributeDefinition id="schacPersonalUniqueCode" xsi:type="Template">
    <InputDataConnector ref="myLDAP" attributeNames="uid" />
    <DisplayName xml:lang="de">Europäische Studierendenkennung (ESI)</DisplayName>
    <DisplayName xml:lang="en">European Student Identifier (ESI)</DisplayName>
    <Template>urn:schac:personalUniqueCode:int:esi:%{idp.scope}:${uid}</Template>
    <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.14" friendlyName="schacPersonalUniqueCode" encodeType="false" />
</AttributeDefinition>

Freigeben

Eine passende Policy für den attribute-filter.xml, dieses Attribut (bzw. nur die ESI-spezifischen Werte davon) nur an aufgezählte Service Provider weiterzugeben (hier: den eduID.at Demo SP und den Erasmus+ Proxy), und nur, wenn das Attribut eduPersonAffiliation den Wert student hat (also nur für Studierende), könnte beim Shibboleth IDP dann so aussehen:

...