Obsah

pairwise-id

Definice

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.

Podrobné informace na wiki OASIS.

Kódování

Příklad

NQ4VOTLQJFDHM32BKZHUMWCVFNAUCMSE@example.org

Poznámka

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>