<p dir="ltr">Thanks Marek,</p>
<p dir="ltr">Service2 is more or less a service proxy which performs additional authz checks. So service1 can only access the oidc parts of keycloak but service2 has broader access...<br>
Benefit is that the action in Keycloak is performed with the Identity information of the initiating service1 user which is then logged accordingly in Keycloak.</p>
<p dir="ltr">Is this token exchange backed by a spec?</p>
<p dir="ltr">May I create a JIRA and a PR for my little extension?</p>
<p dir="ltr">Cheers,<br>
Thomas</p>
<br><div class="gmail_quote"><div dir="ltr">Marek Posolda &lt;<a href="mailto:mposolda@redhat.com">mposolda@redhat.com</a>&gt; schrieb am Mo., 8. Aug. 2016, 14:42:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>+1 to have support for scenario like
      this. <br>
      <br>
      One small disadvantage of your approach is, that service2 will use
      accessToken, which was issued to service1. It seems that more
      proper way might be to have service on Keycloak side, that will
      allow service2 to exchange the service1 token for it&#39;s own token.
      However that will likely require much more work though...<br>
      <br>
      Marek</div></div><div bgcolor="#FFFFFF" text="#000000"><div><br>
      <br>
      On 08/08/16 09:58, Thomas Darimont wrote:<br>
    </div></div><div bgcolor="#FFFFFF" text="#000000"><blockquote type="cite">
      <div dir="ltr">
        <div>Hello group,<br>
        </div>
        <div><br>
        </div>
        <div>I have the following scenario:</div>
        <div>1) A SSO authenticated User1 calls Service1 (confidential
          client).</div>
        <div>2) Service1 extracts access token.</div>
        <div>3) Service1 performs a remote call to Service2 passing the
          access token along.</div>
        <div>4) Service2 needs to do something in the name of User1 in
          Keycloak (e.g. set a user attribute, or create a new users)</div>
        <div>5) Service2 uses org.keycloak.admin.client.Keycloak to
          communicate with Keycloak<br>
        </div>
        <div>to perform the requested operation.</div>
        <div><br>
        </div>
        <div>I want to be able to propagate the access token in  </div>
        <div>Service to service calls and use the
          &#39;org.keycloak.admin.client.Keycloak&#39; client</div>
        <div>with the provided access token to perform an operation in
          Keycloak. </div>
        <div><br>
        </div>
        <div>Currently &#39;org.keycloak.admin.client.Keycloak&#39; only
          supports client credentials and / or password,</div>
        <div>which it uses to get an refresh token to renew a
          potentially timed out access token.</div>
        <div><br>
        </div>
        <div>As a PoC I slightly adjusted the Keycloak client to allow
          for externally provided access tokens:</div>
        <div><a href="https://gist.github.com/thomasdarimont/d82c4478df997556a9d16afb79787459" target="_blank">https://gist.github.com/thomasdarimont/d82c4478df997556a9d16afb79787459</a><br>
        </div>
        <div><br>
        </div>
        <div>I think the Keycloak Client should also support &quot;call once&quot;
          scenarios with a provided access token out of the box.</div>
        <div><br>
        </div>
        <div>Shall I create a JIRA for this?</div>
        <div><br>
        </div>
        <div>Cheers,</div>
        <div>Thomas   </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </blockquote></div><div bgcolor="#FFFFFF" text="#000000"><blockquote type="cite"><pre>_______________________________________________
keycloak-dev mailing list
<a href="mailto:keycloak-dev@lists.jboss.org" target="_blank">keycloak-dev@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a></pre>
    </blockquote>
    <br>
  </div>

</blockquote></div>