</Extensions>
</OutOfProcess>
Beispiel: DisplayName in Vorname und Nachname splitten
Dazu wird in der Datei /etc/shibboleth/shibboleth2.xml ein entsprechender Resolver konfiguriert:
<AttributeResolver type="Transform" source="displayName"> <Regex match="^(.+) (.+)$" dest="givenName">$1</Regex> <Regex match="^(.+) (.+)$" dest="sn">$2</Regex> <Regex match="^(.+) (.+)$">$2, $1</Regex> </AttributeResolver> |
Hier wird zum einen das Attribute "displayName" in zwei zusätzliche Attribute, namentlich "givenName" und "sn", aufgesplittet und zum anderen beim Displayname das Format "Nachname, Vorname" erzwungen. Dazu wird zunächst ein Regex definiert (hier: zwei RegEx Gruppen) und die Matches entsprechend extrahiert.
Beispiel: eduPersonTargetedID extrahieren
Ein anderes Beispiel ist das Attribut "eduPersonTargetedID":
<AttributeResolver type="Transform" source="persistent-id> <Regex match="^https://login.rz.rwth-aachen.de/shibboleth\!https://mein.sp/shibboleth\!(.+)$" dest="uniqueID">$1</Regex> </AttributeResolver> |
ODER
<AttributeResolver type="Transform" source="persistent-id"> <Regex match="^(.+)!(.+)!(.+)$" dest="uniqueID">$3</Regex> </AttributeResolver> |
Bei beiden Beispielen wird der 64 Zeichen String aus der eduPersonTargetedID extrahiert, um diese dann in das Feld "uniqueID" zu schreiben.
Bei dem unteren Beispiel wäre
Beispiel: Entfernen eines Teilstrings (hier orgID aus den eduPersonEntitlements wie z. B. dem Rollenstring)
Möchte man einen Teil des gelieferten Strings entfernen, weil die Anwendung damit nicht umgehen kann, so kann man das Attribut wie folgt transformieren:
<AttributeResolver type="Transform" source="eduPersonEntitlement"> <Regex match="^(.+):(orgid=.+)$" dest="entitlement">$1</Regex> </AttributeResolver> |
Hiermit wird in $1 das alte Entitlement in "entitlement" gespeichert. In $2 wäre die orgID verfügbar.