<div dir="ltr"><div class="gmail_extra">We're trying to stay away from it if we can.    I'd rather see the proxy interpret the client_id and convey required policy or LOA to the IDP, then the IDP having direct knowledge of all the RPs.    </div><div class="gmail_extra"><br></div><div class="gmail_extra">-cmort</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 21, 2015 at 5:08 PM, John Bradley <span dir="ltr"><<a href="mailto:ve7jtb@ve7jtb.com" target="_blank">ve7jtb@ve7jtb.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>I agree that perhaps it should be put as a configuration context hint to the IDP proxy. </div><div><br></div><div>Do you see a need for the IDP to know the identity of the original requester, or the RP to know the IDP?  </div><div><br></div><div>The specific use case that brought that up was the IDP wanting to apply different loa or max age based on the origin of the request given they normally set that by client_id. <br><br>Sent from my iPhone</div><div><div class="h5"><div><br>On May 21, 2015, at 8:56 PM, Chuck Mortimore <<a href="mailto:cmortimore@salesforce.com" target="_blank">cmortimore@salesforce.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">In our system, we've consciously kept RPs from hard coupling to a specific IDP, and consider it a bad practice.    <div><br></div><div>We do use something similar to domain hint, but in our case it specifies a particular configuration/context within the IDP proxy itself.     This context can be configured to point at 1 or more IDPs.     This indirection allows changing of policy and discovery overtime without impacting the RPs.    </div><div><br></div><div>Responding more directly, I will second what John said about not seeing IDPlists in the wild greater than 1, and second what Mike said about complexity.   No point replicating the complicated parts of SAML that no one appears to use.</div><div><br></div><div>-cmort</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 21, 2015 at 4:43 PM, Mike Jones <span dir="ltr"><<a href="mailto:Michael.Jones@microsoft.com" target="_blank">Michael.Jones@microsoft.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">WS-Fed “whr” and domain_hint appear to solve the 90+% case without any counts or lists and are used in practice.  Do we really need any of the rest of it? 
 (And if we do, shouldn’t we be representing act-as/on-behalf-of information with general-purpose JWT extensions to do that, rather than OAuth request parameters specific to this use case.)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">                                                            -- Mike<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> John Bradley [mailto:<a href="mailto:ve7jtb@ve7jtb.com" target="_blank">ve7jtb@ve7jtb.com</a>]
<br>
<b>Sent:</b> Thursday, May 21, 2015 3:55 PM<br>
<b>To:</b> Mike Jones<br>
<b>Cc:</b> Edmund Jay; <a href="mailto:openid-specs-ab@lists.openid.net" target="_blank">openid-specs-ab@lists.openid.net</a><br>
<b>Subject:</b> Re: [Openid-specs-ab] Spec call notes 18-May-15<u></u><u></u></span></p>
</div>
</div><div><div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">There are four things that SAML defines for proxies.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">1 <span style="font-size:10.0pt;font-family:"CourierNewPSMT","serif""><IDPList>
</span><span style="font-size:10.0pt;font-family:"ArialMT","serif"">[Optional] An advisory list of identity providers and associated information that the requester deems acceptable to respond to the request. </span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"ArialMT","serif"">That is a bit like domain_hint but multi valued as more than one hop is allowed.</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"ArialMT","serif"">Because there can be more than one hop </span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"ArialMT","serif"">2 </span><span style="font-size:10.0pt;font-family:"CourierNewPSMT","serif"">ProxyCount
</span><span style="font-size:10.0pt;font-family:"ArialMT","serif"">[Optional]</span><span style="font-size:8.0pt;font-family:"ArialMT","serif""> </span><span style="font-size:10.0pt;font-family:"ArialMT","serif"">Specifies the number of proxying indirections
 permissible between the identity provider that receives</span><u></u><u></u></p>
</div>
<div>
<div>
<div>
<ol start="2156" type="1">
<li class="MsoNormal">
<span style="font-size:10.0pt;font-family:"ArialMT","serif"">this </span><span style="font-size:10.0pt;font-family:"CourierNewPSMT","serif""><AuthnRequest>
</span><span style="font-size:10.0pt;font-family:"ArialMT","serif"">and the identity provider who ultimately authenticates the principal. A count of</span><u></u><u></u></li><li class="MsoNormal">
<span style="font-size:10.0pt;font-family:"ArialMT","serif"">zero permits no proxying, while omitting this attribute expresses no such restriction. </span><u></u><u></u></li></ol>
<div>
<p class="MsoNormal" style="margin-left:.5in">
<u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">
<u></u> <u></u></p>
</div>
</div>
</div>
</div>
<div>
<p class="MsoNormal">3 <span style="font-size:10.0pt;font-family:"CourierNewPSMT","serif""><RequesterID>
</span><span style="font-size:10.0pt;font-family:"ArialMT","serif"">[Zero or More]</span><u></u><u></u></p>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"ArialMT","serif"">Identifies the set of requesting entities on whose behalf the requester is acting. Used to communicate the chain of
 requesters when proxying occurs, as described in Section 3.4.1.5. See Section 8.3.6 for a description of entity identifiers. </span><u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">This identifies the original requester to the IdP.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"CourierNewPSMT","serif"">4 <AuthenticatingAuthority>
</span><span style="font-size:10.0pt;font-family:"ArialMT","serif"">[Zero or More]
</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"ArialMT","serif"">Zero or more unique identifiers of authentication authorities that were involved in the authentication of the principal
 (not including the assertion issuer, who is presumed to have been involved without being explicitly named here) </span><u></u><u></u></p>
</div>
</div>
</div>
</div>
<div>
<p class="MsoNormal">This identifies the IdP/proxys involved to the RP<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Now I have to admit that in the wild l have only seen IDPList used as a dingle element similar to domain_hint.   This is often used when you have a SP login triggered by a deep link that tells you the user is coming from some organization
 with a specific IdP in ah hub and spoke model.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I could live without proxy count if we limit domain_hint to one.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">It is useful for auditing and policy if you have the option of documenting the hops an assertion takes in each direction.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Those I would probably prefer as arrays.  <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">This is a first cut at what I was thinking <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">domain_hint:  “<a href="https://idp.example" target="_blank">https://idp.example</a>.com”<u></u><u></u></p>
<div>
<p class="MsoNormal"><span>                                   
</span>String, optional paramater sent by the client to a IdP proxy to indicate the idp that may be used to authenticate the user.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span>                                   
</span><u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">The requester_sequence <span style="font-family:"Verdana","sans-serif";background:white">Authentication Request parameter </span>indicates the authentication requesters prior to the client making the current request<span style="font-size:10.0pt;font-family:"Verdana","sans-serif";background:white">.
 It is represented as a JSON object containing an array of requester identifiers. </span><span style="font-family:"Verdana","sans-serif";background:white">The </span><tt><span style="color:#003366">requestor_sequence</span></tt><span style="font-family:"Verdana","sans-serif";background:white"> parameter
 value is represented in an OAuth 2.0 request as UTF-8 encoded JSON (which ends up being form-urlencoded when passed as an OAuth parameter). When used in a Request Object value, per </span><a href="http://openid.net/specs/openid-connect-core-1_0.html#RequestObject" target="_blank"><b><span style="font-family:"Verdana","sans-serif";color:#663333;text-decoration:none">Section 6.1</span></b></a><span style="font-family:"Verdana","sans-serif";background:white">,
 the JSON is used as the value of the </span><tt><span style="color:#003366">requester_sequence</span></tt><span style="font-family:"Verdana","sans-serif";background:white"> member.</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">requester_sequence: [ “client1”, “prox1” ]<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span>                                   
</span>Array,  each hop must add an identifier for the requester of authentication to the array.   The array is an ordered list with element 0 always identifying the initial origin of the authentication request.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span>                                   
</span>If there are two proxies then the second one would add the first proxy as element 1.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Connect Response<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">id_token member<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">“auth_sequence”: [“<a href="https://issuer.examle/" target="_blank">https://issuer.examle</a>.com”]<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">                         Optional array of strings containing one or more unique identifiers for the entities involved in authenticating the subject (not including the token issuer who is presumed to have been involved without being explicitly
 named in this element).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span>                                   
</span>Example, if the subject is authenticated by <a href="http://example.com/" target="_blank">example.com</a> and the response passes back to the client via a proxy, that proxy would add a element to the id_token it is issuing containing an array with one element containing
 the iss value contained in <span>                          
</span>the id_token it received.<u></u><u></u></p>
</div>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">So I think one of them overlaps with what MS is doing.  How do people feel about the others.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">The main problem is that without knowing who the originating client is the AS can’t tune defaults defaults for some things like max_age other than by grouping all the connections through the proxy together.  (The proxy could crate separate
 client_id for each downstream connection but that seems like overkill.)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">John B<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
</div>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On May 21, 2015, at 6:45 PM, Mike Jones <<a href="mailto:Michael.Jones@microsoft.com" target="_blank">Michael.Jones@microsoft.com</a>> wrote:<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Microsoft uses a parameter called domain_hint that allows the RP to specify a preferred IdP.  It’s modelled after the WS-Federation “whr” parameter.</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">It’s mentioned at<span> </span><a href="https://msdn.microsoft.com/en-us/library/azure/dn645542.aspx" target="_blank"><span style="color:purple">https://msdn.microsoft.com/en-us/library/azure/dn645542.aspx</span></a>,
 where its description is:</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
</div>
<table border="0" cellspacing="3" cellpadding="0">
<tbody>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt"></td>
</tr>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<div>
<p class="MsoNormal"><i>domain_hint</i><u></u><u></u></p>
</div>
</td>
<td style="padding:.75pt .75pt .75pt .75pt">
<div>
<p class="MsoNormal">[Optional] Provides a hint about the tenant or domain that the user should use to sign in. The value of the<i>domain_hint</i><span> </span>is a registered domain for the tenant. If the tenant is federated to
 an on-premises directory, AAD redirects to the specified tenant federation server.<u></u><u></u></p>
</div>
</td>
</tr>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt"></td>
<td style="padding:.75pt .75pt .75pt .75pt"></td>
</tr>
</tbody>
</table>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">If that will do the job, maybe we can write a mini-spec to standardize that.</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">                                                            -- Mike</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
</div>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<div>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span></span><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Openid-specs-ab
 [<a href="mailto:openid-specs-ab-bounces@lists.openid.net" target="_blank">mailto:openid-specs-ab-bounces@lists.openid.net</a>]<span> </span><b>On Behalf Of<span> </span></b>Edmund Jay<br>
<b>Sent:</b><span> </span>Monday, May 18, 2015 5:10 PM<br>
<b>To:</b><span> </span><a href="mailto:openid-specs-ab@lists.openid.net" target="_blank">openid-specs-ab@lists.openid.net</a><br>
<b>Subject:</b><span> </span>[Openid-specs-ab] Spec call notes 18-May-15</span><u></u><u></u></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"">Spec call notes 18-May-15</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"">John Bradley</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"">Nat Sakimura</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Segoe UI","sans-serif"">Edmund Jay</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif"">- Discussed the need for extension spec for supporting proxies in enterprise scenarios.</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif"">- RP Certification Testing</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> Nothing new has been discussed.</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica","sans-serif""> </span><u></u><u></u></p>
</div>
</div>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica","sans-serif"">_______________________________________________<br>
Openid-specs-ab mailing list<br>
<a href="mailto:Openid-specs-ab@lists.openid.net" target="_blank">Openid-specs-ab@lists.openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-specs-ab" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a></span><u></u><u></u></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></div></div>
</div>

<br>_______________________________________________<br>
Openid-specs-ab mailing list<br>
<a href="mailto:Openid-specs-ab@lists.openid.net" target="_blank">Openid-specs-ab@lists.openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-specs-ab" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a><br>
<br></blockquote></div><br></div>
</div></blockquote></div></div></div></blockquote></div><br></div></div>