Attributfreigabe für Code-of-Conduct SPs

Basiert auf der DSGVO. Weitere Infos unter Entity Categories und https://refeds.org/category/code-of-conduct/v2.

IdPs, die u.g. Filter Policy implementiert haben, sollten in der Metadatenverwaltung den entsprechenden Entity Category Support setzen!

NB: Der Bedarf bezüglich einer pairwise-id oder subject-id muss SP-seitig über ein entsprechendes Entity Attribut signalisiert werden, siehe hierzu auch diese Beispiele.

Hier ein Beispiel für die Freigabe der subject-id/pairwise-id (sofern angefordert) für SPs, die dem CoCo v.2 folgen:

./conf/attribute-filter.xml
    <AttributeFilterPolicy id="releaseSubjectId2coco">
        <PolicyRequirementRule xsi:type="AND"> 
             <Rule xsi:type="EntityAttributeExactMatch"
                   attributeName="urn:oasis:names:tc:SAML:profiles:subject-id:req"
                   attributeValue="subject-id" />
             <Rule xsi:type="EntityAttributeExactMatch"
                   attributeName="http://macedir.org/entity-category"
                   attributeValue="https://refeds.org/category/code-of-conduct/v2" />
        </PolicyRequirementRule>
        <AttributeRule attributeID="samlSubjectID" permitAny="true"/>
    </AttributeFilterPolicy>  
 
    <AttributeFilterPolicy id="releasePairwiseId2coco">
        <PolicyRequirementRule xsi:type="AND"> 
             <Rule xsi:type="OR">
                <Rule xsi:type="EntityAttributeExactMatch"
                      attributeName="urn:oasis:names:tc:SAML:profiles:subject-id:req"
                      attributeValue="pairwise-id" />
                <Rule xsi:type="EntityAttributeExactMatch"
                      attributeName="urn:oasis:names:tc:SAML:profiles:subject-id:req"
                      attributeValue="any" />
             </Rule>
             <Rule xsi:type="EntityAttributeExactMatch"
                   attributeName="http://macedir.org/entity-category"
                   attributeValue="https://refeds.org/category/code-of-conduct/v2" />
        </PolicyRequirementRule>
        <AttributeRule attributeID="samlPairwiseID" permitAny="true"/>
    </AttributeFilterPolicy>  

IdPs sollten nur die vom SP angeforderten Attribute freigeben, d.h. in den SP-Metadaten wird das jeweilige Attribut mit isRequired=„true“ angefordert. Siehe auch Good practice for Home organisations.

Mit dem Parameter onlyIfRequired=„true“ werden nur angeforderte Attribute freigegeben. Default-Wert von onlyIfRequired ist true, der Parameter muss also nicht zwingend angegeben werden. Weitere Informationen finden Sie hier

Ausführliches Beispiel für eine Attribute Filter Policy, die für die allermeisten Anwendungsfälle passen sollte:

/opt/shibboleth-idp/conf/attribute-filter.xml
    <AttributeFilterPolicy id="releaseToCoCo2">
 
       <PolicyRequirementRule 
               xsi:type="EntityAttributeExactMatch"
               attributeName="http://macedir.org/entity-category"
               attributeValue="https://refeds.org/category/code-of-conduct/v2" />
 
       <AttributeRule attributeID="displayName">
          <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="eduPersonScopedAffiliation">
          <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="eduPersonAffiliation">
          <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="mail">
          <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="cn">
         <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="givenName">
         <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="sn">
          <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="eduPersonPrincipalName">
          <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="schacHomeOrganization">
         <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="schacHomeOrganizationType">
          <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
       <AttributeRule attributeID="o">
          <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true"/>
       </AttributeRule>
 
</AttributeFilterPolicy>


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>
  • Zuletzt geändert: vor 11 Tagen