Pseudoidentifikátor, který obsahuje „scope“ organizace (scoped), není očividně svázán s konkrétním uživatelem (opaque), je nepřenositelný na jiného uživatele (not reassignable) a je cílený na jednu službu (targeted).
Popis vlastností naleznete na wiki Shibbolethu.
NQ4VOTLQJFDHM32BKZHUMWCVFNAUCMSE@example.org
Určený jako náhrada za zastaralé identifikátory jako eduPersonTargetedID a SAML 2.0 persistentní NameID z důvodu jejich problémů s velikostí písmen a také implementační komplexitou.
Hodnoty atributů algorithm a encoding v elementu <DataConnector>
se berou z conf/saml-nameid.properties, hodnota salt se bere z credentials/secrets.properties.
S výhodou zde využíváme atributu unstructuredName jako vstupní hodnotu pro výpočet atributu pairwise-id.
Bylo by možné (podobně jako v případě eduPersonTargetedID/persistentního NameID) ukládat vypočítané hodnoty do databáze. S databází vypočítaných identifikátorů je pak možné dělat užitečné ale i nevhodné věci, jako např. recyklovat atribut, který se recyklovat nesmí.
Doporučujeme tedy identifikátory spíše počítat při každém přihlášení uživatele a být tak nucen neměnitelné atributy opravdu nikdy neměnit.
<AttributeDefinition xsi:type="Scoped" id="samlPairwiseID" scope="%{idp.scope}"> <InputDataConnector ref="computed" attributeNames="computedId"/> </AttributeDefinition> <DataConnector id="computed" xsi:type="ComputedId" excludeResolutionPhases="c14n/attribute" generatedAttributeID="computedId" salt="%{idp.persistentId.salt}" algorithm="%{idp.persistentId.algorithm:SHA}" encoding="%{idp.persistentId.encoding:BASE32}"> <InputAttributeDefinition ref="unstructuredName"/> </DataConnector>