====== Entity Attributes ======
Bei Entity Attributen handelt es sich um eine [[https://wiki.oasis-open.org/security/SAML2MetadataAttr|Erweiterung der SAML2-Metadaten]], mit der IdPs, Attribute Authorities oder SPs zu Gruppen zusammengefasst werden können. Systeme mit gemeinsamen Merkmalen, z.B. einer Projektzugehörigkeit, werden mit Entity Attributen in den Metadaten markiert. Die Attributnamen und -werte können dann zum Filtern verwendet werden: IdP-seitig ist das interessant, um Attributfreigaben für SP-Gruppen zu vereinheitlichen oder um in der Relying Party-Konfiguration Profile zu aktivieren. SP-seitig können damit Metadaten gefiltert werden, um die Gruppe der zugriffsberechtigten IdPs zu definieren.
\\
===== SP: benötigte Subject Identifier Attribute =====
Die Angabe, ob ein Service Provider eine [[de:common_attributes#a16|Subject Id]] oder eine [[de:common_attributes#a16|Pairwise Id]] (oder eine von beiden) benötigt, erfolgt über ein entsprechendes Entity Attribut (zulässige Werte: ''subject-id'', ''pairwise-id'', ''any'', ''none''). Siehe hierzu die [[https://docs.oasis-open.org/security/saml-subject-id-attr/v1.0/saml-subject-id-attr-v1.0.html|Spezifikation der SAML V2.0 Subject Identifier Attributes]]. Beispiele zur Attributfreigabe finden sich auf [[de:shibidp:config-attributes-subject_ids|dieser Seite]].
Hierzu existiert eine Schaltfläche in der DFN-AAI Metadatenverwaltung:
{{:de:metadata_admin_tool:subject-id.png?400|}}
https://www.aai.dfn.de/fileadmin/documents/mrps_dfn-aai_1.0.pdf
subject-id
===== Sirtfi =====
Dieses seltsame Wort wird "certify" ausgesprochen. Es steht für "Security Incident Response Trust Framework for Federated Identity". Dieses Entity Attribut bezeugt die Bereitschaft und Fähigkeit des IdP-, AA- oder SP-Betreibers, die Anforderungen des Sirtfi Frameworks einzuhalten und bei Sicherheitsvorfällen die Gegenstellen zeitnah zu informieren. Siehe hierzu [[https://wiki.refeds.org/display/SIRTFI/SIRTFI+Home|die REFEDS-Website]] und unsere Dokumentation zu [[:de:aai:incidentresponse#sirtfi_compliance_fuer_idps_und_sps_in_der_dfn-aai|Sirtfi Compliance in der DFN-AAI]].
Das Sirtfi Entity Attribut ''urn:oasis:names:tc:SAML:attribute:assurance-certification'' darf nur unter den im Framework festgelegten Bedingungen geführt werden. Wir prüfen folgende formale und technische Kriterien, bevor wir die entsprechende Checkbox freigeben:
- In den Metadaten muss ein Security-Kontakt benannt sein. Dabei muss es sich um eine Funktionsadresse handeln, keine persönliche E-Mail-Adresse.
- Wir setzen voraus, dass Sirtfi-konforme Einrichtungen die jeweils aktuellste Software-Version für den IdP bzw. SP einsetzen.
- Die SSL-Konfiguration des Webservers muss aktueller Best Practice entsprechen. Dazu ziehen wir den Servertest von [[https://www.ssllabs.com/|ssllabs.com]] heran.
[[https://refeds.org/wp-content/uploads/2022/08/Sirtfi-v2.pdf|Sirtfi Version 2]] beinhaltet alle Punkte der [[https://refeds.org/wp-content/uploads/2016/01/Sirtfi-1.0.pdf|Version 1]], [[https://refeds.org/wp-content/uploads/2022/08/Coexistence-of-Sirtfi-v1-and-v2.pdf|ergänzt und präzisiert]] diese jedoch. Wenn für eine Entity (IdP/SP) Konformität zu Sirtfi 2.0 bestätigt wird, müssen daher als Werte für das entsprechende Entity Attribut sowohl ''https://refeds.org/sirtfi'' als auch ''https://refeds.org/sirtfi2'' gesetzt werden - siehe das Beispiel unten.
Zu den Maßnahmen und Prozeduren im Falle eines Sicherheitsvorfalls siehe unter [[:de:aai:incidentresponse|Incident Response]].
https://www.switch.ch/aai/federation/switchaai/metadata-registration-practice-statement-20110711.txt
https://refeds.org/sirtfi2
https://refeds.org/sirtfi
\\
====== Entity Categories ======
Eine Entity Category ist technisch gesehen ein Wert eines Entity Attributs, das den Namen **%%http://macedir.org/entity-category%%** führt. 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|https://wiki.refeds.org/display/ENT/Entity-Categories+Home]].
\\
===== Internationale Entity Categories =====
Die folgenden Entity Categories kommen international zum Einsatz. Um sie für Ihre Systeme in der DFN-AAI zu setzen, verwenden Sie die [[https://mdv.aai.dfn.de|Metadatenverwaltung]].
\\
==== DEPRECATED! - GÉANT Data Protection Code of Conduct (CoCo v.1) ====
The GÉANT Code of Conduct 1.0 ist seit dem 1. Januar 2026 deprecated. Organisationen wird empfohlen auf REFEDS Data Protection Code of Conduct (CoCco v.2) zu migrieren.
Die Entity Category GÉANT Data Protection Code of Conduct for Service Providers in EU/EEA (CoCo v.1) ist eine Selbstverpflichtungserklärung von Service Providern. Damit sagen Sie über sich aus, dass sie die über SAML2 übertragenen personenbezogenen Daten von Endnutzern entsprechend der EU Datenschutzrichtlinie 95/46/EG von 1995 behandeln. Hintergrundinformationen finden Sie hier im [[https://doku.tid.dfn.de/de:geant_coco|Wiki]]. Die Bedingungen für das Tragen der Entity Category sind im [[https://wiki.geant.org/display/eduGAIN/Recipe+for+a+Service+Provider|GÉANT Wiki]] dokumentiert.
IdP-Betreiber, die die von Code of Conduct-SPs benötigten Attribute freigeben möchten, können sich bzgl. der Filterregel an diesen [[:de:shibidp:config-attributes-coco|Beispielen]] orientieren.
==== REFEDS Data Protection Code of Conduct (CoCo v.2) ====
Die Entity Category REFEDS Data Protection Code of Conduct (CoCco v.2) signalisiert, dass Service Provider, die dieser Entity Category angehören, die auf der DSGVO basierenden [[https://refeds.org/wp-content/uploads/2022/05/REFEDS-CoCo-Best-Practicev2.pdf|Best Practices]] befolgen, die dieses Entity Category definiert. Siehe hierzu auch unter https://refeds.org/category/code-of-conduct/v2.
IdP-Betreiber, die die von Code of Conduct-SPs benötigten Attribute freigeben möchten, können sich bzgl. der Filterregel an diesen [[:de:shibidp:config-attributes-coco|Beispielen]] orientieren.
**Definition:**
* Selbstverpflichtungserklärung von Service Providern
* Ansässig in der EU oder im europäischem Wirtschaftsraum
* SPs aus Drittländern müssen ein angemessenes Datenschutzniveau nach Art. 45 DSGVO nachweisen
**Registrierungskriterien:**
* Für SPs gilt:
* Die Konformität mit Sirtfi ist gegeben und wird über das entsprechende Entity Attribut in den Metadaten des SPs publiziert
* Liste der angeforderten Attribute stimmt mit den Angaben in den Datenschutzinformationen überein
* Metadaten enthalten in englischer Sprachversion (d.h. xml:lang=„en“)
*
*
*
* Für IdPs, die diese Entity Category unterstützen, gilt:
* Nur die angeforderten Attribute freigeben
* Wird für ein multi-valued Attribut ein bestimmter Wert verlangt, wird nur dieser freigegeben
* Information der Nutzenden über jedes Attribut in PrivacyStatementURL
**Required Attributes:**
* vom SP benötigte Attribute müssen wie folgt gekennzeichnet sein:
* RequestedAttribute mit «isRequired="true"» oder
* subject-id:req (pairwise-id or subject-id)
\\
==== European Student Identifier ====
Siehe unter https://wiki.geant.org/display/SM/European+Student+Identifier+Entity+Category und die Wiki-Seite [[de:shibidp:config-attributes-erasmus|Erasmus-Dienste]].
**Definition:**
* Zweck: eindeutige Identifikation von Studierenden im Rahmen formaler Lern-, Lehr- und Verwaltungsprozesse innerherhalb der europäischen Hochschullandschaft
* zuverlässiger & datenschutzkonformen Austausch studentischer Daten zwischen Institutionen, insbesondere zur Abwicklung von Mobilitätsprogrammen wie Erasmus+
**Registrierungskriterien (betreffen SPs):**
* Ansässig in der EU oder im europäischem Wirtschaftsraum
* SPs aus Drittländern müssen ein angemessenes Datenschutzniveau nach Art. 45 DSGVO nachweisen
* In Frage kommen
* Studierendenmobilitätsdienste, z. B. das Programm Erasmus+.
* SPs zur Übermittlung von Studierendendaten zwischen Bildungseinrichtungen
* Hochschulübergreifende Allianzen und Lernmanagementsysteme
**Required Attribute:**
* schacPersonalUniqueCode
\\
==== Research and Scholarship ====
Die Bedingungen sind bei [[https://refeds.org/category/research-and-scholarship|REFEDS]] aufgelistet, wichtig sind für Sie vor allem die Registrierungskriterien (Punkt 4) und die Attributliste (Punkt 5).
**Definition der Entity Category Research and Scholarship:**
* SPs, die zumindest teilweise zur Unterstützung der Interaktion, Zusammenarbeit oder Verwaltung von Forschung und Wissenschaft betrieben werden, z.B.
* Wikis, Blogs, Projekt- und Fördermittelmanagement-Tools
* NICHT: Lizenz-Management
* IdPs können die Unterstützung von SPs in dieser Entity Category angeben
* [[:de:shibidp:config-attributes-rands|Attributfreigaben für die REFEDS Research and Scholarship Entity Category]]
**Registrierungskriterien (gelten für SPs):**
* unterstützt SAML V2.0 HTTP-POST binding
* Föderations-Metadaten werden mind. täglich aktualisiert
* Metadaten enthalten: , ,
* Englische Sprachversion wird empfohlen (d.h. xml:lang=„en“)
**R&S-Attribut-Bundle:**
* Benutzerkennung
* eduPersonPrincipalName (wenn nicht neu zugewiesen)
* Oder: eduPersonPrincipalName + eduPersonTargetedID (oder persistenName ID)
* Name der Person, E-Mail-Adresse
* displayName oder/und givenName + sn
* mail
* optional Zugehörigkeit
* eduPersonScopedAffiliation
Zusätzliche Attribut-Anforderungen können ausgehandelt werden
Für IdPs, die diese Entity Category unterstützen gilt:
* Freigabe des Attribut-Bundles für eine signifikante Teilmenge der User
* Freigabe erfolgt Automatisch oder vorbehaltlich der User-Zustimmung
* Bereitstellung eines persistenten, nicht neu zugewiesenen, nicht zielgerichteten User-Identitfiers ist gegeben
\\
==== Anonymous Access ====
* Siehe unter https://refeds.org/category/anonymous
* Konfigurationsbeispiel für die Attributfreigabe am IdP unter [[de:shibidp:config-attributes#anonymous_access_entity_category|Anpassung der Attributkonfiguration]].
**Definition:**
* Fokus: Erhalt personenbezogener Daten ist unerwünscht
* Nicht: Bereitstellung von Autorisierungsinformationen
* IdPs können Unterstützung der Entity Category anzeigen
**Registrierungskriterien (betreffen SPs):**
* Metadaten enthalten , und
* Englische Sprachversion wird empfohlen (d.h. xml:lang=„en“)
**Required Attributes:**
* Organization: schacHomeOrganization
* Affiliation: eduPersonScopedAffiliation
==== Pseudonymous Access ====
* Siehe unter https://refeds.org/category/pseudonymous
* [[de:shibidp:config-attributes-access_ecs|Konfigurationsbeispiel für die Attributfreigabe am IdP]]
**Definition:**
* Fokus: Personalisierung auf der Grundlage eines pseudonymen User-Identifiers
* Nicht: Bereitstellung von Autorisierungsinformationen
* IdPs können Unterstützung der Entity Category anzeigen
**Registrierungskriterien (betreffen SPs):**
* nachgewiesener und dokumentierter Bedarf an den Informationen (Attribut-Bundle)
* Selbstverpflichtung zur Datenminimierung
* Attribute werden nur für den im Antrag beschriebenen Zweck verwendet
* Metadaten enthalten , , und
* Englische Sprachversion wird empfohlen (d.h. xml:lang=„en“)
**Attribut-Bundle:**
* Organization: schacHomeOrganization
* pseudonymous pairwise user identifier: pairwise-id
* Affiliation: eduPersonScopedAffiliation
* Assurance: eduPersonAssurance
==== Personalized Access ====
* Siehe unter https://refeds.org/category/personalized
* [[de:shibidp:config-attributes-access_ecs|Konfigurationsbeispiel für die Attributfreigabe am IdP]]
**Definition:**
* SPs, die nachweislich einige wenige personenbezogenen Daten der Nutzenden benötigen
* Nicht: Bereitstellung von Autorisierungsinformationen
* IdPs können Unterstützung der Entity Category anzeigen
**Registrierungskriterien (betreffen SPs):**
* nachgewiesener und dokumentierter Bedarf an den Informationen (Attribut-Bundle)
* Selbstverpflichtung zur Datenminimierung
* Attribute werden nur für den im Antrag beschriebenen Zweck verwendet
* Metadaten enthalten , , und
* Englische Sprachversion wird empfohlen (d.h. xml:lang=„en“)
**Attribute-Bundle:**
* Organization: schacHomeOrganization
* user identifier: subject-id
* person name: displayName , givenName, sn
* email address: mail
* affiliation: eduPersonScopedAffiliation
* Assurance: eduPersonAssurance
\\
==== Hide from Discovery ====
Der Entity Category [[https://refeds.org/category/hide-from-discovery|Hide from Discovery]] können IdPs zugeordnet werden, die nicht in zentralen Discovery Services angezeigt werden sollen, wie z.B. dem [[de:discovery#die_zentralen_discovery_services_des_dfn-verein|DFN-AAI WAYF]].
SPs akzeptieren weiterhin Assertions von diesem IdP.
Mögliche Situationen:
* Verbesserung der Benutzerfreundlichkeit bei ähnlichen Anzeigenamen von Test/Dev & Prod. IdP
* IdPs mit Zugangsbeschränkung auf bestimmte Netzbereiche
* Technische Herausforderungen über einen längeren Zeitraum, z.B. Migration
\\
==== 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.
https://www.aai.dfn.de/en/join/
https://www.aai.dfn.de/teilnahme/
https://refeds.org/category/code-of-conduct/v2
http://refeds.org/category/research-and-scholarship
http://clarin.eu/category/clarin-member
Hier sehen Sie den Metadatenauszug eines Identity Providers, der Attributfreigaben für Code of Conduct-getreue SPs konfiguriert hat.
https://www.aai.dfn.de/en/join/
https://www.aai.dfn.de/teilnahme/
https://refeds.org/category/code-of-conduct/v2
===== Entity Categories in der DFN-AAI =====
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. Welche IdPs und SPs zu einer solchen Entity Category / virtuellen Subföderation gehören, lässt sich in der Metadatenverwaltung über eine sog. **Entitätenliste** modellieren. \\
Hierbei ist folgendes zu beachten:
* Die Liste und die zugehörige Entity Category müssen vom [[hotline@aai.dfn.de,|DFN-AAI]] Team initial eingerichtet werden
* Die Zugriffsrechte auf die Entitätenliste werden vom DFN-AAI Team gesetzt, auch für Sub-Admins
Folgende Kategorien werden derzeit vergeben:
* [[http://aai.dfn.de/category/bwidm-member|http://aai.dfn.de/category/bwidm-member]]
* [[http://aai.dfn.de/category/campus-lsa-member|http://aai.dfn.de/category/campus-lsa-member]]
* [[http://clarin.eu/category/clarin-member|http://clarin.eu/category/clarin-member]]
* [[http://aai.dfn.de/category/fid-licences-member|http://aai.dfn.de/category/fid-licences-member]]
* [[http://aai.dfn.de/category/heidi-member|http://aai.dfn.de/category/heidi-member]]
* [[http://aai.dfn.de/category/highmeducation-member|http://aai.dfn.de/category/highmeducation-member]]
* [[http://aai.dfn.de/category/idm.nrw-member|http://aai.dfn.de/category/idm.nrw-member]]
* [[http://aai.dfn.de/category/metavideoportal-member|http://aai.dfn.de/category/metavideoportal-member]]
* [[http://aai.dfn.de/category/ndsidm-member|http://aai.dfn.de/category/ndsidm-member]]
* [[http://aai.dfn.de/category/nfdi-member|http://aai.dfn.de/category/nfdi-member]]
* [[http://aai.dfn.de/category/no-aes-gcm-support|http://aai.dfn.de/category/no-aes-gcm-support]]
* [[http://aai.dfn.de/category/psy-infra|http://aai.dfn.de/category/psy-infra]]
* [[http://aai.dfn.de/category/public-idp|http://aai.dfn.de/category/public-idp]]
* [[http://aai.dfn.de/category/rarp-member|http://aai.dfn.de/category/rarp-member]]
* [[http://aai.dfn.de/category/sh-idm-member|http://aai.dfn.de/category/sh-idm-member]]
* [[http://aai.dfn.de/category/vhb-member|http://aai.dfn.de/category/vhb-member]]
Details hierzu finden sich auf einer [[:de:aai:entity_categories|separaten Übersichtsseite]].
==== Beispiele (Metadaten) ====
Hier sehen Sie den Metadatenauszug eines SP, der am bwIdM-Verbund teilnimmt:
https://www.aai.dfn.de/en/join/
https://www.aai.dfn.de/teilnahme/
http://aai.dfn.de/category/bwidm-member
Hier sehen Sie den Metadatenauszug eines IdP, der am bwIdM-Verbund teilnimmt:
https://www.aai.dfn.de/en/join/
https://www.aai.dfn.de/teilnahme/
http://aai.dfn.de/category/bwidm-member
Hier sehen Sie den Metadatenauszug eines IdP aus den eduGAIN-Metadaten (UK-Föderation), an dem sich Nutzer*innen selbst registrieren können:
http://ukfederation.org.uk/doc/mdrps-20130902
http://aai.dfn.de/category/public-idp
==== Beispiele (Filter) ====
**SP-seitiger Include-Filter, bei der die Metadaten, mit denen der SP arbeitet, auf IdPs aus dem bwIDM-Projekt beschränkt werden:**
http://aai.dfn.de/category/bwidm-member
\\
**SP-seitiger Include-Filter, bei der die Metadaten, mit denen der SP arbeitet, auf IdPs sowohl aus dem bwIDM- als auch aus dem IDM.nrw-Projekt beschränkt werden (Kooperations-Szenario):**
http://aai.dfn.de/category/bwidm-member
http://aai.dfn.de/category/idm.nrw-member
\\
**SP-seitiger Exclude-Filter, bei der aus den Metadaten, mit denen der SP arbeitet, sog. Public IdPs / Self-Signup IdPs entfernt werden:**
http://aai.dfn.de/category/public-idp
md:IDPSSODescriptor
\\
**IdP: Attributfreigabe an bwIDM-SPs:**
\\
**IdP: Attributfreigabe an SPs des Meta-Videoportal unterrichtsvideos.net:** \\
(siehe hierzu auch unter https://unterrichtsvideos.net/metaportal/faq#IDP_Infos)
\\
**IdP: Freigabe der subject-id an SPs für FID-Lizenzen:** \\
Es ist nur die Freigabe einer subject-id ODER einer eduPersonUniqueId notwendig
(siehe hierzu auch unter https://www.fid-lizenzen.de/zusammenarbeit-fid-kfl)
\\
**IdP: Freigabe der eduPersonUnique-id an SPs für FID-Lizenzen:** \\
Es ist nur die Freigabe einer eduPersonUniqueId ODER einer subject-id notwendig
(siehe hierzu auch unter https://www.fid-lizenzen.de/zusammenarbeit-fid-kfl)
Weitere Beispiele unter [[de:shibidp:config-attributes#haeufig_genutzt_service_provider|Attribut-Konfiguration]].
===== Referenzen =====
Weiterführende Informationen finden Sie im Shibboleth Wiki unter folgenden Links:
* **IdP - Attributfreigabe**
* [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199502013/EntityAttributeExactMatchConfiguration|EntityAttributeExactMatch Configuration]]
* [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199502037/EntityAttributeRegexMatchConfiguration|EntityAttributeRegexMatch Configuration]]
* **IdP - Relying Party Konfiguration**
* [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199508044/RelyingPartyConfiguration|RelyingParty Configuration - Overrides, (RelyingPartyByTag)]]
* **IdP - internes Tagging mit Entity Attributen**
* [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199507147/EntityAttributesFilter|Metadata - EntityAttributesFilter]]
* **SP - Metadata Filter (matcher="EntityAttributes")**
* [[https://wiki.shibboleth.net/confluence/display/SP3/IncludeMetadataFilter|Include MetadataFilter]]
* [[https://wiki.shibboleth.net/confluence/display/SP3/ExcludeMetadataFilter|Exclude MetadataFilter]]
* **SP - internes Tagging mit Entity Attributen**
* [[https://wiki.shibboleth.net/confluence/display/SP3/EntityAttributesMetadataFilter|Entity Attributes Metadata Filter]]
{{tag>entity-category entity-attribute subjectIdentifierAttributes}}