Obsah

subject-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 není cílený na jednu službu (non-targeted).

Popis vlastností naleznete na wiki Shibbolethu.

Podrobné informace na wiki OASIS.

Kódování

Příklad

2f0df90d9fed5683b6e6420415a04f7f13df87bbf3d7222cc7179ca953b5eade@example.org

Poznámka

Určený jako náhrada za zastaralé identifikátory jako eduPersonUniqueId a potenciálně i za eduPersonPrincipalName, čili tam, kde zobrazení hodnoty tohoto identifikátoru není důležité.

Hodnotu doporučuji získat jako hash z atributu unstructuredName kombinovaným se solí (idp.persistentId.salt v souboru credentials/secrets.properties) pro persistentní NameID a následně přidat „scope“.

<AttributeDefinition xsi:type="ScriptedAttribute" id="samlSubjectHash" dependencyOnly="true">
    <InputAttributeDefinition ref="unstructuredName"/>
    <Script>
        <![CDATA[
            if (typeof unstructuredName != "undefined" && unstructuredName != "null" && unstructuredName.getValues().size()) {
                var digestUtils = Java.type("org.apache.commons.codec.digest.DigestUtils");
                var saltedHash = digestUtils.sha256Hex(unstructuredName.getValues().get(0) + "%{idp.persistentId.salt}");
                samlSubjectHash.addValue(saltedHash);
            }
        ]]>
    </Script>
</AttributeDefinition>
 
<AttributeDefinition xsi:type="Scoped" id="samlSubjectID" scope="%{idp.scope}">
    <InputAttributeDefinition ref="samlSubjectHash"/>
</AttributeDefinition>