Am 19.05.2010 08:23, schrieb David Recordon:


    1) In your proposal there are two services providing user data,
    the OAuth authorization server and the user data service. Why this
    redundancy? Wouldn't the user data service suffice?


The model brought forth in WRAP and now preserved in OAuth 2.0 has a separation between the authorization server and one or more protected resources. I thus view the user info API as one of these protected resources.

From conversations at IIW, I'm thinking about removing the separate user info API endpoint and instead making each user identifier a protected resource. Thus you fetch https://server.example.com/wo1k1nklas with no access token and get public data. Fetch it with an access token from the OpenID response and you get protected information.

This removes an endpoint and makes the identifier itself quite useful.


Sounds good, so you are going to RESTify this part?

    Why not split it? What about using another parameter, say
    "openid_mode", to activate the extended behavior of the OAuth
    authorization server? Then, the scope parameter could exclusively
    be used to determine the permissions of the client on the user
    data service. For example, the set of attributes accessible to the
    client could be requested that way.


OAuth 2.0 already has a `type` parameter which is used to differentiate between the different flows. Given that we're piggybacking on those flows, we don't want to overload that parameter. Having both `type` and `mode` feels redundant when `scope` is designed for the client to tell the server it wants more data access.

Given that the client is asking for user information in addition to the identifier, it seemed reasonable that would be an additional scope. Scope is also already the mechanism servers use to determine the consent UI shown to the user.

I still feel uncomfortable with this "overload" of semantics. So far the scope determines properties of a token not the behavior of the authorization server. In my experience, weak semantics causes more trouble than additional parameters with a clear semantics. I mean, you propose a significant extension to the services offered by an OAuth authorization server. It has never before attested identities. So introducing another flag (choose any name) seems appropriate to me. Another way would be to introduce a generic name scheme, where every standard flow may be turned into an OpenId Connect flow just be adding a suffix, e.g. web_server(_with_id) :-).

Another question arose:

"Clients can optionally include a client_id parameter and MUST if they do not verify the signature within the response. If this parameter is included and the access token was issued to a different client, the server MUST return an error."

Seems you want to prevent token theft? But the proposed design forces a deployment to share client ids between authorization server and protected resource - one of patterns of OAuth 1.0a most people wanted to get rid of with OAuth 2.0. What about using token secrets instead?

regards,
Torsten.
_______________________________________________
specs mailing list
[email protected]
http://lists.openid.net/mailman/listinfo/openid-specs

Reply via email to