forCanonicalization and attribute resolution

Nate Klingenstein ndk at signet.id
Wed Oct 28 18:52:26 UTC 2020


All,

This had me tied up in knots for days until I guessed at the eventual solution and wanted to verify that I came out with the correct answer.

I'm trying to take ePPN and use it both for Subject canonicalization and also encode the proxied version as an attribute.  With a single AttributeDefinition with forCanonicalization="true", I was unable to get the value to be sent as an attribute as well.

However, if I create a second, identical proxied ePPN AttributeDefinition(with an encoder -- it did not matter whether I provided an encoder with forCanonicalization="true") with forCanonicalization="false", I'm able to get the value sent as an attribute as well as using it for c14n/Subject creation.

The final config in attribute-resolver.xml looked like:

    <AttributeDefinition id="authneppn" xsi:type="SubjectDerivedAttribute"
            forCanonicalization="true"
            principalAttributeName="eduPersonPrincipalName">
    </AttributeDefinition>

    <AttributeDefinition id="proxyeppn" xsi:type="SubjectDerivedAttribute"
            forCanonicalization="false"
            principalAttributeName="eduPersonPrincipalName">
                 <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.5" friendlyName="custom:id" encodeType="false" />
     </AttributeDefinition>

Is my interpretation of all of this correct?  If so, it's a bit confusing and counterintuitive at first, but makes sense if I think like code.

Take care,
Nate.

--------
Signet, Inc.
The Art of Access ®

https://www.signet.id




More information about the users mailing list