<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Dear All,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">How do I get <span style="font-size:10.0pt;font-family:"Courier New"">
eduPersonTargetedID the same as the NameID?</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:black">My Shibboleth v2 gives<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black"><saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" NameQualifier="https://shibboleth.imperial.ac.uk/shibboleth" SPNameQualifier="https://icsamlsdp.cc.ic.ac.uk/simplesaml/module.php/saml/sp/metadata.php/shibboleth"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">                  s8xD6YLaw8o9ljgBli/XzUlxsZw=</saml2:NameID><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black"><saml2:Attribute FriendlyName="eduPersonTargetedID" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">         <saml2:AttributeValue><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">            <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" NameQualifier="https://shibboleth.imperial.ac.uk/shibboleth" SPNameQualifier="https://icsamlsdp.cc.ic.ac.uk/simplesaml/module.php/saml/sp/metadata.php/shibboleth">s8xD6YLaw8o9ljgBli/XzUlxsZw=</saml2:NameID><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">         </saml2:AttributeValue><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My Shibboleth v3 gives<span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<pre>                       <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"<o:p></o:p></pre>
<pre>                                                            NameQualifier="https://shibboleth.imperial.ac.uk/shibboleth"<o:p></o:p></pre>
<pre>                                                            SPNameQualifier="https://icsamlsdp.cc.ic.ac.uk/simplesaml/module.php/saml/sp/metadata.php/shibboleth"<o:p></o:p></pre>
<pre>                                                            >s8xD6YLaw8o9ljgBli/XzUlxsZw=</saml2:NameID><o:p></o:p></pre>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">                       <saml2:Attribute FriendlyName="eduPersonTargetedID"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">                                                               Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">                                                               NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">                                                               ><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">                                                             <saml2:AttributeValue>YluupYx32fmN2/5XFOwXvZAO1zU=</saml2:AttributeValue><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">                                              </saml2:Attribute><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">On Shibboleth v2 I have <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black"><resolver:AttributeDefinition xsi:type="Simple" id="persistentId" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="computedID"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">        <resolver:Dependency ref="computedID" /><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">                <resolver:AttributeEncoder xsi:type="SAML1StringNameIdentifier" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
 /><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">                <resolver:AttributeEncoder xsi:type="SAML2StringNameID" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
 /><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black"></resolver:AttributeDefinition><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">    <resolver:AttributeDefinition xsi:type="ad:SAML2NameID" id="eduPersonTargetedID"
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">                                  nameIdFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" sourceAttributeID="computedID"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">        <resolver:Dependency ref="computedID" /><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">        <resolver:AttributeEncoder xsi:type="enc:SAML1XMLObject" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" /><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">        <resolver:AttributeEncoder xsi:type="enc:SAML2XMLObject" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" friendlyName="eduPersonTargetedID" /><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">    </resolver:AttributeDefinition><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">    <resolver:DataConnector xsi:type="dc:ComputedId"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">                            id="computedID"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">                            generatedAttributeID="computedID"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">                            sourceAttributeID="eduPersonPrincipalName"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">                            salt="alllowercaseletters"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="color:black">        <resolver:Dependency ref="myLDAP" /><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">    </resolver:DataConnector></span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">ON Shibboleth v3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">In saml-nameid.properties<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">idp.persistentId.sourceAttribute = eduPersonPrincipalName<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">#idp.persistentId.useUnfilteredAttributes = true<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"># Do *NOT* share the salt with other people, it's like divulging your private key.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">#idp.persistentId.algorithm = SHA<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">idp.persistentId.salt = imperialcollegelondon<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"># BASE64 will match V2 values, we recommend BASE32 encoding for new installs.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">idp.persistentId.encoding = BASE64<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"># To use a database, use shibboleth.StoredPersistentIdGenerator<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">idp.persistentId.generator = shibboleth.ComputedPersistentIdGenerator<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">In saml-nameid<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">    <!-- SAML 2 NameID Generation --><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">    <util:list id="shibboleth.SAML2NameIDGenerators"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">   <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">        <ref bean="shibboleth.SAML2TransientGenerator" /><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">       <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">        <!-- Uncommenting this bean requires configuration in saml-nameid.properties. --><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">        <ref bean="shibboleth.SAML2PersistentGenerator" /><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">        <bean parent="shibboleth.SAML2AttributeSourcedGenerator"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">            p:omitQualifiers="true"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">            p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">            p:attributeSourceIds="#{ {'computedID'} }" /><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">               <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">    </util:list><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">And in attribute-resolver.xml<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">    <AttributeDefinition id="eduPersonTargetedID" xsi:type="Simple"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">        <InputDataConnector ref="ComputedIDConnector" attributeNames="ComputedID" /><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">        <AttributeEncoder xsi:type="SAML1String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" encodeType="false" /><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">        <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" friendlyName="eduPersonTargetedID" encodeType="false" /><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">    </AttributeDefinition><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><DataConnector id="ComputedIDConnector" xsi:type="ComputedId"
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">    generatedAttributeID="ComputedID"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">    salt="</span><span style="color:black">alllowercaseletters</span><span style="color:black">"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">   <InputDataConnector ref="myLDAP" attributeNames="</span><span style="color:black">eduPersonPrincipalName</span><span style="color:black">" /><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"></DataConnector><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">Neil McLennan<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Imperial College London<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
</body>
</html>