Attribut-Konfiguration für e-Research SPs

Dienste, die von Forschungsinfrastrukturen und -Projekten betrieben werden, stehen häufig prinzipiell einer breiten wissenschaftlichen Öffentlichkeit zur Verfügung (z.B. TextGrid, WebLicht u.a.m.), in anderen Fällen sind spezielle, mitunter temporäre Berechtigungen erforderlich, die häufig über Entitlements abgebildet und von der jeweiligen wissenschaftlichen Community gepflegt werden. Diese Attribute werden üblicherweise nicht von den IdPs der jeweiligen Heimatorganisation vorgehalten, sondern in Attribute Authorities hinterlegt, die vom jeweiligen Projekt gepflegt werden. Nicht nur der guten wissenschaftlichen Praxis wegen, sondern auch um das Mapping zwischen dem/der bei der jeweiligen Heimateinrichtung angemeldeten Nutzer(in) und den in einer dienst-/projekt-spezifischen Attribute Authority hinterlegten Attributen herzustellen, ist neben Angaben zu Personennamen, Einrichtung und eMail ein global gültiger, eindeutiger Identifier erforderlich, z.B. eduPersonPrincipalName oder eduPersonUniqueId.

Ausführliches Beispiel, das alle Eventualitäten abdecken sollte:

/opt/shibboleth-idp/conf/attribute-filter.xml
    <AttributeFilterPolicy id="releaseToCoCo">
 
       <PolicyRequirementRule 
               xsi:type="EntityAttributeExactMatch"
               attributeName="http://macedir.org/entity-category"
               attributeValue="http://www.geant.net/uri/dataprotection-code-of-conduct/v1" />
 
       <!--onlyIfRequired="true" kann hier weggelassen werden, da ab IdPv3.2 Default--> 
 
       <AttributeRule attributeID="displayName">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="eduPersonScopedAffiliation">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="eduPersonAffiliation">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="mail">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="cn">
         <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="givenName">
         <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="sn">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="eduPersonPrincipalName">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="schacHomeOrganization">
         <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="schacHomeOrganizationType">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="eduPersonTargetedID">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
       <AttributeRule attributeID="o">
          <PermitValueRule xsi:type="AttributeInMetadata"/>
       </AttributeRule>
 
</AttributeFilterPolicy>
/opt/shibboleth-idp/conf/attribute-filter.xml
    <AttributeFilterPolicy id="releaseEverythingToClarin">
        <PolicyRequirementRule xsi:type="AND">
           <Rule xsi:type="EntityAttributeExactMatch"
                 attributeName="http://macedir.org/entity-category"
                 attributeValue="http://clarin.eu/category/clarin-member" />
           <!--
               wer sichergehen will, dass nur SPs bedient werden, die europäischen 
               Datenschutzrichtlinien genügen, nimmt noch den Code-of-Conduct dazu
               (https://www.aai.dfn.de/der-dienst/datenschutz/data-protection-code-of-conduct/)
           -->
           <Rule xsi:type="EntityAttributeExactMatch"
                 attributeName="http://macedir.org/entity-category"
                 attributeValue="http://www.geant.net/uri/dataprotection-code-of-conduct/v1" />
        </PolicyRequirementRule>
 
        <AttributeRule attributeID="eduPersonAffiliation">
           <!--onlyIfRequired="true" kann hier weggelassen werden, da ab IdPv3.2 Default-->
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <!-- entweder eduPersonPrincipalName *oder* eduPersonTargetedID-->
        <AttributeRule attributeID="eduPersonPrincipalName">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <AttributeRule attributeID="eduPersonTargetedID">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <AttributeRule attributeID="sn">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <!-- einige SPs verlangen 'cn', andere 'displayName' -->
 
        <AttributeRule attributeID="cn">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <AttributeRule attributeID="displayName">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <AttributeRule attributeID="mail">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <!-- einige SPs verlangen 'o', andere 'schacHomeOrganization' -->
 
        <AttributeRule attributeID="o">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <AttributeRule attributeID="schacHomeOrganization">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
        <AttributeRule attributeID="schacHomeOrganizationType">
           <PermitValueRule xsi:type="AttributeInMetadata"/>
        </AttributeRule>
 
</AttributeFilterPolicy>
/opt/shibboleth-idp/conf/attribute-filter.xml
<AttributeFilterPolicy id="releaseToRandS">
 
   <PolicyRequirementRule 
           xsi:type="EntityAttributeExactMatch"
           attributeName="http://macedir.org/entity-category"
           attributeValue="http://refeds.org/category/research-and-scholarship" />
 
   <AttributeRule attributeID="eduPersonScopedAffiliation" permitAny="true" />
 
   <!-- falls eduPersonPrincipalName neu vergeben werden kann,
        muss  eduPersonTargetedID mit uebertragen werden -->
   <AttributeRule attributeID="eduPersonPrincipalName" permitAny="true" />
 
   <AttributeRule attributeID="eduPersonTargetedID" permitAny="true" />
 
   <!-- entweder sn + givenName oder displayName -->
   <AttributeRule attributeID="givenName" permitAny="true" />
 
   <AttributeRule attributeID="sn" permitAny="true" />
 
   <AttributeRule attributeID="displayName" permitAny="true" />
 
   <AttributeRule attributeID="mail" permitAny="true" />
 
</AttributeFilterPolicy>

ELIXIR ist eine Forschungsinfrastruktur für Daten aus dem Bereich Life Science (v.a. Genom-Datenbanken). Weiterführende Informationen finden sich auf der Homepage des Projekts unter http://www.elixir-europe.org/ und in dem hier verlinkten Anschreiben.

Der Zugang zu den ELIXIR Diensten erfolgt über einen SP Proxy (Entity ID: https://login.elixir-czech.org/proxy/), der über eduGAIN verfügbar ist.

Benötigte Attribute (+ NameID):

  • Persistent NameID / eduPersonPrincipalName / eduPersonTargetedID
  • eduPersonAffiliation / eduPersonScopedAffiliation (von besonderer Relevanz ist der Wert „faculty“)
  • schacHomeOrganization

Dieser Service Provider (und die dahinter liegenden Dienste) verpflichtet sich dem GÉANT Data Protection Code of Conduct for Service Providers in EU/EEA (siehe oben). Falls hierfür bereits eine Filter Policy nach dem angeführten Beispiel implementiert ist, sollte der Zugriff auf die ELIXIR Dienste ohne zusätzliche Maßnahmen funktionieren.

Ob alle benötigten Angaben übertragen werden, lässt sich anhand dieses Attribute Checks überprüfen:

https://perun.elixir-czech.cz/attribute-check/

Hier noch ein Beispiel für eine dienstspezifische Attribute Filter Policy (zu Persistent NameID vs. eduPersonTargetedID siehe dort):

/opt/shibboleth-idp/conf/attribute-filter.xml
<AttributeFilterPolicy id="elixir">
   <PolicyRequirementRule xsi:type="Requester" value="https://login.elixir-czech.org/proxy/" />
 
   <AttributeRule attributeID="schacHomeOrganization" permitAny="true"/>
   <AttributeRule attributeID="eduPersonScopedAffiliation" permitAny="true"/>
   <!-- nur wenn keine Persistent NameID üertragen wird -->
   <AttributeRule attributeID="eduPersonTargetedID" permitAny="true"/>
 
</AttributeFilterPolicy>
  • Zuletzt geändert: vor 18 Monaten