Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagehtml/xml
<AttributeDefinition id="matrikelschacPersonalUniqueCode" xsi:type="Mapped">
    <InputDataConnector ref="myLDAP" attributeNames="uid" />
    <DisplayName xml:lang="de">Europäische Studierendenkennung (ESI)</DisplayName>
    <DisplayName xml:lang="en">European Student Identifier (ESI)</DisplayName>
    <ValueMap>
        <ReturnValue>urn:schac:personalUniqueCode:int:esi:at:$1</ReturnValue>
        <SourceValue>^x([0-9]{8,})$</SourceValue>
    </ValueMap>
    <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.14" friendlyName="schacPersonalUniqueCode" encodeType="false" />
</AttributeDefinition>

...

Info
iconfalse

Statt uid kann hier also jedes existierende Attribut eingesetzt werden, das bereits eine Form der Matrikelnummer enthält, etwa Emailadresse (mail) oder eduPersonPrincipalName.

Wenn keine Umformung des Quelldatums benötigt wird, tut's auch eine Template-Definition:

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>

Eine passende Policy für den attribute-filter.xmlEine passende Regel, dieses Attribut (bzw. nur syntaktisch korrekte die ESI-spezifischen Werte davon) nur an aufgezählte Service Provider weiterzugeben, und nur, wenn das Attribut eduPersonAffiliation den Wert student hat (also nur für Studierende), könnte beim Shibboleth IDP dann so aussehen:

Code Block
languagehtml/xml
<AttributeFilterPolicy id="MatrikelnummerESItoSelectedServices">
    <PolicyRequirementRule xsi:type="AND">
        <Rule xsi:type="OR">
            <Rule xsi:type="Requester" value="https://test-sp.aco.net/shibboleth" />
            <Rule xsi:type="Requester" value="https://proxy.prod.erasmus.eduteams.org/metadata/backend.xml" />
        </Rule>
        <Rule xsi:type="Value" attributeID="eduPersonScopedAffiliation" value="student" />
    </PolicyRequirementRule>
    <AttributeRule attributeID="matrikelschacPersonalUniqueCode">
        <PermitValueRule xsi:type="ValueRegex" regex="^urn:schac:personalUniqueCode:int:esi:at:[0-9]{8,}$" />
    </AttributeRule>
</AttributeFilterPolicy>

...