[OpenID] Does Application Type correspond to Client Type?
Takahiko Kawasaki
daru.tk at gmail.com
Sun May 11 16:56:12 UTC 2014
Thank you for your comment.
If both native clients and web clients can be public or confidential,
application_type which is described in Client Metadata section of
OpenID Connect Dynamic Client Registration 1.0 is DIFFERENT from the
client type described in RFC 6749.
Considering the following two points:
(1) RFC 6749 (OAuth 2.0) requires a client type to be registered.
(RFC 6749, 2. Client Registration)
(2) OpenID Connect Relying Party is a kind of OAuth 2.0 client app.
(OpenID Connect Core 1.0, 1.2. Terminology)
there should be a client metadata entry to specify a client type (e.g.
client_type), and it should be treated separately from application_type.
Information about Client Type (not Application Type) is really needed
to implement OAuth 2.0 authorization server correctly. Especially it
is needed to determine (1) whether client authentication is required
at the token endpoint (3.2.1. Client Authentication) and (2) whether
registration of redirect URIs can be omitted (3.1.2.2. Registration
Requirements).
Without a client metadata entry to specify a client type, the default
value of client type cannot help but be left to implementations of
OpenID Connect Dynamic Client Registration 1.0.
IMHO, if such an entry (e.g. client_type) should be added, 'public'
would be appropriate as the default value because 'client_secret' in
Client Registration Response is OPTIONAL.
--
Best Regards,
Takahiko Kawasaki
2014-05-11 5:54 GMT+09:00 John Bradley <ve7jtb at ve7jtb.com>:
> Native clients may also be confidential if they register a unique
> client_id and have a secret that is provisioned in registration or out of
> band in some way.
>
> Web includes both confidential and public types of clients.
>
> Client type web or native came from a number of IdP like Google who do not
> allow the same client_id to be used across different types of clients.
>
> The type of client restricts the type of redirect_uri that is allowed to
> be registered.
>
> All clients must register full redirect URI and the Authorization server
> must match the registered redirect_uri with the one in the request.
>
> The recent covert redirect furor and the consequences of Facebook not
> requiring it should go some way to explaining why registering redirect_uri
> is important.
>
> One reason for not allowing native_apps and back end Web servers to share
> a client_id is privacy. A user granting a app on there phone access to a
> API is not the same as
> granting a Web site access, and a user discovering that consenting to one
> automatically consented to the other may not be taken well.
>
> The reason for separating the two types of clients is both good security
> and good privacy policy.
>
> John B.
>
>
> On May 10, 2014, at 12:02 PM, Takahiko Kawasaki <daru.tk at gmail.com> wrote:
>
> > If "Native Clients" in "OpenID Connect Dynamic Client Registration
> > 1.0, 2. Client Metadata" means "native application" in "RFC 6749
> > (OAuth 2.0), 2.1 Client Types" (yes it apparently does), "Native
> > Clients" are always 'public' clients.
> >
> > If "Web Clients" in "OpenID Connect Dynamic Client Registration 1.0,
> > 2. Client Metadata" means "web application" in "RFC 6749 (OAuth 2.0),
> > 2.1 Client Types" but does not include "user-agent-based application",
> > "Web Clients" are always 'confidential' clients.
> >
> > Using the above interpretation, application_type=native and
> > application_type=web correspond to 'public' and 'confidential',
> > respectively.
> >
> > However, the requirement of application_type:
> >
> > Web Clients using the OAuth Implicit Grant Type MUST only
> > register URLs using the https scheme as redirect_uris; they
> > MUST NOT use localhost as the hostname. Native Clients MUST
> > only register redirect_uris using custom URI schemes or URLs
> > using the http: scheme with localhost as the hostname.
> >
> > is irrelevant to whether or not clients are "capable of maintaining
> > the confidentiality of their credentials" (from RFC 6749). In other
> > words, redirect URIs are irrelevant to how to authentication clients.
> > Therefore, it sounds to me that Application Type and Client Type are
> > different concepts.
> >
> > It is weird that all "OAuth 2.0 clients" must comply with either of
> > the 'redirect_uris' requirements (one is for Web Clients and the
> > other is for Native Clients), so probably it is inappropriate that
> > 'web' is used as the default value when application_type is omitted.
> > IMHO, neither of 'native' nor 'web' should be assumed when
> > application_type is omitted. But, I may be missing something. Is
> > there any reason to impose the 'redirect_uris' requirements on all
> > "OpenID Connect clients"?
> >
> > Anyway, my conclusion is that Application Type and Client Type are
> > different. And I hope that client_type (public or confidential) is
> > added to the list of Client Metadata and that neither of 'native'
> > nor 'web' is used as the default value when application_type is not
> > contained in client registration requests.
> >
> > --
> > Best Regards,
> > Takahiko Kawasaki
> >
> >
> > 2014-05-10 10:29 GMT+09:00 Takahiko Kawasaki <daru.tk at gmail.com>:
> >> Hello,
> >>
> >> I'm wondering whether this is the right place to ask my question.
> >> If not, please tell me so.
> >>
> >> I posted a question to StackOverflow, but no answer yet.
> >>
> >> http://stackoverflow.com/q/23557801/1174054
> >>
> >> My question is "Does Application Type (OpenID Connect) correspond to
> >> Client Type (OAuth 2.0)?" Could anyone give me an answer please?
> >> Below is the detail of the question.
> >>
> >> "OpenID Connect Dynamic Client Registration 1.0, 2. Client Metadata"
> >> has an entry named application_type, whose defined values are
> >> 'native' and 'web'.
> >>
> >> --- Excerpt from OpenID Connect Dynamic Client Registration ------
> >> application_type
> >> OPTIONAL. Kind of the application. The default, if omitted, is
> >> web. The defined values are native or web. Web Clients using the
> >> OAuth Implicit Grant Type MUST only register URLs using the
> >> https scheme as redirect_uris; they MUST NOT use localhost as
> >> the hostname. Native Clients MUST only register redirect_uris
> >> using custom URI schemes or URLs using the http: scheme with
> >> localhost as the hostname. Authorization Servers MAY place
> >> additional constraints on Native Clients. Authorization Servers
> >> MAY reject Redirection URI values using the http scheme, other
> >> than the localhost case for Native Clients. The Authorization
> >> Server MUST verify that all the registered redirect_uris conform
> >> to these constraints. This prevents sharing a Client ID across
> >> different types of Clients.
> >> ------------------------------------------------------------------
> >>
> >> Do these defined values correspond to 'public' and 'confidential'
> >> described in "RFC 6749 (OAuth 2.0), 2.1. Client Types"?
> >>
> >> --- Excerpt from RFC 6749 (OAuth 2.0) ----------------------------
> >> OAuth defines two client types, based on their ability to
> >> authenticate securely with the authorization server (i.e., ability
> >> to maintain the confidentiality of their client credentials):
> >>
> >> confidential
> >> Clients capable of maintaining the confidentiality of their
> >> credentials (e.g., client implemented on a secure server with
> >> restricted access to the client credentials), or capable of
> >> secure client authentication using other means.
> >>
> >> public
> >> Clients incapable of maintaining the confidentiality of their
> >> credentials (e.g., clients executing on the device used by the
> >> resource owner, such as an installed native application or a
> >> web browser-based application), and incapable of secure client
> >> authentication via any other means.
> >> ------------------------------------------------------------------
> >>
> >> If not, why doesn't the specification (OpenID Connect Dynamic Client
> >> Registration 1.0) have an entry to specify a client type? Is there
> >> any way to specify a client type (public or confidential) at the
> >> client registration endpoint?
> >>
> >>
> >> --
> >> Best Regards,
> >> Takahiko Kawasaki
> > _______________________________________________
> > general mailing list
> > general at lists.openid.net
> > http://lists.openid.net/mailman/listinfo/openid-general
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-general/attachments/20140512/af2aa782/attachment.html>
More information about the general
mailing list