PersonImmutableID configuration

Peter Schober peter.schober at univie.ac.at
Thu Oct 8 07:51:01 UTC 2020


* Steve Herrera via users <users at shibboleth.net> [2020-10-07 22:23]:
> One is the attribute type that they require. They call it
> "PersonImmutableID". I have that being populated with the correct
> information Employee number as agreed upon but their side views it as null.
> Is there something I need to do to make that attribute immutable?

A name is just a name. AFAICT "PersonImmutableID" is just an
arbitrary, made-up name for an attribute, used by OneLogin and/or this
ADP SP you're trying to federate with.

> Here is how I have it defined in attribute-resolver.xml file:
> 
> <AttributeDefinition xsi:type="Simple" id="PersonImmutableID">
> 
>         <InputDataConnector ref="myLDAP" attributeNames="employeeNumber"/>
> 
>         <AttributeEncoder xsi:type="SAML1String" name=
> "urn:mace:dir:attribute-def:employeeNumber" />
> 
>         <AttributeEncoder xsi:type="SAML2String" name=
> "urn:oid:2.16.840.1.113730.3.1.3" friendlyName="employeeNumber" />
>     </AttributeDefinition>

Well, the only thing that says "PersonImmutableID" is the
internal-to-the-IDP "id" XML-attribute. All the encoders write into
the SAML are the standard attribute name for employeeNumber (in its
various name formats).
So better name this defintion id="employeeNumber", because that's what
it is.

If you already have such a definition you can remove this new one
here, as it will be identical in all respects except for the internal
id. Then add something like this to the existing id="employeeNumber"
attribute definition (assuming IDPv3), after the other encoders:

<AttributeEncoder xsi:type="SAML2String" name="PersonImmutableID"
  nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
  encodeType="false" relyingParties="ENTITYID_OF_THE_SP" />

Replace "ENTITYID_OF_THE_SP" with the entityID Of the ADP SP you're
trying to federate with.

> The second part is what they call the "Relay State" url. They provided a
> URL labeled Relay State but I'm not sure how to configure it.

https://wiki.shibboleth.net/confluence/display/IDP30/UnsolicitedSSOConfiguration
https://wiki.shibboleth.net/confluence/display/IDP4/UnsolicitedSSOConfiguration
"SAML 2.0" -> "target" -> "corresponds to RelayState in the SAML 2.0 protocol"

I.e., you add &target=THE_PROVIDED_URL_AT_THE_SP to your IDP-initated
URL, replacing "THE_PROVIDED_URL_AT_THE_SP" with the provided URL at
the SP.

> In my relying-party.xml, I have to configure a url that is labeled
> "Audience" That is what creates the handshake between them and
> us.

I don't know what exactly you did in your relying-party.xml but your
description makes no sense to me. Technical trust comes from
exchanging metadata (or its content exchanged another way). In
relying-party.xml you merely need to specify exceptional behaviour
(which seems to be the norm today, which is somewhat paradox).
Feel free to post an example for detailed review.

-peter


More information about the users mailing list