Sie haben beim initialen Einrichten des IdPs eine Minimal-Konfiguration für Attributdefinitionen und -freigaben heruntergeladen. Nachdem Ihr IdP in die Produktivföderation aufgenommen wurde, müssen Sie nun für die echten SPs, auf die Ihre User*innen zugreifen sollen, Attribut-Freigaben konfigurieren. Hier und auf den folgenden Unterseiten finden Sie einige Beispiele zu den üblichsten Konfigurationen in der DFN-AAI.
Ab Shibboleth IdP 4.x werden bestimmte Zusatzinformationen zu den definierten Attributen in der Attribute Registry vorgenommen. Das sind die Konfigurationsdateien unterhalb von ./conf/attributes
. Alle Standardattribute sind dort bereits vorkonfiguriert. Pro Schema finden Sie eine .xml
-Datei in dem Ordner, z.B. ./conf/attributes/eduPerson.xml
.
.xml
-Datei in ./conf/attributes
und binden sie in ./conf/attributes/default-rules.xml
ein..properties
-Datei in ./conf/attributes/custom
.Das dfnEduPerson-Schema wird nicht mitgeliefert, da es DFN-spezifische Attribute enthält. Wenn Sie es benötigen, gehen Sie so vor:
./conf/attributes
../conf/attributes/default-rules.xml
und importieren Sie dort das neue Schema:<import resource="dfnEduPerson.xml" />
Auch die veraltete, aber noch viel benutzte eduPersonTargetedID ist nicht vordefiniert. Da viele SPs sie noch verlangen, sollten Sie sie hinterlegen. Wir haben eine kleine Sammlung verbreiteter, nicht mitgelieferter Attribute für den IdP 4.x zusammengestellt. Sie enthält neben den Transcoding Properties für eduPersonTargetedID
auch gängige Attribute aus dem SCHAC-Schema (z.B. schacPersonalUniqueCode
) und bwidmOrgId
. Laden Sie sich die Datei dfnMisc.xml herunter und legen Sie sie nach ./conf/attributes/dfnMisc.xml
. Referenzieren Sie sie in ./conf/attributes/default-rules.xml
.
Siehe hierzu die Hinweise und Konfigurationsbeispiele zur Implementierung des REFEDS Assurance Frameworks für IdPs.
In den Dateien der Attribute Registry sehen Sie bei jedem Attribut zwei Transcoder, einen für SAML1 und einen für SAML2:
<prop key="transcoder">SAML2StringTranscoder SAML1StringTranscoder</prop> <prop key="saml2.name">urn:oid:1.3.6.1.4.1.5923.1.1.1.1</prop> <prop key="saml1.name">urn:mace:dir:attribute-def:eduPersonAffiliation</prop>
SAML1 ist veraltet. In der DFN-AAI gibt es keine Service Provider mehr, die ausschließlich SAML1 können. Daher kann der SAML1 Transcoder überall herausgenommen werden:
<prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">urn:oid:1.3.6.1.4.1.5923.1.1.1.1</prop>
Die Minimal-Konfiguration enthält nur wenige Attribute. Welche weiteren Attributdefinitionen Sie einpflegen müssen, hängt davon ab, welche SPs Sie nutzen möchten und welche Attribute die von Ihrem IdP erwarten.
Beginnen Sie z.B. mit unserer Liste der Attribute, die jeder IdP bereitstellen können sollte, und definieren Sie sie in ./conf/attribute-resolver.xml
.
Wenn Sie Attribute aus Ihrem IdM holen, die genau die gleiche ID haben, die auch in der Attribute Registry definiert ist, können Sie diese Attribute direkt importieren, ohne für jedes eine <AttributeDefinition>
zu schreiben. Abschnitte wie „Ich definiere das Attribut mail
, indem ich das Attribut mail
aus dem LDAP hole und es - wie in der Registry angegeben - als mail
an SPs schicke“ sind nicht mehr nötig. Die zu importierenden Attribute werden unten in ./conf/attribute-resolver.xml
beim DataConnector mit der Direktive exportAttributes
definiert.
Ausnahme: Falls Attribute wie eduPersonScopedAffiliation
oder eduPersonPrincipalName
bereits mit Scope aus dem LDAP/AD kommen, dürfen diese nicht via exportAttributes
direkt an die Registry weitergereicht werden, sondern müssen über eine entsprechende <AttributeDefinition>
mit type=„Prescoped“
definiert werden.
<DataConnector id="myLDAP" xsi:type="LDAPDirectory" ldapURL="%{idp.attribute.resolver.LDAP.ldapURL}" baseDN="%{idp.attribute.resolver.LDAP.baseDN}" principal="%{idp.attribute.resolver.LDAP.bindDN}" principalCredential="%{idp.attribute.resolver.LDAP.bindDNCredential}" useStartTLS="%{idp.attribute.resolver.LDAP.useStartTLS:true}" connectTimeout="%{idp.attribute.resolver.LDAP.connectTimeout}" responseTimeout="%{idp.attribute.resolver.LDAP.responseTimeout}" exportAttributes="mail givenName sn displayName ou"> <!-- Um auch auf sog. operational attributes aus dem IdM zuzugreifen, ist die folgende Zeile nötig. --> <ReturnAttributes>* +</ReturnAttributes> <FilterTemplate> <![CDATA[ %{idp.attribute.resolver.LDAP.searchFilter} ]]> </FilterTemplate> <ConnectionPool minPoolSize="%{idp.pool.LDAP.minSize:3}" maxPoolSize="%{idp.pool.LDAP.maxSize:10}" blockWaitTime="%{idp.pool.LDAP.blockWaitTime:PT3S}" validatePeriodically="%{idp.pool.LDAP.validatePeriodically:true}" validateTimerPeriod="%{idp.pool.LDAP.validatePeriod:PT5M}" expirationTime="%{idp.pool.LDAP.idleTime:PT10M}" /> </DataConnector>
idp-audit.log
pro SP, welche Attribute übertragen wurden.Siehe auch die Dokumentation zum Attributfilter im Shibboleth Wiki.
eduPersonScopedAffiliation
siehe das Beispiel für Verlagsanbieter <AttributeFilterPolicy id="anonoymous_access"> <PolicyRequirementRule xsi:type="EntityAttributeExactMatch" attributeName="http://macedir.org/entity-category" attributeValue="https://refeds.org/category/anonymous" /> <AttributeRule attributeID="schacHomeOrganization" permitAny="true" /> <AttributeRule attributeID="eduPersonScopedAffiliation" permitAny="true" /> </AttributeFilterPolicy>
Sie können Service Provider an den IdP anbinden, die nicht an der DFN-AAI teilnehmen. Dies bedeutet v.a. für Sie mehr Arbeit:
Wir kennen diese SPs nicht und können deren Support nicht übernehmen. Erfragen Sie, ob der SP standardkonformes SAML2 spricht, so dass Ihr IdP die erforderlichen Attribute auch liefern kann. (Oder definieren Sie in Ihrem IdP ggf. die selbst ausgedachten Attribute einzelner Anbieter…)
Der Metadatenaustausch kann so erfolgen: Sie erhalten i.d.R. eine Möglichkeit, die Metadaten Ihres IdP per Formular o.ä. an den SP zu übermitteln. Die aktuellen Metadaten Ihres IdP können Sie sich aus der Metadatenverwaltung holen, wie unter Troubleshooting beschrieben.
Achtung: Jede Metadatenänderung müssen Sie dort von Hand nachziehen, z.B. erneuerte IdP-Zertifikate für die SAML-basierte Kommunikation.
Für die umgekehrte Richtung, also die Bekanntmachung der SP-Metadaten im IdP gehen Sie so vor: Sie erhalten die SP-Metadaten vom Anbieter. Damit legen Sie einen neuen SP in ihrem Metadatenzugang an. Nehmen Sie ihn nur in den lokalen Metadatensatz Ihrer Heimateinrichtung auf, der ja meist im IdP eh bereits konfiguriert ist. Auch hier müssen Sie Metadatenaktualisierungen auf Seite des SPs selbst einpflegen.