For the client_id, if there is no client_secret, how is that information going to flow thru ? In the oauth spec, the protocol allows you to specify the client_id and secret in the payload. So it would be good for this spec to follow as closely to the oauth spec, that will be great.

The idea of the introspection endpoint is to exactly mimic the OAuth2 capabilities for client authentication as well as allowing for authorization based on a valid OAuth2 access token, as Section 2.1 states:

   The endpoint SHOULD also require some form of authentication to
   access this endpoint, such as the Client Authentication as described
   in OAuth 2 Core Specification
   <http://tools.ietf.org/id/draft-richer-oauth-introspection-01.html#RFC6749>
   [RFC6749] or a separate OAuth2 Access Token.

This means that if you have no client secret, you don't send one. You can use Basic or form parameters. If you have a client assertion, you use that. If you have an access token, you use that. Basically, however your clients normally authenticate with your AS, you can do that here. Or if you want to, the token that you're introspecting can be its own key -- a use that I haven't called out specifically in the document yet because I'm not fully convinced of its utility.

And for the action/operation, separate endpoint will be one way of handling it. However are you going to dictate what the endpoint is ? If not, it will make sense for the request to be self-identified. That will provide the most flexibility.

Yes, the specification specifically defines a separate endpoint. From the introduction:

   This specification defines an Introspection Endpoint that allows the
   holder of a token to query the Authorization Server to discover the
   set of metadata for a token.


And all of section 2 is titled "Introspection Endpoint" for this reason as well.


If there is a way either of these points could be made more clear, please suggest new language for the specification and I'll incorporate it.

 -- Justin


Regards.


On Tue, Jan 22, 2013 at 2:00 PM, Justin Richer <jric...@mitre.org <mailto:jric...@mitre.org>> wrote:

    (CC'ing the working group)

    I'm not sure what the "action/operation" flag would accomplish.
    The idea behind having different endpoints in OAuth is that they
    each do different kinds of things. The only "action/operation"
    that I had envisioned for the introspection endpoint is
    introspection itself: "I have a token, what does it mean?"

    Note that client_id and client_secret *can* already be used at
    this endpoint if the server supports that as part of their client
    credentials setup. The examples use HTTP Basic with client id and
    secret right now. Basically, the client can authenticate however
    it wants, including any of the methods that OAuth2 allows on the
    token endpoint. It could also authenticate with an access token.
    At least, that's the intent of the introspection draft -- if
    that's unclear, I'd be happy to accept suggested changes to
    clarify this text.

     -- Justin


    On 01/22/2013 01:00 PM, Shiu Fun Poon wrote:
    Justin,

    This spec is looking good..

    One thing I would like to recommend is to add
    "action"/"operation" to the request.  (and potentially add
    client_id and client_secret)

    So the request will be like :
    token                    REQUIRED
    operation (wording to be determine) OPTIONAL inquire (default) |
    revoke ...
    resource_id OPTIONAL
    client_id OPTIONAL
    client_secret OPTIONAL

    And for the OAuth client information, it should be an optional
    parameter (in case it is a public client or client is
    authenticated with SSL mutual authentication).

    Please consider.

    ShiuFun



_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to