====== eduPersonUniqueId ====== **Atribut //eduPersonUniqueId// od 1. ledna 2017 patří mezi vyžadované atributy a některé služby ve federaci //eduID.cz// (např. datová úložiště CESNETu) tento atribut vyžadují a nebudou bez něj fungovat.** ---- ===== Definice ===== **Jednoznačný, dlouhotrvající, neměnný a __nikdy nerecyklovatelný__ identifikátor** osoby v rámci federace. Použitelný jako hlavní identifikátor nebo jako unikátní externí klíč. Má tvar "identifikátor@doména". Doménou se rozumí administrativní doména domovské organizace osoby. Znak "@" tvoří oddělovač dvou částí identifikátoru. Část vlevo od oddělovače tvoří identifikátor v rámci domény, pravá část potom označuje doménu. //Jedná se tedy o atribut, který smí mít pouze jednu hodnotu!// **Jsou povoleny pouze alfanumerické znaky (a-z, A-Z, 0-9).** Podrobné [[http://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201602.html#eduPersonUniqueId|informace]] na stránkách komunity [[http://www.internet2.edu/|Internet2]]. ===== Kódování ===== * SAML2: urn:oid:1.3.6.1.4.1.5923.1.1.1.13 ===== Příklad ===== 89645@example.org ===== Implementace ===== Ideální je tento identifikátor: * generovat náhodně (//sledovat však možné kolize!//), nebo * automaticky inkrementovat z nějaké počáteční hodnoty a **ukládat do databáze**, abyste zajistili jeho nerecyklovatelnost a jedinečnost. Dotyčnou databázi pečlivě zálohujte, abyste o identifikátory nepřišli. V žádném případě **nedoporučujeme** tento identifikátor **vypočítávat** (např. MD5/SHA hash) na IdP **bez následného uložení do databáze**! Tím se v podstatě dostáváme do situace jako jsme nyní s [[cs:tech:attributes:edupersonprincipalname]], které se na některých organizacích recykluje. Identifikátor je nutné ukládat do databáze (//ideálně jako další uživatelský atribut v LDAP/AD//). Pokud máte ve svém IdM licenci podle počtu uživatelských záznamů, musíte vlastními silami zařídit, že jednou přiřazený identifikátor již nikdy nedostane nikdo jiný. Dále musíte implementovat mechanizmy, které zajistí, že se po případné změně uživatelského jména nezmění tento identifikátor. Pokud pro tento atribut chcete použít např. číslo zaměstnance z organizační databáze, zvažte, zda nemůže dojít ke změně tohoto čísla. Úplně nový uživatelský atribut může při prvotní implementaci přinést spoustu práce, avšak bude-li to atribut, který budete moci ovládat pouze vy, vyhnete se v budoucnu potenciálním problémům. Část před symbolem "@" smí mít maximálně 64 znaků. ==== Máte-li atribut unstructuredName ==== Využíváte-li službu [[https://tcs.cesnet.cz|TCS]] pro vydávání [[https://pki.cesnet.cz/cs/tcs-personal.html|osobních certifikátů]], máte v IdP podporu pro atribut [[https://pki.cesnet.cz/cs/tcs-admin.html#unstructuredname|unstructuredName]], který lze s výhodou použít pro vytvoření atributu eduPersonUniqueId, pokud za jeho hodnotu přidáte ještě "scope" (doménu) organizace. V ''/opt/shibboleth-idp/conf/attribute-resolver.xml'' je tedy nutno doplnit definici atributu: Unikátní, neměnný identifikátor uživatele Unique life-time persistent user identifier Pak již jen zbývá v ''/opt/shibboleth-idp/conf/attribute-filter.xml'' doplnit uvolňování tohoto atributu pro entity z federace eduID.cz: === Máte-li atribut unstructuredName již "scopovaný" === __Přidáváte-li scope organizace do hodnoty atributu unstructuredName__ (např. 4530@cesnet.cz, 9m97p2whJ@example.org, ...), což je sice nevhodné, nicméně tolerovatelné, __je nežádoucí, abyste scope přidávali ještě jednou do atributu eduPersonUniqueId__. Hodnoty jako 4530@cesnet.cz@cesnet.cz nebo 9m97p2whJ@example.org@example.org by neodpovídaly požadavku na formát identifikátor@doména a působily by zmatečně. Pokud jste již vydali větší množství osobních certifikátů TCS se scopovaným atributem unstructuredName a začali je aktivně používat, nedoporučujeme v atributu unstructuredName provádět změny a scope odebírat -- může to způsobit zbytečné komplikace. ==== Nemáte-li atribut unstructuredName ==== Pokud nemáte atribut unstructuredName, zbývají dvě možnosti: * atribut implementovat, nebo * najít jiný atribut z organizace, který budete moci pro eduPersonUniqueId použít. Získáte tím navíc technickou způsobilost pro žádání o [[https://pki.cesnet.cz/cs/ch-tcs-p-crt-crl.html|osobní TCS certifikáty]]. ===== Poznámka ===== **Hodnota před symbolem zavináč smí obsahovat pouze malá a velká písmena bez diakritiky a číslice!** Tento identifikátor slouží jako //lepší// náhrada za atribut [[cs:tech:attributes:edupersonprincipalname]], který je sice jednoznačný v rámci federace, ale může (i když to **nedoporučujeme**) dojít k jeho recyklování a to zejména u organizací s velkým počtem uživatelů a jejich fluktuací (např. univerzity).