<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="">MITREid Connect contains a functional UMA server component, which is even past what we demoed at HIMSS earlier this year. This is slated to be released in version 1.2, which just had its first Release Candidate last week. (A release candidate means the full 1.2 release is relatively imminent.) The only gap (and it’s a major one) is that Bob currently needs to have an account on the server to get the AAT. Ideally this would be filtered through an external login, allowing Bob to do a plain OAuth transaction to get the AAT to his client, but at the moment that’s not possible in the MITREid Codebase. I’m hoping that it’s a matter of configuration more than anything, but I haven’t done the deep investigation of that yet and it’s going to require some pretty hefty Spring Security voodoo. Apart from that, everything else works as far as I know, but it’s only been tested against custom-coded clients that were pointing only to MITREid.<div class=""><br class=""></div><div class="">It’s from hands-on coding this server and interacting with the developers of the clients and protected resources during the demo that I’m speaking from with regard to the differences between OAuth and UMA on the wire as a protocol. They really aren’t the same. UMA uses OAuth, but it isn’t “OAuth with a couple extra things”. This is in contrast to OIDC, which really is “OAuth with a couple extra things” since the transactions are fundamentally the same.</div><div class=""><br class=""></div><div class=""> — Justin<br class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 12, 2015, at 10:12 PM, Adrian Gropper <<a href="mailto:agropper@healthurl.com" class="">agropper@healthurl.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div dir="ltr" class=""><div class=""><div class=""><div class="">Justin,<br class=""><br class=""></div>How far long is the UMA addition to MITREid Connect right now? Would it make sense for us to design the absolutely simplest possible demo of UMA around the most trivial use case we can think of as a way of getting everyone on the same page?<br class=""><br class=""></div>I'm volunteering to help with the design, documentation, and management of such a demo. I might code C or Python but I doubt that would help. <br class=""><br class=""></div>Adrian<br class=""></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Sun, Jul 12, 2015 at 8:48 PM, Debbie Bucci <span dir="ltr" class=""><<a href="mailto:debbucci@gmail.com" target="_blank" class="">debbucci@gmail.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr" class="">It does make sense and  I can at least *see* your perspective.   Not quite covinced the gap are that wide and/or that adjust couldn't be made as we move to pilot implementations.    </p><p dir="ltr" class="">Side by side ... is closer.<br class=""></p><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On Jul 12, 2015 8:05 PM, "Justin Richer" <<a href="mailto:jricher@mit.edu" target="_blank" class="">jricher@mit.edu</a>> wrote:<br type="attribution" class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000" class="">
    An OIDC client and an OAuth client are after different things,
    though. OIDC is an authentication and identity protocol, OAuth is
    neither. An OIDC client is going to specifically be looking for the
    id_token and specifically asking for the 'openid' scope in order to
    get it. The mechanics on the wire, on the other hand, are nearly
    identical between the two, since an OIDC transaction really is just
    an OAuth transaction with a couple of special inputs (the 'openid'
    scope) and outputs (the 'id_token' in the token response). You can
    pretty easily build an OIDC client on top of an OAuth client.<br class="">
    <br class="">
    However, it's just not the same with UMA and OAuth (or OIDC). Think
    of it in terms of software: if I have an UMA client and I try to
    make it talk to a plain OAuth RS, it's going to have no idea what to
    do. Same goes the other way around. It's not a matter of "just a
    couple more redirects", since those redirects define a completely
    different protocol and require different code paths. If you're very,
    very careful you can have them side by side, and that's the best
    that we can work for in HEART in my opinion. But that doesn't mean
    we should try to figure out what both UMA and OAuth look like for
    every single use case. Especially when considering you can do AS
    introduction to both the client and RS outside of UMA (mostly --
    we'll need to paste over some protocol gaps but it's all doable).<br class="">
    <br class="">
    And finally, in UMA 1.0, it's the RS that actually needs to know
    which scopes to give for a transaction. The user and client have no
    way of telling the RS which scopes they want, the RS just has to
    guess correctly and attach those to a ticket. The client in UMA is
    supposed to just take the ticket and let the AS figure out what to
    do with it. <br class="">
    <br class="">
    Hope this makes sense,<br class="">
     -- Justin<br class="">
    <br class="">
    <div class="">On 7/12/2015 7:57 PM, Debbie Bucci
      wrote:<br class="">
    </div>
    <blockquote type="cite" class="">
      
      <div dir="ltr" class="">
        <div class="">
          <div class="">
            <div class="">
              <div class="">>>> Unfortunately, there's no "is_alice"
                flag in the protocol stack that we can count on. <br class="">
                <br class="">
              </div>
              Maybe there should be.   How does a client know its an
              OIDC client .... the presence of the id_token?   An OAUTH
              client needs direct the resource owner (assumed Alice?) 
              to get a token on its behalf by somehow knowing what the
              authorization endpoint is  ... typically done via the RO
              user agent and the redirect URI is/are given.  In the
              delegated flow ... Alice is not around ... could that be a
              trigger?   Bob (delegate) will need to have a pre arranged
              relationship with the authorization server in some way or
              manner.   <br class="">
              <br class="">
              <br class="">
              >>>An UMA client needs to be able to be pointed
              to an AS, take in a ticket (as a JSON value, regardless of
              what encoding the API it's speaking to uses), talk to the
              "requesting party" endpoint to trade the ticket for a
              token, and then it needs to be able to gather the claims
              that the AS gives it hints for. As Eve keeps pointing out,
              those claims could be absolutely anything, fulfilled by
              the client or by someone else or just because it's
              Tuesday, so the client is really going to need to be
              written to a very specific profile of UMA for it to have
              any chance of doing something useful. Then it needs to
              come back with the ticket, again, and try to get a token,
              potentially repeating the claims gathering cycle if it
              guessed wrong on the last step. <br class="">
              <br class="">
            </div>
            I believe you just [primarily] explained the *on the wire*
            on the ATT flow (thank you!).   <br class="">
          </div>
        </div>
        <div class="">Following the flow ... it seems the burden is on the
          Requesting party to understand what claims the AS hints for -
          not the client. <br class="">
        </div>
        <div class=""><br class="">
        </div>
        I may be naive but does a client really know how many redirects
        occurs until its has an access token?<br class="">
        <br class="">
        <div class="">
          <div class="">
            <div class="">
              <div class="">
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <div class=""><br class="">
                      <br class="">
                       </div>
                    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                      <div bgcolor="#FFFFFF" text="#000000" class="">
                        <div class="">
                          <div class="">
                            <div class="">
                              <div class="">
                                <div class="">
                                  <div class="">
                                    <div class="">
                                      <div class="">
                                        <div class="">
                                          <div class="">
                                            <blockquote style="border-width:medium medium medium 1pt;border-style:none none none solid;border-color:-moz-use-text-color -moz-use-text-color -moz-use-text-color rgb(204,204,204);padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt" class="">
                                              <div class="">
                                                <div class="">
                                                  <div class="">
                                                    <div class="">
                                                      <div class="">
                                                        <div class="">
                                                          <table style="width:670.45pt;margin-left:5.4pt" width="1117" border="0" cellpadding="0" cellspacing="3" class="">
                                                          <tbody class="">
                                                          <tr style="height:26.25pt" class="">
                                                          <td style="padding:0.75pt;height:26.25pt" class=""><div style="margin-bottom: 6.7pt; text-align: right;" class=""><span style="font-family:"Arial","sans-serif"" class=""> </span><br class="webkit-block-placeholder"></div>
                                                          </td>
                                                          <td style="padding:0.75pt;height:26.25pt" class=""><br class="">
                                                          </td>
                                                          </tr>
                                                          </tbody>
                                                          </table>
                                                        </div>
                                                      </div>
                                                    </div>
                                                  </div>
                                                </div>
                                              </div>
                                            </blockquote>
                                          </div>
                                        </div>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </blockquote>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br class="">
  </div>

</blockquote></div>
</div></div><br class="">_______________________________________________<br class="">
Openid-specs-heart mailing list<br class="">
<a href="mailto:Openid-specs-heart@lists.openid.net" class="">Openid-specs-heart@lists.openid.net</a><br class="">
<a href="http://lists.openid.net/mailman/listinfo/openid-specs-heart" rel="noreferrer" target="_blank" class="">http://lists.openid.net/mailman/listinfo/openid-specs-heart</a><br class="">
<br class=""></blockquote></div><br class=""><br clear="all" class=""><br class="">-- <br class=""><div class="gmail_signature"><div dir="ltr" class="">Adrian Gropper MD<span style="font-size:11pt" class=""></span><font size="1" class=""><br class=""><font size="2" class="">Ensure Health Information Privacy. Support Patient Privacy Rights.<br class=""></font></font><span style="font-size:11pt" class=""><font size="1" class=""></font></span><font size="2" class=""><a href="http://patientprivacyrights.org/donate-2/" target="_blank" class=""><font color="blue" class=""><u class="">http://patientprivacyrights.org/donate-2/</u></font></a><font color="blue" class=""><u class="">  </u></font></font><span style="font-size:11pt" class=""></span><span style="font-size:11pt" class=""></span><span style="font-size:11pt" class=""><font size="1" class=""> <br class=""></font><div class=""></div></span><br class=""></div></div>
</div>
</div></blockquote></div><br class=""></div></div></body></html>