<div dir="ltr"><div><div>Thanks for your quick answer.<br></div>I&#39;ll try to upgrade to 1.2.0 ASAP to prevent 403 errors or the need to synchronize scopes between the client and resource server.<br><br></div>Y.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 3, 2015 at 10:55 PM, Justin Richer <span dir="ltr">&lt;<a href="mailto:jricher@mit.edu" target="_blank">jricher@mit.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">That is the correct setup — B is the resource server. We re-used the “client” system in MITREid because it already had all of the attributes that we cared about for resource servers and it didn’t make sense to duplicate it. <div><br></div><div>The resource server checks the access token when the client presents the access token to the resource server. The resource server simply picks the token up off of the incoming request and sends it to the introspection endpoint, along with the resource server’s credentials. The response that comes back contains the scopes for the token, among other things. The resource server can then decide what it wants to do with that.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div> — Justin</div></font></span><div><div class="h5"><div><br><div><blockquote type="cite"><div>On Sep 3, 2015, at 4:30 PM, Yannick Béot &lt;<a href="mailto:yannick.beot@gmail.com" target="_blank">yannick.beot@gmail.com</a>&gt; wrote:</div><br><div><div dir="ltr"><div><div><div><div><div><div><div><div>Hi,<br><br></div>Thanks Justin for the explanation. I just ran into the same issue and I could not figure what was wrong...<br></div>However, I&#39;m probably missing something.<br></div>How a resource server is supposed to check the access token and get the scope?<br></div>In order for my RS to query the introspection endpoint, I create a specific client.<br></div>Therefore, I have the client A, a single page app for instance, and a client B, the resource server.<br></div>My single page app is requesting an access token to MITREid and send it to B in REST query. B is using its own credential to query the introspection endpoint and validate the access token.<br><br></div>What do you think?<br><br></div>Yannick<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 27, 2015 at 12:48 PM, Justin Richer <span dir="ltr">&lt;<a href="mailto:jricher@mit.edu" target="_blank">jricher@mit.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    The rationale behind this functionality is that you don&#39;t want to
    inadvertently leak information to a protected resource about the
    overall reach of a token if the token is usable beyond that
    particular protected resource. Let&#39;s say I have two resources, &quot;A&quot;
    and &quot;B&quot;, and they have associated scopes, &quot;a&quot; and &quot;b&quot;. If the client
    gets a token with scope &quot;a b&quot; and plays it at &quot;A&quot;, we might not want
    &quot;A&quot; to inadvertently discover that the token could also be used at
    &quot;B&quot;.<br>
    <br>
    I would not recommend removing the check entirely, <i>however</i>:
    the behavior has changed in version <b>1.2.0</b> such that the
    server doesn&#39;t return an error anymore, but instead returns only the
    scopes associated with the protected resource. In the scenario
    above, when &quot;A&quot; introspects the token with &quot;a b&quot;, it gets back a
    response that only includes &quot;a&quot; in the scope field, while &quot;B&quot; would
    get back a response that only includes &quot;b&quot; in the scope field of the
    same token.<br>
    <br>
     -- Justin<div><div><br>
    <br>
    <div>On 8/27/2015 4:12 AM, Zaninetta Stefano
      wrote:<br>
    </div>
    </div></div><blockquote type="cite"><div><div>
      
      
      <div style="direction:ltr;font-family:Tahoma;font-size:10pt">Hello,<br>
        <br>
        I noticed that the Introspection endpoint is returning 403 if
        the introspecting client configuration doesn&#39;t include all the
        scopes associated with the introspected token.<br>
        (<a href="https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/blob/mitreid-connect-1.1.15/openid-connect-server/src/main/java/org/mitre/oauth2/web/IntrospectionEndpoint.java#L130" target="_blank">https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/blob/mitreid-connect-1.1.15/openid-connect-server/src/main/java/org/mitre/oauth2/web/IntrospectionEndpoint.java#L130</a>)<br>
        <br>
        I don&#39;t understand what is the reason of for that check and I
        couldn&#39;t find such recommendation in the latest specs
        (<a href="https://tools.ietf.org/html/draft-ietf-oauth-introspection-11" target="_blank">https://tools.ietf.org/html/draft-ietf-oauth-introspection-11</a>).<br>
        Could anyone explain me what is the rationale behind that?<br>
        <br>
        At the moment the workaround we adopted is to configure all the
        available scopes for all the clients used by the Protected
        Resources; that is equivalent to skip the check.<br>
        Hence, I was considering removing it from the code, but I want
        to be sure I&#39;m not missing any security implication.<br>
        <br>
        Thanks a lot,<br>
        Stefano<br>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
mitreid-connect mailing list
<a href="mailto:mitreid-connect@mit.edu" target="_blank">mitreid-connect@mit.edu</a>
<a href="http://mailman.mit.edu/mailman/listinfo/mitreid-connect" target="_blank">http://mailman.mit.edu/mailman/listinfo/mitreid-connect</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
mitreid-connect mailing list<br>
<a href="mailto:mitreid-connect@mit.edu" target="_blank">mitreid-connect@mit.edu</a><br>
<a href="http://mailman.mit.edu/mailman/listinfo/mitreid-connect" rel="noreferrer" target="_blank">http://mailman.mit.edu/mailman/listinfo/mitreid-connect</a><br>
<br></blockquote></div><br></div>
</div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>