EduPersonTargetedId

Peter Schober peter.schober at univie.ac.at
Tue Jan 16 09:28:34 EST 2018


* Cantor, Scott <cantor.2 at osu.edu> [2018-01-15 23:31]:
> The standard pairwise ID for SAML is a new SAML Attribute that's
> going through a final round of edits and review early this
> year. eduPersonTargetedID is dead and persistent NameIDs (and all
> NameIDs period) are dead. From a best practice perspective anyway.

What are the plans for the IDP to produce those identifiers easily?

For subject-id it's easy with a script, e.g. I've been creating
eduPersonUniqueIDs from the properties for SAML NameIDs in
conf/saml-nameid.properties, and it's trivial to reassert that as
subject-id attribute:

  <!-- Re-use sourceAttr and salt from persistentId definition from conf/saml-nameid.properties -->
  <AttributeDefinition id="eduPersonUniqueId" xsi:type="ScriptedAttribute">
    <Dependency ref="myLDAP" />
    <DisplayName xml:lang="en">Opaque user identifier</DisplayName>
    <Script><![CDATA[
      var scopedValue = Java.type("net.shibboleth.idp.attribute.ScopedStringAttributeValue");
      var digestUtils = Java.type("org.apache.commons.codec.digest.DigestUtils");
      var idSaltHash  = digestUtils.sha256Hex(%{idp.persistentId.sourceAttribute}.getValues().get(0) + "%{idp.persistentId.salt}");
      eduPersonUniqueId.addValue(new scopedValue(idSaltHash,"%{idp.scope}"));
    ]]></Script>
    <AttributeEncoder xsi:type="SAML1ScopedString" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.13" encodeType="false" />
    <AttributeEncoder xsi:type="SAML2ScopedString" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.13" friendlyName="eduPersonUniqueId" encodeType="false" />
  </AttributeDefinition>

  <!-- Re-assert ePUID as SAML SubjectID -->
  <AttributeDefinition id="SubjectID" xsi:type="Scoped" scope="%{idp.scope}" sourceAttributeID="eduPersonUniqueId">
    <Dependency ref="eduPersonUniqueId" />
    <DisplayName xml:lang="en">Opaque user identifier</DisplayName>
    <AttributeEncoder xsi:type="SAML1ScopedString" name="urn:oasis:names:tc:SAML:attribute:subject-id" encodeType="false" />
    <AttributeEncoder xsi:type="SAML2ScopedString" name="urn:oasis:names:tc:SAML:attribute:subject-id" friendlyName="SubjectID" encodeType="false" />
  </AttributeDefinition>

What are the plans wrt conf/saml-nameid.{properties,xml} going
forward, and the mechanisms to create for subject-id and for
pairwise-id from the IDP?
(At the IDP adding entries for subject-id and pairwise-id to both the
attribute-map.xml as well as the attribute-policy.xml (ScopingRules)
was trivial.)

I have not yet looked into creating pairwise-id as an attribute. I
guess it would look like the old ePTID attribute method plus a
ScopedString encoder, like the old "botched" targeted-id variant?

-peter


More information about the users mailing list