Thank you. Please let me ask a simplified question.

If an authorization server returns this response (including id_token):

  HTTP/1.1 302 Found
  Location: https://client.example.org/cb#
  access_token=SlAV32hkKG
  &token_type=bearer
  &id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso
  &expires_in=3600
  &state=af0ifjsldkj

when it receives this request (without scope=openid):

  GET /authorize?
    response_type=id_token%20token
    &client_id=s6BhdRkqt3
    &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
    &state=af0ifjsldkj HTTP/1.1
  Host: server.example.com

, is the implementation of the authorization server correct?

Best Regards,
Takahiko Kawasaki


2017-06-26 21:53 GMT+09:00 Philippe Signoret <
philippe.signo...@microsoft.com>:

> None of the examples in that spec are _*OpenID Connect*_ authentication
> requests. They are, however, valid _*OAuth 2.0**_* authorization
> requests. The one in question demonstrates use of the
> response_mode=id_token, as defined in the realm of OAuth 2.0. If (and only
> if) it had scope=openid, _*then*_ it would become an OpenID Connect auth
> request, and the OpenID Connect specs would apply.
>
>
>
> In other words, the fact that id_token is in the response_type does _*not**_
> *automatically make it an OpenID Connect request.
>
>
>
> Another way of seeing it is that the OAuth 2.0 Multiple Response Type
> Encoding spec is laying some foundations, as part of the OAuth 2.0
> framework, upon which OpenID Connect is then built.
>
>
>
> In Section 11.3. OAuth Authorization Endpoint Response Types Registry
> <https://tools.ietf.org/html/rfc6749#section-11.3>, the OAuth 2.0 spec
> (RFC 6749) defines a registry of response types:
>
>
>
>    This specification establishes the OAuth Authorization Endpoint
>
>    Response Types registry.
>
>
>
> Then, in Section 3, ID Token Response Type
> <http://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#id_token>,
> OAuth 2.0 Multiple Response Types registers “id_token” as a response type
> in that same registry:
>
>
>
> This section registers a new Response Type, the id_token, in accordance
> with the stipulations in the OAuth 2.0 specification, Section 8.4. The
> intended purpose of the id_token is that it MUST provide an assertion of
> the identity of the Resource Owner as understood by the Authorization
> Server. The assertion MUST specify a targeted audience, e.g. the requesting
> Client. However, the specific semantics of the assertion and how it can be
> validated are not specified in this document.
>
>
>
> Finally, on that OAuth 2.0 foundation, the OpenID Connect spec defines
> (amongst other things) that including “scope=openid” is how the client
> indicates that this is an OpenID Connect request, makes use of the
> previously registered Response Type “id_token” (in some flows—other flows
> don’t use the “id_token” response type), and proceeds to specify the format
> and contents of the ID Token:
>
>
>
> OpenID Connect implements authentication as an extension to the OAuth 2.0
> authorization process. Use of this extension is requested by Clients by
> including the openid scope value in the Authorization Request.
> Information about the authentication performed is returned in a *JSON Web
> Token (JWT)* <http://openid.net/specs/openid-connect-core-1_0.html#JWT> [JWT]
> called an ID Token (see *Section 2*
> <http://openid.net/specs/openid-connect-core-1_0.html#IDToken>).
>
>
>
> Philippe
>
>
>
> *From:* Takahiko Kawasaki [mailto:daru...@gmail.com]
> *Sent:* Monday, June 26, 2017 2:17 PM
> *To:* Philippe Signoret <philippe.signo...@microsoft.com>
> *Cc:* oauth@ietf.org
> *Subject:* Re: [OAUTH-WG] Example in OAuth 2.0 Multiple Response Type
> Encoding Practices
>
>
>
> The response_type of the example includes id_token and it is the reason
> I've brought it up. id_token triggers Authentication Request.
>
>
>
> # The response_type in the example in Appendix A
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenid.net%2Fspecs%2Foauth-v2-multiple-response-types-1_0.html%23FragmentExample&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C092adcaef9954edf8e3208d4bc8d2fba%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340761951990482&sdata=mRz8ViYA0cYXXO4iVw1vAgO4Xejh%2FDcxYegTfdeOSBw%3D&reserved=0>
> does not include id_token and so I've not mentioned it.
>
>
>
> Best,
>
> Taka
>
>
>
>
>
>
>
> 2017-06-26 17:09 GMT+09:00 Philippe Signoret <Philippe.Signoret@microsoft.
> com>:
>
> scope=openid is required for OpenID Connect Authentication Requests (e.g.
> "3.3.2.1. Authentication Request
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenid.net%2Fspecs%2Fopenid-connect-core-1_0.html%23HybridAuthRequest&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=HO6gAigTdBjgxOhsS41bKLbbl1cUyUugvXBjJ4hwmKE%3D&reserved=0>"
> in "OpenID Connect Core 1.0
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenid.net%2Fspecs%2Fopenid-connect-core-1_0.html&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=FrFLKpyHVfZbRw1OsOs7QH%2F2bSrJbJluKnny0X%2FiJxw%3D&reserved=0>"),
> but not for an OAuth 2.0 Authorization Request (e.g. "4.1.1.
> Authorization Request
> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6749%23section-4.1.1&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C092adcaef9954edf8e3208d4bc8d2fba%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340761952000490&sdata=%2FHh3%2BtauyK%2F03OVtSOX7p8XpidnT%2FPGHq8cwvl07vwg%3D&reserved=0>"
> in "RFC6749 The OAuth 2.0 Authorization Framework
> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6749&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C092adcaef9954edf8e3208d4bc8d2fba%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340761952000490&sdata=a0%2BsS06wPx%2FxzxKc6z7pBXnQ0p4V7yciycZ%2F6uKJ2SU%3D&reserved=0>
> ").
>
>
>
> OpenID Connect is “an identity layer on top of the OAuth 2.0 protocol”.
> OpenID Connect specs will often refer to aspects of the OAuth 2.0 protocol,
> but the OAuth 2.0 specs will generally not refer to the OpenID Connect
> constructs. (Because OpenID Connect is a specific case of OAuth 2.0.)
>
>
>
> Philippe
>
>
>
> *From:* OAuth [mailto:oauth-boun...@ietf.org] *On Behalf Of *Takahiko
> Kawasaki
> *Sent:* Monday, June 26, 2017 7:46 AM
> *To:* oauth@ietf.org
> *Subject:* [OAUTH-WG] Example in OAuth 2.0 Multiple Response Type
> Encoding Practices
>
>
>
> Hello,
>
>
>
> I'm not so sure that this is the right place to ask, but I'm wondering
> whether it is correct or not that the following non-normative example found
> in "5. Definitions of Multi-Valued Response Type Combinations
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenid.net%2Fspecs%2Foauth-v2-multiple-response-types-1_0.html%23Combinations&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=A2%2F5R%2FFDSMUN8lthoex%2BAnF3h%2FouQHjXBPhW3Yv5D7M%3D&reserved=0>"
> in "OAuth 2.0 Multiple Response Type Encoding Practices
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenid.net%2Fspecs%2Foauth-v2-multiple-response-types-1_0.html&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=oax1ui3n46P2n67Mqx14t0458TZjrcw9IUsdCoGsmho%3D&reserved=0>"
> does not include "scope=openid".
>
>
>
>   GET /authorize?
>
>     response_type=id_token%20token
>
>     &client_id=s6BhdRkqt3
>
>     &redirect_uri=https%3A%2F%2Fclient.example.org 
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F2Fclient.example.org&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=%2BaCAvhV9qt75Cqajdrr84BVG6MRS3747Ux5CsjJtgQE%3D&reserved=0>%2Fcb
>
>     &state=af0ifjsldkj HTTP/1.1
>
>   Host: server.example.com 
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fserver.example.com&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=PoXzHooKqVnYx4pzWD%2B4THUElRZjsUC2TNdMlTrhfiY%3D&reserved=0>
>
>
>
> The reason I'm wondering is that "3.3.2.1. Authentication Request
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenid.net%2Fspecs%2Fopenid-connect-core-1_0.html%23HybridAuthRequest&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=HO6gAigTdBjgxOhsS41bKLbbl1cUyUugvXBjJ4hwmKE%3D&reserved=0>"
> in "OpenID Connect Core 1.0
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenid.net%2Fspecs%2Fopenid-connect-core-1_0.html&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=FrFLKpyHVfZbRw1OsOs7QH%2F2bSrJbJluKnny0X%2FiJxw%3D&reserved=0>"
> requires Authentication Requests be made as defined in "3.1.2.1.
> Authentication Request
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenid.net%2Fspecs%2Fopenid-connect-core-1_0.html%23AuthRequest&data=02%7C01%7CPhilippe.Signoret%40microsoft.com%7C7ae0944f524d4655cb6c08d4bc56b163%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636340527913704845&sdata=WoKMDXrFJDmvaGHGY8ry8Nn7iG5qliNjqNw8UamnHHg%3D&reserved=0>"
> and "3.1.2.1" requires the scope request parameter contain openid.
>
>
>
>
>
> Best Regards,
>
> Takahiko Kawasaki
>
>
>
>
>
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to