Etliche Service Provider sind immer noch nicht in der Lage, die SAML pairwise-id oder die persistentID 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 und als eduPersonTargetedID
herausgibt. Die Freigabe erfolgt analog zu allen anderen Attributen in ./conf/attribute-filter.xml
(siehe auch: Informationen zur Umstellung von eduPersonTargetedID und persistentID auf SAML pairwise-id).
<!-- 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 und 5.x Neuinstallationen sieht der Attribute Resolver etwas übersichtlicher aus:
<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. Wir empfehlen, dazu gleich eine ganze Sammlung von verbreiteten, nicht mitgelieferten Attributen einzubinden: Laden Sie die Datei dfnMisc.xml herunter und legen Sie sie nach ./conf/attribute/dfnMisc.xml
. Referenzieren Sie diese Datei in ./conf/attributes/default-rules.xml
.