Kategorie entit Code of Conduct (nebo také zkráceně CoCo) je určena pro entity, které chrání osobní data uživatelů dle GÉANT Data Protection Code of Conduct. Pro poskytovatele služeb definuje pravidla chování, aby získali uživatelské atributy od poskytovatelů identit jednotlivých domovských organizací. Očekává se totiž, že domovské organizace nebudou bránit uvolňování uživatelských atributů službám, které se zavázaly k ochraně osobních dat.
Oficiální dokumentace v angličtině se nachází na adrese https://wiki.refeds.org/display/CODE/ a chcete-li se stát součástí této kategorie entit, je vaší povinností si originální dokumentaci prostudovat. Zde se nachází pouze nejdůležitější informace, které se CoCo týkají.
Žadatel o členství potvrzuje, že plně pochopil zde uvedenou i odkazovanou dokumentaci a že je členství této entity v souladu s požadavky.
V případě nedodržení požadavků bude entita z této kategorie odebrána a opětovné zařazení nebude umožněno.
Ze všeho nejdříve je nutné si projít nejdůležitější část dokumentace, tedy Code of Conduct for Service Providers a SAML 2 Profile for the Data Protection Code of Conduct, pochopit ji a být s ní v plném souladu.
Technické požadavky na členství v CoCo se liší v závislosti na entitě. Služby (SP) udávají, jak se budou k uživatelským údajům chovat atd. Domovské organizace (IdP) naproti tomu vyjadřují podporu pro CoCo a tedy že odpovídajícím službám budou uvolňovat atributy.
Jste-li správcem SP, tato část je určena pro Vás.
Začít byste měli určitě prostudováním Recipe for a Service Provider a What attributes are relevant for a Service Provider.
Metadata musí obsahovat:
UIInfo
s následujícími elementy v české (xml:lang=„cs“
) i anglické (xml:lang=„en“
) mutaci:DisplayName
Description
PrivacyStatementURL
AttributeConsumingService
se seznam vyžadovaných atributů.AttributeValue
.RequestedAttribute
, má se za to, že služba nepotřebuje žádné atributy.RequestedAttribute
atribut isRequired=„true“
.PrivacyStatementURL
.EntityAttributes
s odpovídajícím obsahem značí, že služba vyhovuje pravidlům CoCo.Příklad metadat pro službu, která vyžaduje atributy displayName, eduPersonPrincipalName a mail je zde:
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://www.example.org/shibboleth"> <Extensions> <EntityAttributes xmlns="urn:oasis:names:tc:SAML:metadata:attribute"> <Attribute xmlns="urn:oasis:names:tc:SAML:2.0:assertion" Name="http://macedir.org/entity-category" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <AttributeValue>http://www.geant.net/uri/dataprotection-code-of-conduct/v1</AttributeValue> </Attribute> </EntityAttributes> </Extensions> <SPSSODescriptor> <Extensions> <!-- UIInfo --> <UIInfo xmlns=”urn:oasis:names:tc:SAML:metadata:ui”> <DisplayName xml:lang="en">Software Database</DisplayName> <DisplayName xml:lang="cs">Databáze software</DisplayName> <Description xml:lang="en">Software available for download.</Description> <Description xml:lang="cs">Seznam software ke stažení.</Description> <PrivacyStatementURL xml:lang="en">https://www.example.org/en/privacy.html</PrivacyStatementURL> <PrivacyStatementURL xml:lang="cs">https://www.example.org/cs/privacy.html</PrivacyStatementURL> </UIInfo> </Extensions> <!-- Requested Attributes --> <AttributeConsumingService> <!-- displayName --> <RequestedAttribute FriendlyName="displayName" Name="urn:oid:2.16.840.1.113730.3.1.241" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/> <!-- eduPersonPrincipalName --> <RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/> <!-- mail --> <RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/> </AttributeConsumingService> </SPSSODescriptor> </EntityDescriptor>
Jste-li správcem IdP, tato část je určena pro Vás.
Začít byste měli určitě prostudováním Recipe for a Home Organisation a Data protection good practice for Home Organisations.
Metadata musí obsahovat element EntityAttributes
s odpovídajícím obsahem vyjadřují podporu pro CoCo a tedy že odpovídajícím službám budou uvolňovat atributy.
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://idp.example.org/"> <Extensions> <EntityAttributes xmlns="urn:oasis:names:tc:SAML:metadata:attribute"> <Attribute xmlns="urn:oasis:names:tc:SAML:2.0:assertion" Name="http://macedir.org/entity-category-support" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <AttributeValue>http://www.geant.net/uri/dataprotection-code-of-conduct/v1</AttributeValue> </Attribute> </EntityAttributes> </Extensions> </EntityDescriptor>
Zároveň je potřeba upravit politiku uvolňování atributů v konfiguračním souboru conf/attribute-filter.xml
, aby služby z kategorie CoCo dostávaly správně atributy. Příklad uvolňování atributů pro IdP je zde:
<!-- Code of Conduct --> <AttributeFilterPolicy id="coco"> <PolicyRequirementRule xsi:type="EntityAttributeExactMatch" attributeName="http://macedir.org/entity-category" attributeValue="http://www.geant.net/uri/dataprotection-code-of-conduct/v1" /> <!-- displayName --> <AttributeRule attributeID="displayName"> <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true" /> </AttributeRule> <!-- cn --> <AttributeRule attributeID="cn"> <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true" /> </AttributeRule> <!-- mail --> <AttributeRule attributeID="mail"> <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true" /> </AttributeRule> <!-- eduPersonPrincipalName --> <AttributeRule attributeID="eduPersonPrincipalName"> <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true" /> </AttributeRule> <!-- eduPersonScopedAffiliation --> <AttributeRule attributeID="eduPersonScopedAffiliation"> <PermitValueRule xsi:type="AND"> <Rule xsi:type="AttributeInMetadata" onlyIfRequired="true" /> <Rule xsi:type="OR"> <Rule xsi:type="Value" value="affiliate" caseSensitive="false" /> <Rule xsi:type="Value" value="alum" caseSensitive="false" /> <Rule xsi:type="Value" value="employee" caseSensitive="false" /> <Rule xsi:type="Value" value="faculty" caseSensitive="false" /> <Rule xsi:type="Value" value="library-walk-in" caseSensitive="false" /> <Rule xsi:type="Value" value="member" caseSensitive="false" /> <Rule xsi:type="Value" value="staff" caseSensitive="false" /> <Rule xsi:type="Value" value="student" caseSensitive="false" /> </Rule> </PermitValueRule> </AttributeRule> <!-- eduPersonAffiliation --> <AttributeRule attributeID="eduPersonAffiliation"> <PermitValueRule xsi:type="AND"> <Rule xsi:type="AttributeInMetadata" onlyIfRequired="true" /> <Rule xsi:type="OR"> <Rule xsi:type="Value" value="affiliate" caseSensitive="false" /> <Rule xsi:type="Value" value="alum" caseSensitive="false" /> <Rule xsi:type="Value" value="employee" caseSensitive="false" /> <Rule xsi:type="Value" value="faculty" caseSensitive="false" /> <Rule xsi:type="Value" value="library-walk-in" caseSensitive="false" /> <Rule xsi:type="Value" value="member" caseSensitive="false" /> <Rule xsi:type="Value" value="staff" caseSensitive="false" /> <Rule xsi:type="Value" value="student" caseSensitive="false" /> </Rule> </PermitValueRule> </AttributeRule> <!-- schacHomeOrganization --> <AttributeRule attributeID="schacHomeOrganization"> <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="true" /> </AttributeRule> </AttributeFilterPolicy>
Aktualizujte odpovídajícím způsobem metadata své entity. Nová metadata nahrajte buď do aplikace MetaMan, nebo je odešlete v příloze e-mailu na adresu info@eduid.cz. E-mail musí být poslán odpovědnou osobou (tzv. administrativním nebo technickým kontaktem) a digitálně podepsán osobním certifikátem.
Své případné konkrétní otázky směřujte na e-mailovou adresu info@eduid.cz.