I disagree with this position and think it's vital to standardize a
return structure and a common set of return values -- and that this work
would be rather pointless without it. Mike, I think you might be
thinking in terms of introspection simply unpacking what's already
contained inside the token, and the AS doing the effort of unpacking
that for the RS. This is, after all, what used to be the case for the
now-defunct OpenID Connect "CheckID Endpoint". But what's really
happening here is this general pattern:
- The client passes the token to the RS. The client doesn't know or
care what's in the token or what it's used for, it just knows that it
can use the token at the RS.
- The RS gets the token and passes it along to the introspection
endpoint on the AS. The means by which the RS figures out where its AS
is is out of scope for this bit of work.
- The AS is looking at the token as passed in, (whether it's
structured like a JWT, a random UUID, an integer into a DB, whatever
deployment-specific bit you want) and figures out if the token is any
good and what it's for. The AS can do this in whatever
deployment-specific way it wants to: look up the token in a DB, unpack
the JWT and check the signature, decrypt the token's payload, whatever.
- The AS returns (in a standardized JSON object) a set of claims about
the token. While it's possible that these claims can be included in the
token directly (as a JWT, for instance) and the RS could have read them
if it knew how to parse said token, it's important that they don't have
to be communicated that way and the token itself does not have to be
structured at all. The AS can literally issue a token of "foo.bar.123"
and the RS can do an introspection call to turn "foo.bar.123" into
{valid: true, sub: user-person, aud: resource-server, ... }
- The RS looks at the returned JSON value and uses that to make its
authorization decision.
It's imperative to note that the token in OAuth is opaque to the
*client* -- it is not opaque to other parties, namely the AS. And in
most deployments, it's not opaque to the RS either, since the RS has to
be able to turn the OAuth token into something that can help it make
authorization decisions. Having an introspection endpoint with a
standardized return value would actually allow the token content itself
to be opaque to the RS as well as the Client.
All that said, I think there is enough variability and flexibility in
OAuth deployments that the introspection data response should (and so
far, has) follow the JWT model: define a core set of claims with clear
semantics, make them all optional apart from the common "active" field,
and allow for copious extension. It's a very simple, very useful pattern
that's been implemented by many different developers.
-- Justin
On 07/29/2014 01:15 PM, Mike Jones wrote:
As I see it, there are two different kinds of standardization for
introspection that could occur. One is defining a standard endpoint
for doing introspection on an access token and possibly refresh
token. The other is defining standard contents to be returned from
the introspection.
I'm skeptical of the standard contents, given that access tokens and
refresh tokens are intentionally opaque. Implementations could range
from being an integer index into a database table, to being a UUID to
being an encrypted JWT with context-specific claims. I don't see
anything in common in those implementations for introspection to return.
While I can see marginal utility to having a common endpoint and
request syntax, I would be against trying to standardize the contents
of what an introspection request might return. It's as
deployment-specific as the access token representation itself.
-- Mike
*From:*OAuth [mailto:oauth-boun...@ietf.org] *On Behalf Of *Paul Madsen
*Sent:* Tuesday, July 29, 2014 2:48 AM
*To:* Phil Hunt
*Cc:* oauth@ietf.org
*Subject:* Re: [OAUTH-WG] Confirmation: Call for Adoption of "OAuth
Token Introspection" as an OAuth Working Group Item
Standardized Introspection will be valuable in NAPPS, where the AS and
RS may be in different policy domains.
Even for single policy domains, there are enterprise scenarios where
the RS is from a different vendor than the AS, such as when an API
gateway validates tokens issued by an 'IdP' . We've necessarily
defined our own introspection endpoint and our gateway partners have
implemented it, (at the instruction of the customer in question). But
of course it's proprietary to us.
Paul
On Jul 28, 2014, at 8:59 PM, Phil Hunt <phil.h...@oracle.com
<mailto:phil.h...@oracle.com>> wrote:
That doesn't explain the need for inter-operability. What you've
described is what will be common practice.
It's a great open source technique, but that's not a standard.
JWT is much different. JWT is a foundational specification that
describes the construction and parsing of JSON based tokens. There
is inter-op with token formats that build on top and there is
inter-op between every communicating party.
In OAuth, a site may never implement token introspection nor may
it do it the way you describe. Why would that be a problem? Why
should the group spend time on something where there may be no
inter-op need.
Now that said, if you are in the UMA community. Inter-op is quite
foundational. It is very very important. But then maybe the spec
should be defined within UMA?
Phil
@independentid
www.independentid.com <http://www.independentid.com>
phil.h...@oracle.com <mailto:phil.h...@oracle.com>
On Jul 28, 2014, at 5:39 PM, Justin Richer <jric...@mit.edu
<mailto:jric...@mit.edu>> wrote:
It's analogous to JWT in many ways: when you've got the AS and the
RS separated somehow (different box, different domain, even
different software vendor) and you need to communicate a set of
information about the approval delegation from the AS (who has the
context to know about it) through to the RS (who needs to know
about it to make the authorization call). JWT gives us an
interoperable way to do this by passing values inside the token
itself, introspection gives a way to pass the values by reference
via the token as an artifact. The two are complementary, and there
are even cases where you'd want to deploy them together.
-- Justin
On 7/28/2014 8:11 PM, Phil Hunt wrote:
Could we have some discussion on the interop cases?
Is it driven by scenarios where AS and resource are separate
domains? Or may this be only of interest to specific protocols
like UMA?
From a technique principle, the draft is important and sound.
I am just not there yet on the reasons for an interoperable
standard.
Phil
On Jul 28, 2014, at 17:00, Thomas Broyer <t.bro...@gmail.com
<mailto:t.bro...@gmail.com>> wrote:
Yes. This spec is of special interest to the platform
we're building for http://www.oasis-eu.org/
On Mon, Jul 28, 2014 at 7:33 PM, Hannes Tschofenig
<hannes.tschofe...@gmx.net
<mailto:hannes.tschofe...@gmx.net>> wrote:
Hi all,
during the IETF #90 OAuth WG meeting, there was strong
consensus in
adopting the "OAuth Token Introspection"
(draft-richer-oauth-introspection-06.txt) specification as
an OAuth WG
work item.
We would now like to verify the outcome of this call for
adoption on the
OAuth WG mailing list. Here is the link to the document:
http://datatracker.ietf.org/doc/draft-richer-oauth-introspection/
If you did not hum at the IETF 90 OAuth WG meeting, and
have an opinion
as to the suitability of adopting this document as a WG
work item,
please send mail to the OAuth WG list indicating your
opinion (Yes/No).
The confirmation call for adoption will last until August
10, 2014. If
you have issues/edits/comments on the document, please
send these
comments along to the list in your response to this Call
for Adoption.
Ciao
Hannes & Derek
_______________________________________________
OAuth mailing list
OAuth@ietf.org <mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth
--
Thomas Broyer
/t?.ma.b?wa.je/ <http://xn--nna.ma.xn--bwa-xxb.je/>
_______________________________________________
OAuth mailing list
OAuth@ietf.org <mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org <mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org <mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org <mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth