Code of Conduct
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.
1. Seznámení a pochopení CoCo
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.
2. Technické požadavky
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.
SP
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:
- Element
UIInfo
s následujícími elementy v české (xml:lang=„cs“
) i anglické (xml:lang=„en“
) mutaci:DisplayName
- Krátké vypovídající jméno služby, pokud možno bez zkratek.
- Např. AAIwiki (eduID.cz, eduroam.cz, CESNET PKI).
Description
- Krátký popis poskytované služby, který je vypovídající i pro neznalé uživatele. Doporučená délka je 140 znaků,
- Např. DokuWiki pro projekty eduID.cz, eduroam.cz a CESNET PKI.
PrivacyStatementURL
- URL adresa k dokumentu se zásady ochrany osobních informací. Dokument musí být přístupný bez nutnosti jakékoliv autentizace.
- Je vhodné použít následující šablonu.
- Element
AttributeConsumingService
se seznam vyžadovaných atributů.- Je-li vyžadovaná nějaká specifická hodnota, měl by být použit element
AttributeValue
. - Pokud služba v metadatech nemá žádný element
RequestedAttribute
, má se za to, že služba nepotřebuje žádné atributy. - Služba musí požadovat minimální množství atributů nutných pro poskytování služby.
- Vyžadované atributy mají mít v elementu
RequestedAttribute
atributisRequired=„true“
. - Seznam vyžadovaných atributů v metadatech musí být stejný jako seznam zpracovávaných atributů v dokumentu odkazovaném v
PrivacyStatementURL
.
- Element
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>
IdP
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>
3. Zařazení do kategorie CoCo
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.