Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: simpler definition, new/cleaner 3.3 syntax

...

Code Block
languagehtml/xml
<resolver:AttributeDefinition<AttributeDefinition id="matrikelMappingmatrikel" xsi:type="Mapped"
    xmlns="urn:mace:shibboleth:2.0:resolver:ad" dependencyOnly="true" sourceAttributeID="uid">
    <resolver:Dependency<Dependency ref="myLDAP" />
    <ValueMap>
        <ReturnValue>urn:schac:personalUniqueCode:int:studentID:AT:$1</ReturnValue>
        <SourceValue>^x([0-9]{7,})$</SourceValue>
    </ValueMap>
</resolver:AttributeDefinition>
 
<resolver:AttributeDefinition id="matrikel" xsi:type="Simple"
    xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="matrikelMapping">
    <resolver:Dependency ref="matrikelMapping" />
    <resolver:AttributeEncoder  <AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
              name="urn:oid:1.3.6.1.4.1.25178.1.2.14" friendlyName="schacPersonalUniqueCode" encodeType="false" />
</resolver: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.

Eine passende Regel, dieses Attribut (bzw. nur syntaktisch korrekte 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 so aussehen. (Das Beispiel verwendet die etwas entschlackte Syntax ab IDPv3.2.)

Code Block
languagehtml/xml
<AttributeFilterPolicy id="Matrikelnummer">
    <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://idp.zid.tuwien.ac.at/studentsoftware" />
        </Rule>
        <Rule xsi:type="Value" attributeID="eduPersonScopedAffiliation" value="student" />
    </PolicyRequirementRule>
    <AttributeRule attributeID="matrikel">
        <PermitValueRule xsi:type="ValueRegex" regex="^urn:schac:personalUniqueCode:int:studentID:AT:[0-9]{7,}$" />
    </AttributeRule>
</AttributeFilterPolicy>