I just looked all the uses of REQUIRED and MUST in the OpenID Connect Core 
spec.  They do things like say which claims are REQUIRED in the ID Token 
("iss", "sub", etc.), which OAuth parameters and features are REQUIRED, place 
restrictions on certain values (such as "iss" MUST use the "https" scheme, 
"sub" must not be longer than 255 characters, the redirect_uri MUST exactly 
match a registered value, etc.), say that fields that are not understood MUST 
be ignored, and say when ID Tokens MUST be signed, and say that user 
interaction MUST NOT occur with prompt=none, and specify validation rules for 
some data structures (checking signatures, redirect_uris, etc.).

The key point is that none of the uses of REQUIRED or MUST require 
implementation of additional features, either by OPs or RPs.  They just place 
restrictions on *how* they are to be implemented.  So, in fact, the lists in 
15.1 and 15.2 *are* comprehensive sets of required features for the two classes 
of identity providers.

I should have added in my earlier note that there's also a section on MTI 
features for RPs:
    15.4.<http://openid.net/specs/openid-connect-core-1_0.html#RPMTI>  
Mandatory to Implement Features for Relying Parties
Essentially, it says that RPs only need to implement the features that they 
actually plan to use.

Developers have shown in practice to have no problem understanding the OpenID 
Connect specs or building interoperable implementations.  20 implementations 
(see http://osis.idcommons.net/wiki/Category:OC5_Solution) are participating in 
the current (5th) round of interop testing and a number of others also are 
privately.  The specs are clear to developers in part because we kept 
iterating, taking feedback, refining them, and doing new rounds of interop 
testing until they were clear and easy to build.  There's four years of 
implementation and deployment experience incorporated into the final 
specifications.

No, everyone won't build every optional feature.  That's a good thing - and by 
design.  The specs are designed to let you build only the parts that you need 
for your use cases, while still being interoperable for the features 
implemented.

Yes, the a4c spec adds a few things that OpenID Connect didn't - primarily the 
ability to authenticate over the back channel without issuing an ID Token by 
adding a new response_type, plus definitions of some claim values for the "amr" 
claim.  There's nothing wrong with these additions.

However, arguments that "OpenID Connect is too complicated" fall short in face 
of the actual implementation and deployment experience and I don't think are 
helpful to the current discussions.  We should be positively discussing what 
features OAuth specs should have, rather than trying to criticize other 
valuable work that's already widely deployed.

                                                            Best wishes,
                                                            -- Mike

From: Prateek Mishra [mailto:prateek.mis...@oracle.com]
Sent: Friday, June 13, 2014 9:55 AM
To: Mike Jones; Bill Burke; Phil Hunt
Cc: oauth@ietf.org
Subject: Re: [OAUTH-WG] Question regarding draft-hunt-oauth-v2-user-a4c

Mike -  when i see language like

[quote]
This list augments the set of features that are already listed elsewhere as 
being "REQUIRED" or are described with a "MUST", and so is not, by itself, a 
comprehensive set of implementation requirements for OPs.
[\quote]

in Section 15.1, I have to say this isn't a clear definition of what is MTI.

I guess someone could through comprehensive research determine exactly what 
might be meant by this section, but that doesn't meet the criteria of "very 
clear definition of MTI".

- prateek

- prateek



Actually, there is a very clear definition of what the minimal Mandatory To 
Implement (MTI) in OpenID Connect is - it's right in the spec.  See the (quite 
short) sections:

    15.1.<http://openid.net/specs/openid-connect-core-1_0.html#ServerMTI>  
Mandatory to Implement Features for All OpenID Providers
    15.2.<http://openid.net/specs/openid-connect-core-1_0.html#DynamicMTI>  
Mandatory to Implement Features for Dynamic OpenID Providers



                                                            -- Mike

-----Original Message-----
From: OAuth [mailto:oauth-boun...@ietf.org] On Behalf Of Prateek Mishra
Sent: Friday, June 13, 2014 9:24 AM
To: Bill Burke; Phil Hunt
Cc: oauth@ietf.org<mailto:oauth@ietf.org>
Subject: Re: [OAUTH-WG] Question regarding draft-hunt-oauth-v2-user-a4c



Excellent, now you have put your finger on the precise issue with OIDC - lots 
of optional extensions and shiny trinkets and lack of a clear definition of a 
core subset for servers.



I realize its exciting for consultants, software and toolkit vendors to have 
that sort of optionality, but in practice, its NOT A GOOD THING in a protocol.



[quote]

>

>> It is a bit like saying an 18 wheeler is suitable for driving the

>> kids to school. :-)

>

> I don't think this is true.  Most oidc oauth extensions are optional

> with the sole requirement that providers don't barf if you send them.

>

[\quote]



_______________________________________________

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

Reply via email to