This is an old revision of the document!
This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)
Entity Attributes
Entity Attributes?
Entity Attributes are an extension of SAML2 metadata. They allow to group IdPs, Attribute Authorities or SPs. Systems with common features, e.g. participation in a common project, can be labeled with Entity Attributes in metadata. Those names and values can then be used for filtering: For IdPs this allows unified attribute release to a specific group of SPs and/or the activation of SAML profiles based on Entity Attributes. SPs can use Entity Attributes to filter metadata and thus identify the IdPs they want to give access.Degrees of Reliance of IdPs
This Entity Attribute announces the Degree of Reliance of an Identity Provider.
- dfn-aai-idp-metadata.xml
<md:EntityDescriptor entityID="https://idp.scc.kit.edu/idp/shibboleth"> <md:Extensions> <mdrpi:RegistrationInfo registrationAuthority="https://www.aai.dfn.de" registrationInstant="2010-03-15T10:30:11Z"> <mdrpi:RegistrationPolicy xml:lang="en">https://www.aai.dfn.de/en/join/</mdrpi:RegistrationPolicy> <mdrpi:RegistrationPolicy xml:lang="de">https://www.aai.dfn.de/teilnahme/</mdrpi:RegistrationPolicy> </mdrpi:RegistrationInfo> <mdattr:EntityAttributes> <!-- ... --> <saml:Attribute Name="http://aai.dfn.de/loa/degree-of-reliance" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>advanced</saml:AttributeValue> </saml:Attribute> </mdattr:EntityAttributes> </md:Extensions>
Sirtfi
Sirtfi
This funny word is pronounced “certify”. It stands for “Security Incident Response Trust Framework for Federated Identity”. This Entity Attribute declares the commitment and ability of an IdP, AA, or SP operator to follow the rules of the Sirtfi Framework on how to act in case of security incidents. Please see the REFEDS website and our documentation on Sirtfi compliance in DFN-AAI (in German).The Sirtfi Entity Attribute may only be used if the conditions put down in the framework are met. We check the following formal and technical criteria before unlocking the respective check box in the metadata administration tool:
- The metadata must contain a security contact. That address must not be a personal e-mail address of an individual.
- Sirtfi compliant institutions have to run the latest software version for their IdP or SP.
- The SSL configuration of the web server has to follow state-of-the-art best practice. We rely on the server test of ssllabs.com, grade A is required.
- dfn-aai-edugain+sp-metadata.xml
<md:EntityDescriptor entityID="https://cern.ch/login" xsi:schemaLocation="urn:oasis:names:tc:SAML:2.0:metadata saml-schema-metadata-2.0.xsd urn:mace:shibboleth:metadata:1.0 shibboleth-metadata-1.0.xsd http://www.w3.org/2000/09/xmldsig# xmldsig-core-schema.xsd"> <md:Extensions> <mdrpi:RegistrationInfo registrationAuthority="http://rr.aai.switch.ch/" registrationInstant="2014-07-29T13:17:52Z"> <mdrpi:RegistrationPolicy xml:lang="en">https://www.switch.ch/aai/federation/switchaai/metadata-registration-practice-statement-20110711.txt</mdrpi:RegistrationPolicy> </mdrpi:RegistrationInfo> <mdattr:EntityAttributes> <!-- ... --> <saml:Attribute Name="urn:oasis:names:tc:SAML:attribute:assurance-certification" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>https://refeds.org/sirtfi</saml:AttributeValue> </saml:Attribute> <!-- ... --> </mdattr:EntityAttributes> </md:Extensions>
Entity Categories
Eine Entity Category ist genau genommen auch ein Entity Attribut. Service Provider nutzen Entity Categories, um über die Metadaten zu kommunizieren, dass sie bestimmte Anforderungen stellen und/oder erfüllen. Ein SP kann beliebig viele Entity Categories setzen.
IdP-seitig können als “Gegenstücke” Entity Category Support-Attribute definiert werden. Damit signalisieren IdPs, dass sie für SPs der Entity Category eine Attributfreigabe erteilen. Zu diesem Themenkomplex siehe https://wiki.refeds.org/display/ENT/Entity-Categories+Home.
Internationale Entity Categories
Drei Entity Categories kommen international zum Einsatz. Um sie für Ihre Systeme in der DFN-AAI zu setzen, verwenden Sie die Metadatenverwaltung. Dort tauchen die Checkboxen allerdings erst auf, wenn Ihr System die jeweiligen technischen Bedingungen erfüllt.
GÉANT Data Protection Code of Conduct
Die Entity Category GÉANT Data Protection Code of Conduct for Service Providers in EU/EEA ist eine Selbstverpflichtungserklärung von Service Providern. Damit sagen Sie über sich aus, dass sie die über SAML2 übertragenen personenbezogenen Daten von Endnutzern entsprechend den geltenden Datenschutzrichtlinien behandeln. Hintergrundinformationen finden Sie hier im Wiki.
Die Bedingungen für das Tragen der Entity Category sind im GÉANT Wiki dokumentiert. Unsere Metadatenverwaltung prüft, ob Ihr mdui:PrivacyStatementURL
auf ein Dokument verweist, das den Code of Conduct explizit referenziert. Des Weiteren müssen die Requested Attributes in den Metadaten deklariert sein.
IdPs, die für Code of Conduct-SPs pauschal eine feste Attributliste freigeben möchten, sollten folgende Filterregel haben.
Research and Scholarship
Die Entity Category Research and Scholarship können Service Provider setzen, deren Dienst die Zusammenarbeit oder das Management in den Bereichen Forschung und Bildung unterstützt. Die Bedingungen sind bei REFEDS aufgelistet, wichtig sind für Sie vor allem die Registrierungskriterien (Punkt 4) und die Attributliste (Punkt 5).
Die Attributfreigaben, die IdP-seitig erfolgen können, sind unter Attributfreigaben für die REFEDS Research and Scholarship Entity Category dokumentiert.
Hide from Discovery
Die Entity Category Hide from Discovery für IdPs haben wir derzeit nicht in der Metadatenverwaltung implementiert. SPs sollten dennoch so konfiguriert sein, dass Sie die Entity Category unterstützen.
Beispiele
Hier sehen Sie den Metadatenauszug eines Services Providers mit drei Entity Attributes: Er sagt CoCo-Compliance zu, bietet einen Dienst für kollaboratives Arbeiten in der Forschung o.ä. an und gehört zur Gruppe der Clarin-SPs.
- dfn-aai-sp-metadata.xml
<EntityDescriptor entityID="https://clarin.ids-mannheim.de/shibboleth"> <Extensions> <mdrpi:RegistrationInfo registrationAuthority="https://www.aai.dfn.de" registrationInstant="2013-10-24T13:14:25Z"> <mdrpi:RegistrationPolicy xml:lang="en">https://www.aai.dfn.de/en/join/</mdrpi:RegistrationPolicy> <mdrpi:RegistrationPolicy xml:lang="de">https://www.aai.dfn.de/teilnahme/</mdrpi:RegistrationPolicy> </mdrpi:RegistrationInfo> <mdattr:EntityAttributes> <saml:Attribute Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>http://www.geant.net/uri/dataprotection-code-of-conduct/v1</saml:AttributeValue> <saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue> <saml:AttributeValue>http://clarin.eu/category/clarin-member</saml:AttributeValue> </saml:Attribute> </mdattr:EntityAttributes> </Extensions>
Hier sehen Sie den Metadatenauszug eines Identity Providers: Er hat Attributfreigaben für Code of Conduct-getreue SPs konfiguriert und verpflichtet sich den Kriterien der Verlässlichkeitsklasse Advanced.
- dfn-aai-metadata.xml
<EntityDescriptor entityID="https://idp.hs-bremen.de/idp/shibboleth"> <Extensions> <mdrpi:RegistrationInfo registrationAuthority="https://www.aai.dfn.de" registrationInstant="2016-11-18T08:40:16Z"> <mdrpi:RegistrationPolicy xml:lang="en">https://www.aai.dfn.de/en/join/</mdrpi:RegistrationPolicy> <mdrpi:RegistrationPolicy xml:lang="de">https://www.aai.dfn.de/teilnahme/</mdrpi:RegistrationPolicy> </mdrpi:RegistrationInfo> <mdattr:EntityAttributes> <saml:Attribute Name="http://macedir.org/entity-category-support" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>http://www.geant.net/uri/dataprotection-code-of-conduct/v1</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="http://aai.dfn.de/loa/degree-of-reliance" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>advanced</saml:AttributeValue> </saml:Attribute> </mdattr:EntityAttributes> </Extensions>
Entity Categories in der DFN-AAI
Eigene Entity Category?
Implementierungswünsche für weitere Entity Categories richten Sie bitte an hotline@aai.dfn.de.In der DFN-AAI kommen Entity Categories zum Einsatz, die z.B. nach Projektzugehörigkeit vergeben werden. Sie können anhand der IdP- und SP-seitigen Filtermechanismen dazu eingesetzt werden, sogenannte virtuelle Subföderationen zu bilden, z.B. für bwIDM, Nds-AAI und die Virtuelle Hochschule Bayern. Folgende Kategorien werden derzeit vergeben:
Details hierzu finden sich auf einer separaten Übersichtsseite.
Beispiele (Metadaten)
Hier sehen Sie den Metadatenauszug eines SP, der am bwIdM-Verbund teilnimmt:
- dfn-aai-sp-metadata.xml
<EntityDescriptor entityID="https://bw-support.scc.kit.edu/secure"> <Extensions> <mdrpi:RegistrationInfo registrationAuthority="https://www.aai.dfn.de" registrationInstant="2013-05-29T12:16:37Z"> <mdrpi:RegistrationPolicy xml:lang="en">https://www.aai.dfn.de/en/join/</mdrpi:RegistrationPolicy> <mdrpi:RegistrationPolicy xml:lang="de">https://www.aai.dfn.de/teilnahme/</mdrpi:RegistrationPolicy> </mdrpi:RegistrationInfo> <mdattr:EntityAttributes> <saml:Attribute Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>http://aai.dfn.de/category/bwidm-member</saml:AttributeValue> </saml:Attribute> </mdattr:EntityAttributes> </Extensions>
Hier sehen Sie den Metadatenauszug eines IdP, der am bwIdM-Verbund teilnimmt und sich der Verlässlichkeitsklasse Advanced zuordnet:
- dfn-aai-metadata.xml
<EntityDescriptor entityID="https://mylogin.uni-freiburg.de/shibboleth"> <Extensions> <mdrpi:RegistrationInfo registrationAuthority="https://www.aai.dfn.de" registrationInstant="2009-05-26T08:35:10Z"> <mdrpi:RegistrationPolicy xml:lang="en">https://www.aai.dfn.de/en/join/</mdrpi:RegistrationPolicy> <mdrpi:RegistrationPolicy xml:lang="de">https://www.aai.dfn.de/teilnahme/</mdrpi:RegistrationPolicy> </mdrpi:RegistrationInfo> <mdattr:EntityAttributes> <saml:Attribute Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>http://aai.dfn.de/category/bwidm-member</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="http://aai.dfn.de/loa/degree-of-reliance" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>advanced</saml:AttributeValue> </saml:Attribute> </mdattr:EntityAttributes> </Extensions>
Hier sehen Sie den Metadatenauszug eines IdP aus den eduGAIN-Metadaten (UK-Föderation), an dem sich Nutzer*innen selbst registrieren können:
- dfn-aai-edugain+idp-metadata.xml
<md:EntityDescriptor entityID="https://indiid.net/idp/shibboleth"> <md:Extensions> <mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk" registrationInstant="2014-11-07T16:35:40Z"> <mdrpi:RegistrationPolicy xml:lang="en">http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy> </mdrpi:RegistrationInfo> <mdattr:EntityAttributes> <saml:Attribute Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>http://aai.dfn.de/category/public-idp</saml:AttributeValue> </saml:Attribute> <!-- ... ---> </mdattr:EntityAttributes> </md:Extensions>
Beispiele (Filter)
SP-seitige Whitelist, bei der die Metadaten, mit denen der SP arbeitet, auf IdPs aus dem bwIDM-Projekt beschränkt werden:
- shibboleth2.xml
<MetadataProvider type="XML" uri="http://www.aai.dfn.de/fileadmin/metadata/dfn-aai-metadata.xml" backingFilePath="dfn-aai-metadata.xml" reloadInterval="3600"> <MetadataFilter type="Signature" certificate="/etc/ssl/aai/dfn-aai.pem" /> <MetadataFilter type="Whitelist" matcher="EntityAttributes"> <saml:Attribute Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>http://aai.dfn.de/category/bwidm-member</saml:AttributeValue> </saml:Attribute> </MetadataFilter> <MetadataFilter type="EntityRoleWhiteList"> <RetainedRole>md:IDPSSODescriptor</RetainedRole> </MetadataFilter> </MetadataProvider>
SP-seitige Blacklist, bei der aus den Metadaten, mit denen der SP arbeitet, sog. Public IdPs / Self-Signup IdPs entfernt werden:
- shibboleth2.xml
<MetadataProvider type="XML" uri="http://www.aai.dfn.de/fileadmin/metadata/dfn-aai-edugain+idp-metadata.xml" backingFilePath="dfn-aai-edugain+idp-metadata.xml" reloadInterval="3600"> <MetadataFilter type="Signature" certificate="/etc/ssl/aai/dfn-aai.pem" /> <MetadataFilter type="Blacklist" matcher="EntityAttributes"> <saml:Attribute Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>http://aai.dfn.de/category/public-idp</saml:AttributeValue> </saml:Attribute> </MetadataFilter> <MetadataFilter type="EntityRoleWhiteList"> <RetainedRole>md:IDPSSODescriptor</RetainedRole> </MetadataFilter> </MetadataProvider>
SP-seitige Whitelist, bei der die Metadaten, mit denen der SP arbeitet, auf IdPs der Verlässlichkeitsklasse “Advanced” beschränkt werden:
- shibboleth2.xml
<MetadataProvider type="XML" uri="http://www.aai.dfn.de/fileadmin/metadata/dfn-aai-idp-metadata.xml" backingFilePath="dfn-aai-idp-metadata.xml" reloadInterval="3600"> <MetadataFilter type="Signature" certificate="/etc/ssl/aai/dfn-aai.pem" /> <MetadataFilter type="Whitelist" matcher="EntityAttributes"> <saml:Attribute Name="http://aai.dfn.de/loa/degree-of-reliance" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue>advanced</saml:AttributeValue> </saml:Attribute> </MetadataFilter> </MetadataProvider>
IdP: Attributfreigabe an bwIDM-SPs:
- attribute-filter.xml
<AttributeFilterPolicy id="BwIdm"> <PolicyRequirementRule xsi:type="EntityAttributeExactMatch" attributeName="http://macedir.org/entity-category" attributeValue="http://aai.dfn.de/category/bwidm-member" /> <AttributeRule attributeID="bwidmOrgId" permitAny="true"/> <AttributeRule attributeID="mail" permitAny="true"/> <AttributeRule attributeID="givenName" permitAny="true"/> <AttributeRule attributeID="sn" permitAny="true"/> <AttributeRule attributeID="o" permitAny="true"/> <AttributeRule attributeID="uid" permitAny="true"/> <AttributeRule attributeID="eduPersonPrincipalName" permitAny="true"/> <AttributeRule attributeID="eduPersonScopedAffiliation" permitAny="true"/> <AttributeRule attributeID="eduPersonEntitlement"> <PermitValueRule xsi:type="ValueRegex" regex="^http://bwidm\.de/entitlement/.*$" /> </AttributeRule> </AttributeFilterPolicy>
Weitere Beispiele unter Attribut-Konfiguration.
Referenzen
Weiterführende Informationen finden Sie im Shibboleth Wiki unter folgenden Links:
- IdP - Attributfreigabe
- IdP - Relying Party Konfiguration
- IdP - internes Tagging mit Entity Attributen
- SP - Metadata Filter (matcher=“EntityAttributes”)
- SP - internes Tagging mit Entity Attributen