Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision |
de:shibidp3attributes-uniqueid [2020/04/16 14:01] – Silke Meyer | de:shibidp:config-attributes-edupersonuniqueid [2021/05/03 15:09] – Silke Meyer |
---|
===== Eindeutiger, pseudonymer Identifier - eduPersonUniqueId ===== | ====== eduPersonUniqueId ====== |
| |
Im Kontext von Forschungsprojekten/-Infrastrukturen und Fachinformationsdiensten müssen häufig dienstspezifische Zugangsberechtigungen für Einzelpersonen oder Personengruppen vergeben werden. Solche Informationen können und sollen üblicherweise nicht im Identity Management System der jeweiligen Heimateinrichtung gepflegt werden. In diesen Fällen verwaltet man eine weitere Attributquelle, die //zusätzlich// zum IdP bei der Autorisierung an SP befragt wird: eine Attribute Authority. | Die ''eduPersonUniqueId'' ist ein eindeutiger, pseudonymer Identifier (siehe die [[http://macedir.org/specs/internet2-mace-dir-eduperson-201310.html#eduPersonUniqueId|Spezifikation]]). |
| |
Attribute Authorities verwalten community- bzw. projektspezifische Attribute. Über einen global gültigen, eindeutigen Identifier findet ein Mapping statt zwischen diesen Attribute und dem Account der bei einer Heimateinrichtung angemeldeten Person. Dazu können z.B. ''eduPersonPrincipalName'', ''mail'' oder [[http://macedir.org/specs/internet2-mace-dir-eduperson-201310.html#eduPersonUniqueId|''eduPersonUniqueId'']] verwendet werden. | Ein Einsatzszenario für die eduPersonUniqueId ist das Mapping zwischen IdPs und Attribute Authorities. |
| |
Die ''eduPersonUniqueId'' hat den Vorteil, dass es sich um einen pseudonymen Identifier handelt: Von SP-Seite aus kann nicht auf die dahinter liegende Identität rückgeschlossen werden. | <callout color="#ff9900" title="Attribute Authority?"> |
| Im Kontext von Forschungsprojekten/-Infrastrukturen und Fachinformationsdiensten müssen häufig dienstspezifische Zugangsberechtigungen für Einzelpersonen oder einrichtungsübergreifende Personengruppen vergeben werden. Solche Informationen werden i.d.R. nicht in den IdMs der beteiligten Heimateinrichtungen gepflegt, sondern in eine weiteren Attributquelle: einer Attribute Authority. Attribute Authorities werden meist von den Projekten selbst betrieben. Sie verwalten nur community- bzw. projektspezifische Attribute und werden bei der Autorisierung zusätzlich zum IdP befragt. |
| </callout> |
| |
| Die Attribute, die eine Attribut Authority verwaltet, müssen über einen global gültigen, eindeutigen Identifier auf die Accounts der Heimateinrichtungen gemappt werden. Dazu können z.B. ''eduPersonPrincipalName'', ''mail'' oder [[..:start|eduPersonUniqueId]] verwendet werden. |
| |
| Die ''eduPersonUniqueId'' hat den Vorteil, dass sie pseudonym ist: Von SP-Seite aus kann nicht auf die dahinter liegende Identität rückgeschlossen werden. |
| |
| ===== Upgegradeter IdP 4.x (ohne Attribute Registry) ===== |
<file xml /opt/shibboleth-idp/conf/attribute-resolver.xml> | <file xml /opt/shibboleth-idp/conf/attribute-resolver.xml> |
<AttributeDefinition xsi:type="ScriptedAttribute" id="eduPersonUniqueId"> | <AttributeDefinition xsi:type="ScriptedAttribute" id="eduPersonUniqueId"> |
<AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.13" friendlyName="eduPersonUniqueId" /> | <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.13" friendlyName="eduPersonUniqueId" /> |
<Script><![CDATA[ | <Script><![CDATA[ |
// Java 7: | |
//importPackage(Packages.org.apache.commons.codec.digest); | |
// Java 8: | |
DigestUtils = Java.type("org.apache.commons.codec.digest.DigestUtils"); | DigestUtils = Java.type("org.apache.commons.codec.digest.DigestUtils"); |
| |
// unique value erzeugen | // unique value erzeugen |
uniqueValue = uid.getValues().get(0) + "SALT_MIN_48_CHARS"; | uniqueValue = uid.getValues().get(0) + "SALT_MIN_48_CHARS"; |
| |
// md5 value erzeugen | // md5 value erzeugen |
localpart = DigestUtils.md5Hex(uniqueValue); | localpart = DigestUtils.md5Hex(uniqueValue); |
| // Scope anhängen |
// Scope dazu | eduPersonUniqueId.getValues().add(localpart + "@%{idp.scope}"); |
| ]]> |
| </Script> |
| </AttributeDefinition> |
| </file> |
| |
| ===== Neu installierter IdP 4.x (mit Attribute Registry) ===== |
| |
| <file xml /opt/shibboleth-idp/conf/attribute-resolver.xml> |
| <AttributeDefinition xsi:type="ScriptedAttribute" id="eduPersonUniqueId"> |
| <InputAttributeDefinition ref="uid" /> |
| <Script><![CDATA[ |
| DigestUtils = Java.type("org.apache.commons.codec.digest.DigestUtils"); |
| // unique value erzeugen |
| uniqueValue = uid.getValues().get(0) + "SALT_MIN_48_CHARS"; |
| // md5 value erzeugen |
| localpart = DigestUtils.md5Hex(uniqueValue); |
| // Scope anhängen |
eduPersonUniqueId.getValues().add(localpart + "@%{idp.scope}"); | eduPersonUniqueId.getValues().add(localpart + "@%{idp.scope}"); |
]]> | ]]> |
</file> | </file> |
| |
{{tag>idp3}} | {{tag>idp4}} |