Page History
...
Gibt es Anwendungen, die studienrelevante Daten verwalten, brauchen dieseudiese u.U. zur eindeutigen Identifikation von Studierenden neben Vor- und Zuname (oder Geburtsdatum) auch die österreichweit eindeutige Matrikelnummer. Sofern keine solche technische technische Verbindung zu Systemen der (öffentlichen) Verwaltung besteht, sollte jedenfalls auf die Nutzung der Matrikelnummer als name identifier verzichtet werden – ebenso wie z.B. Sozialversicherungsnummern etc. nur innerhalb des für sie bestimmten Bereichs eingesetzt werden sollten.
Warning |
---|
Matrikelnummern sind kein guter keine guten Identifier für UserIDs, Email-Adressen oder anderen Gebrauch außerhalb der Verwaltung im engeren Sinn, da es durch (Korrektur von) Falsch- bzw. Neuvergabe Neuvergaben immer wieder zu Änderungen der Matrikelnummer von Matrikelnummern kommt, auch wenn diese eigentlich lebenslang unverändert und landesweit eindeutig sein sollte. |
...
sollten. |
Solche Änderung an Verwaltungsdaten sollten nach Möglichkeit auf Systeme der Lehrverwaltung beschränkt bleiben. Benutzt man die Matrikelnummer jedoch auch als Basis von UserIDs oder Email-Adressen, vervielfältigt man diese Änderungen in alle IT-Systeme, unter teils hohem Aufwand mit Datenmigration und BenutzerInnen-Support ("Ihre UserID, Email-Adresse, Homepage, eduroam-Identifier, etc. haben sich geändert, ...").
Implementierung eduID.at
Info | ||
---|---|---|
| ||
Zur Zeit verwendet in der eduID.at Federation nur ein SAML Service Provider die Matrikelnummer als Attribut (dies aber in der hier spezifizierten Form), "TU Wien Studentensoftware" (entityID: |
SCHAC personalUniqueCode
Im international eingesetzten SCHAC-Schema wurde das Attribut schacPersonalUniqueCode
definiert, das u.a. für die Kennzeichnung der studentID verwendet der studentID
verwendet wird. Die Werte dieses Attributs sind URNs, mit standardisierten Prefixen, siehe dazu die SCHAC-Spezifikation (bzw. RFC 6338 zum SCHAC URN Namespace). Sofern also die studentische Matrikelnummer als SAML-Attribut übertragen werden soll, empfielt ACOnet die Nutzung des Attributs schacPersonalUniqueCode
. Werte haben dabei die Form (im Beispiel z.B. für die Matrikelnummer 12345
): urn:schac:personalUniqueCode:int:studentID:AT:0012345
...
Shibboleth IDP
Nachdem dieses Attribut wohl kaum mit genau solchen Werten nicht in genau dieser Form bereits gespeichert sein wird, folgt ein Beispiel, wie dynamisch aus dem Attribut uid 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 enthält uid
eine lokale UserID, die für Studierende die Form x<MATRIKELNR> hatForm x<MATRIKELNR>
hat. Hat die UserID nicht die erwartete Form, bleibt das Attribut leer (und wird vom IdP IDP später gefiltert):
Code Block | ||
---|---|---|
| ||
<resolver:AttributeDefinition id="matrikelMapping" xsi:type="Mapped" xmlns="urn:mace:shibboleth:2.0:resolver:ad" dependencyOnly="true" sourceAttributeID="uid"> <resolver: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 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" /> </resolver:AttributeDefinition> |
Info | ||
---|---|---|
| ||
Statt uid kann Statt |
Eine passende Regel, dieses Attribut (bzw. nur syntaktisch korrekte Werte davon) nur an einen bestimmten Service Provider weiterzugeben, und nur, wenn wenn das Attribut eduPersonAffiliation
den Wert student
hat (also nur für Studierende), könnte beim Shibboleth IDP so aussehen:
...