Dies ist eine alte Version des Dokuments!


Persistent ID als Attribut: eduPersonTargetedID

Etliche Service Provider sind aus historischen Gründen nicht in der Lage, einen Persistent Name Identifier zu verarbeiten. Sie erwarten den entsprechenden Wert in Form des veralteten Attributs eduPersonTargetedID.

So konfigurieren Sie den IdP, dass er die persistentId aus der Datenbank holt. Die Freigabe erfolgt analog zu allen anderen Attributen in ./conf/attribute-filter.xml.

./conf/attribute-resolver.xml
<!-- eduPersonTargetedID aus der SAML2NameID bilden -->
<AttributeDefinition id="eduPersonTargetedID" xsi:type="SAML2NameID" nameIdFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">
    <InputDataConnector ref="myStoredId" attributeNames="persistentId"/>
    <DisplayName xml:lang="en">Targeted ID (pseudonyme Kennung)</DisplayName>
    <DisplayName xml:lang="de">Targeted ID (pseudonymous ID)</DisplayName>
    <DisplayDescription xml:lang="en">Targeted ID: A unique, pseudonymous identifier for a person, different for each service provider.</DisplayDescription>
    <DisplayDescription xml:lang="de">Targeted ID: Eindeutige, pseudonyme Nutzerkennung, unterschiedlich pro Service Provider.</DisplayDescription>
    <AttributeEncoder xsi:type="SAML2XMLObject" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" friendlyName="eduPersonTargetedID" />
</AttributeDefinition>
 
<!-- ========================================== -->
<!--      Data Connectors                       -->
<!-- ========================================== -->
 
<DataConnector id="myStoredId"
    xsi:type="StoredId"
    generatedAttributeID="persistentId"
    salt="%{idp.persistentId.salt}">
    <InputAttributeDefinition ref="%{idp.persistentId.sourceAttribute}" />
    <BeanManagedConnection>shibboleth.MySQLDataSource</BeanManagedConnection>
</DataConnector>

Bei Shibboleth IdP 4.x-Neuinstallationen sieht der Attribute Resolver etwas übersichtlicher aus:

./conf/attribute-resolver.xml
<AttributeDefinition id="eduPersonTargetedID" xsi:type="SAML2NameID" nameIdFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">
    <InputDataConnector ref="myStoredId" attributeNames="persistentId"/>
</AttributeDefinition>
 
<!-- ========================================== -->
<!--      Data Connectors                       -->
<!-- ========================================== -->    
 
<DataConnector id="myStoredId"
    xsi:type="StoredId"
    generatedAttributeID="persistentId"
    salt="%{idp.persistentId.salt}">
    <InputAttributeDefinition ref="%{idp.persistentId.sourceAttribute}" />
    <BeanManagedConnection>shibboleth.MySQLDataSource</BeanManagedConnection>
</DataConnector>

Dafür müssen Sie die UI-Informationen und Transcoding-Regeln für das veraltete Attribut manuell in die Attribute Registry einpflegen. Legen Sie im Ordner ./conf/attributes/custom eine neue Datei für das Attribut an und befüllen Sie sie wie folgt in der Syntax einer .properties-Datei:

./conf/attributes/custom/eduperson_targetedid.properties
id=eduPersonTargetedID
transcoder=SAML2XMLObjectTranscoder
saml2.name=urn:oid:1.3.6.1.4.1.5923.1.1.1.10
displayName.de=Targeted ID (pseudonyme Kennung)
displayName.en=Targeted ID (pseudonymous ID)
description.de=Targeted ID: Eindeutige, pseudonyme Nutzerkennung, unterschiedlich pro Service Provider
description.en=Targeted ID: A unique, pseudonymous identifier for a person, different for each service provider
  • Zuletzt geändert: vor 4 Jahren