<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
A percentage of the clients we integrate with prefer to use one of their own custom attributes for user identification as opposed to using the EPPN. &nbsp;In order to abstract the burden of treating different attribute values as the user ID in our application, we
 decided to define every custom attribute with the same id and give preference to its usage over the EPPN; see example below.
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">&nbsp; &nbsp; &lt;!-- =========== Custom Client ID Attributes ========== --&gt;</div>
<div class=""><br class="">
</div>
<div class="">&nbsp; &nbsp; &lt;!-- university A --&gt;</div>
<div class="">&nbsp; &nbsp; &lt;Attribute name=&quot;urn:mace:university.edu:edimi:attributes:universityPPID&quot; id=&quot;custom-client-id&quot;&gt;</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;AttributeDecoder xsi:type=&quot;StringAttributeDecoder&quot; caseSensitive=&quot;false&quot;/&gt;</div>
<div class="">&nbsp; &nbsp; &lt;/Attribute&gt;</div>
<div class="">&nbsp; &nbsp; &lt;!-- university B --&gt;</div>
<div class="">&nbsp; &nbsp; &lt;Attribute name=&quot;urn:oid:0.9.2342.19200300.100.1.1&quot; id=&quot;custom-client-id&quot;/&gt;</div>
<div class="">&nbsp; &nbsp; &lt;!-- university C --&gt;</div>
<div class="">&nbsp; &nbsp; &lt;Attribute name=&quot;urn:oid:1.3.6.1.4.1.6464.1.1.1.2&quot; id=&quot;custom-client-id&quot;/&gt;</div>
<div class="">&nbsp; &nbsp; &lt;!-- university D --&gt;</div>
<div class="">&nbsp; &nbsp; &lt;Attribute name=&quot;urn:mace:dir:attribute-def:universityid&quot; id=&quot;custom-client-id&quot;/&gt;</div>
<div class="">&nbsp; &nbsp; &lt;Attribute name=&quot;urn:oid:1.3.6.1.4.1.14395.1.1.1.1.5&quot; &nbsp; id=&quot;custom-client-id&quot;/&gt;</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">We now realize that this approach will not work long-term and can cause us to potentially use the wrong attribute for identification when integrating with new IdPs (e.g. they release another, unrelated attribute with the same name as one of the
 attribute statements listed above) .</div>
<div class=""><br class="">
</div>
<div class="">That being said, the above approach of using the same “id” for all custom attributes will only work if we have a way to map/extract custom attributes based on the issuer (entityID). &nbsp;This will guarantee that one IdP does not see the “custom-client-id”
 of another. &nbsp;It looks like we can selectively PERMIT or DENY attribute propagation using an &quot;Attribute Filter Policy,” but that’s not what we’re looking for in this case.</div>
<div class=""><br class="">
</div>
<div class="">Is this at all possible or is it required (or even best-practice) to define each custom attribute with a unique “id” ?</div>
<div class=""><br class="">
<div apple-content-edited="true" class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<br class="">
</div>
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; font-style: normal;" class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<b class="">Sonny R Garcia</b></div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
IT Operations Lead | OrgSync, Inc.<br class="">
<a href="http://www.orgsync.com/" class="">www.orgsync.com</a></div>
</div>
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<br class="">
</div>
<br class="Apple-interchange-newline">
</div>
<br class="Apple-interchange-newline">
</div>
<br class="Apple-interchange-newline">
<br class="Apple-interchange-newline">
</div>
<br class="">
</div>
</div>
</body>
</html>