[Openid-specs-heart] Flip the question of “Vanilla" OAuth vs. UMA
Justin Richer
jricher at mit.edu
Mon Jul 13 00:05:49 UTC 2015
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.
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).
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.
Hope this makes sense,
-- Justin
On 7/12/2015 7:57 PM, Debbie Bucci wrote:
> >>> Unfortunately, there's no "is_alice" flag in the protocol stack
> that we can count on.
>
> 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.
>
>
> >>>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.
>
> I believe you just [primarily] explained the *on the wire* on the ATT
> flow (thank you!).
> Following the flow ... it seems the burden is on the Requesting party
> to understand what claims the AS hints for - not the client.
>
> I may be naive but does a client really know how many redirects occurs
> until its has an access token?
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-heart/attachments/20150712/b7bdc8db/attachment.html>
More information about the Openid-specs-heart
mailing list