in line
Phil

@independentid
www.independentid.com
phil.h...@oracle.com

> On Jan 13, 2015, at 3:08 PM, Richer, Justin P. <jric...@mitre.org> wrote:
> 
> Hi Hannes, thanks for the review. Comments inline.
> 
> On Jan 12, 2015, at 6:11 AM, Hannes Tschofenig <hannes.tschofe...@gmx.net> 
> wrote:
> 
>> Hi Justin, Hi all,
>> 
>> as noted in my status update I am trying to finalize the pending items.
>> 
>> Hence, I re-read the draft-ietf-oauth-dyn-reg-21 document since my
>> review of draft-ietf-oauth-dyn-reg-management raised some questions
>> about the terminology.
>> 
>> If you look at the structure of the ToC then you will notice the following:
>> 
>>  3.  Client Registration Endpoint  . . . . . . . . . . . . . . . .  13
>>    3.1.  Client Registration Request . . . . . . . . . . . . . . .  14
>>      3.1.1.  Client Registration Request Using a Software
>>              Statement . . . . . . . . . . . . . . . . . . . . . .  15
>>    3.2.  Client Registration Response  . . . . . . . . . . . . . .  16
>>  4.  Responses . . . . . . . . . . . . . . . . . . . . . . . . . .  16
>>    4.1.  Client Information Response . . . . . . . . . . . . . . .  17
>>    4.2.  Client Registration Error Response  . . . . . . . . . . .  18
>> 
>> There is no 'Client Registration Response' in the protocol (only the
>> Client Information Response) and section 3.2 is pretty much empty and
>> only points to the later sections. So, I would suggest to do the following.
>> 
>>  3.  Client Registration Endpoint
>>    3.1.  Client Registration Request
>>      3.1.1.  Client Registration Request Using a Software Statement
>>    3.2.  Client Registration Response
>>      3.2.1.  Client Information Response
>>      3.2.2.  Client Registration Error Response
>> 
>> (A section with only a single sub-section is also a sign of a bad
>> structure.)
>> 
> 
> I'm actually OK with this re-organization, as long as there's no objection 
> from the WG at this stage. I think what we have might be slightly vestigial 
> of the existing document. There *is* a client registration response, but it's 
> one of two things: the information or error response. Collapsing them as 
> above will likely make that section easier to read. Thoughts?
> 
>> I re-read the terminology and looked at Figure 1 to see whether it makes
>> sense and it still does not. I know that there may be many different
>> deployment options but it should at least be clear to the reader where
>> information comes from and where does it go.
>> 
>> For example, when I try to follow the flow of the software statement
>> then I read the following:
>> "
>> Software Statement: In some cases, a software statement will be issued
>> directly by the organization or developer that creates the client software.
>> "
>> 
>> What does the figure tell us? It shows us that the client or developer
>> gets the software assertion.
>> 
>>       +--------(A)- Initial Access Token (OPTIONAL)
>>       |
>>       |   +----(B)- Software Statement (OPTIONAL)
>>       |   |
>>       v   v
>>   +-----------+                                      +---------------+
>>   |           |--(C)- Client Registration Request -->|    Client     |
>>   | Client or |                                      | Registration  |
>>   | Developer |<-(D)- Client Information Response ---|   Endpoint    |
>>   |           |                                      +---------------+
>>   +-----------+
>> 
>> Maybe we should illustrate one example that makes sense and then say
>> that there are others that could be used.
> 
> The examples are included in Appendix A. 
> 
>> It also does not make sense to
>> show the developer in the box together with the client since the
>> developer does not execute a protocol exchange with the client
>> registration endpoint.
> 
> That's not true, a developer (person or organization) could very easily be 
> using the dynamic registration protocol on behalf of the software that 
> they're developing. This is actually used in practice in a number of places, 
> and if you'd like a concrete example just go to the MIT integration test 
> site: https://mitreid.org/manage/dev/dynreg (log in with user/password).

IMO. This defeats the purpose of dynamic registration. A developer that wants 
to hand register would go through the SP’s developer support pages as they do 
now.

It also won’t work in cases where an individual client will negotiate a client 
key (where the actual key is not shared and thus the developer (or any other 
MITM) can’t get in between.

> 
>> 
>> Here is a proposal for improving this:
>> 
>> 
>> FROM:
>> 
>>       +--------(A)- Initial Access Token (OPTIONAL)
>>       |
>>       |   +----(B)- Software Statement (OPTIONAL)
>>       |   |
>>       v   v
>>   +-----------+                                      +---------------+
>>   |           |--(C)- Client Registration Request -->|    Client     |
>>   | Client or |                                      | Registration  |
>>   | Developer |<-(D)- Client Information Response ---|   Endpoint    |
>>   |           |                                      +---------------+
>>   +-----------+
>> 
>>   Figure 1: Abstract Dynamic Client Registration Flow
>> 
>> TO:
>> 
>>   +--------  O  -- (A)- Initial Access Token (OPTIONAL)
>>   |         /|\
>>   |   +---- / \ -- (B)- Software Statement (OPTIONAL)
>>   |   |   Client
>>   |   |   Developer
>>   |   |
>>   v   v
>> +--------------+                                      +---------------+
>> |              |--(C)- Client Registration Request -->|    Client     |
>> |   Client     |                                      | Registration  |
>> |              |<-(D)- Client Information Response ---|   Endpoint    |
>> +--------------+                                      +---------------+
>> 
>> Figure 1: Abstract Dynamic Client Registration Flow
>> 
>> 
>> Alternatively, one could also separate the distribution of software
>> statements and the actual protocol exchange. Here is the proposal:
>> 
>>   +--------(A)- Initial Access Token (OPTIONAL)
>>   |
>>   |   +----(B)- Software Statement (OPTIONAL)
>>   |   |
>>   v   v
>> +-----------+                                      +---------------+
>> |           |--(C)- Client Registration Request -->|    Client     |
>> |   Client  |                                      | Registration  |
>> |           |<-(D)- Client Information Response ---|   Endpoint    |
>> +-----------+                                      +---------------+
>> 
>> Figure 1: Abstract Dynamic Client Registration Flow
>> 
>> 
>>          +---------------+
>>          | Authorization |
>>          | Server        |
>>          +---------------+
>>                |    Initial
>>                |(A) Access
>>                |    Token
>>                v
>>                 O  Client
>>        +------ /|\ Developer
>>        |+----- / \
>>        ||
>>     (A)||(B) Software
>>        ||    Statement
>>        vv
>> +-----------+
>> |           |
>> |   Client  |
>> |           |
>> +-----------+
>> 
>> Figure 2: Software Statement / Initial Access Token Distribution Example.
>> 
> 
> This is inaccurate, as described above. I believe we should leave this as is.
> 
>> Then, there is also this statement in the Software Statement definition:
>> 
>> "
>>     In other cases, a
>>     software statement will be issued by a third party organization
>>     for use by the organization or developer that creates the client
>>     software.
>> "
>> 
>> In the terminology section we are defining all the parties that are
>> involved and now this mysterious "third party organization" is
>> introduced. Is this one of the already defined parties or is this yet
>> another organization?
> 
> This is just exemplary text, saying one way that it could happen. The 
> "mysterious" third party organization is someone who is not the authorization 
> server or software API publisher who issued the statement (those cases are 
> covered by the preceding sentence). They're not a named party, it's just 
> "whoever made the software statement". We are not specifying which software 
> statements the AS decides to trust, since that's a policy decision outside of 
> our control as spec authors. Many authorization servers will only trust 
> software statements that they issue, but others will have a configured set of 
> third parties that they will accept software statements from, probably as 
> part of a trust framework. I think this text should be left as it is unless 
> there's a way to word this so that it doesn't sound like we're adding another 
> explicitly named party to the mix.
> 
>> 
>> Finally, the client developer is defined as a single individual or an
>> entire organization (i.e., a group of people). However, in the text you
>> write 'client developer or organization'. For example, look at the
>> software statement:
>> 
>> "In some cases, a software statement will be issued directly by the
>> organization or developer that creates the client software.
>> "
>> 
>> Wouldn't it be more consistent to use the client developer definition as
>> is and just turn this sentence into
>> 
>> "
>> In some cases, a software statement will be issued directly by the
>> client developer.
>> "
>> 
> 
> Since "developer" can mean individual or organization, I'm fine with this 
> simplifying change as long as there's no objection from the WG.
> 
> Thanks again for the review.
> -- Justin
> _______________________________________________
> OAuth mailing list
> 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