It is not worth defining it now. It actually is harmful.
I can see developers start trusting the identifier and causing problems
later.
We should do it together with more thought out security measures.


2013/5/23 Justin Richer <jric...@mitre.org>

>  I agree with Prateek that redirect_uri isn't sufficient or well-suited
> for this, but I also agree with John that software_id on its own doesn't
> buy you a whole lot as a standalone field. It could be a reasonable
> stepping stone to future, more high-assurance work, but my question is
> then: is it really worth it to define a field now when the real work will
> come later? Why not just define the field then and make it fit better?
>
>  -- Justin
>
>
> On 05/22/2013 06:19 PM, Phil Hunt wrote:
>
> I dont see a big issue with a faked software_id. As i said it was a
> minimal proposal with the door open to stronger assertions.
>
>  Rogue clients pretending to be something they are not is actually more
> evidence of a problem. In draft 10 you cant even do that.
>
> Phil
>
> On 2013-05-22, at 15:15, John Bradley <ve7...@ve7jtb.com> wrote:
>
>  At the moment for Mobile devices and other native apps all we have to
> reliably identify the app is the redirect_uri.
>
>  The client_id is trivially faked in native apps.
>
>  Yes in a well groomed enterprise trusting a self asserted software
> identifier is nice but probably doesn't scale to the real world.
>
>  I have had discussions with MDM venders about how you might be able to
> tie access tokens to a instance of software on a device and determine if
> that software is allowed to be run by that user on that device.
> These are all much more complicated discussions than just sticking another
> registration parameter on.
>
>  I don't think this should block the basic dynamic registration spec.
> App lifecycle needs a full spec, and additional registration parameters can
> be added later if required.
>
>  I am not insensitive to the problem.
>
>  John B.
>  On 2013-05-22, at 6:00 PM, prateek mishra <prateek.mis...@oracle.com>
> wrote:
>
>  Well, I have to say that if anything seems poorly thought out, it would
> be a design with the following characteristics.
>
> [quote]
> We already have a “software_id” field and it’s named “redirect_uris”
> [\quote]
>
> This seems to violate the most basic principles of software design -
> overloading a field with meaning distinct from its primary purpose!!
>
> Phil has raised some substantive questions regarding client meta-data and
> the registration process. This information (software_id) is
> essential for identifying and disabling a class of clients that may have
> been found to have some security flaws, for example.
> This is a practical deployment issue that also impacts the security
> characteristics of OAuth.  It should be taken into account in the client
> registration process.
>
> I hope we will take the time to discuss this issue carefully and not rush
> to finalize a specification which has NOT received much review
> from the OAuth community.
>
> - prateek
>
>
>
>  +1****
>
>
>
> We already have a “software_id” field and it’s named “redirect_uris”.****
>
>
>
> This doesn’t seem well thought-out.  We shouldn’t try to jam it into the
> spec at the last minute.****
>
>
>
> The good news is that since the registration spec allows for extensions,
> and the proposed fields are optional, these could be added later as a
> non-breaking change by another spec if the working group eventually decides
> to pursue a route like the one proposed below.  We don’t have to do it now
> for this to eventually come into being after deliberate consideration of a
> complete specification including these features by the working group.****
>
>
>
>                                                                 -- Mike***
> *
>
>
>
> *From:* oauth-boun...@ietf.org 
> [mailto:oauth-boun...@ietf.org<oauth-boun...@ietf.org>]
> *On Behalf Of *John Bradley
> *Sent:* Wednesday, May 22, 2013 2:21 PM
> *To:* Phil Hunt
> *Cc:* oauth@ietf.org WG
> *Subject:* Re: [OAUTH-WG] Proposed resolution - Dynamic Reg - Fix to
> client_id definition issue (was: Client Instances)****
>
> ** **
>
> Phil,****
>
> ** **
>
> As I pointed out in the other thread,  redirect_uri is the thing that ties
> together the clients as that is the place the responses need to go to so is
> hard to fake.****
>
> ** **
>
> All instances of a particular client application will share the same
> redirect_uri across all instances.   ****
>
> ** **
>
> Adding a bunch of self asserted informational fields to the base spec is
> not really helping.  In a enterprise situation where all the apps play nice
> it might be helpfull but the reality is that you probably allready have a
> MDM that lets you manage app versions.****
>
> ** **
>
> John ****
>
> ** **
>
> On 2013-05-22, at 3:59 PM, Phil Hunt <phil.h...@oracle.com> wrote:****
>
>
>
> ****
>
> I had a conversation with Justin yesterday to try to come to a resolution
> regarding my concerns about client instances and being able to associate
> client instances that are issued for the same client software. I think we
> made some progress.****
>
> ** **
>
> *Background:  *****
>
> In RFC6749, public clients, had a common client_id. Many interpreted
> client_id as refering to the client application software (e.g. the iPhone
> Facebook app). This is probably due to the types of OAuth2 implementations
> that existed at the time, where there was a single SP instance.  Others
> have interpreted that client_id does not refer to client applications but
> rather ideally should point to instances of software. To me this seems like
> equating a client_id to being a user-id -- IOW the key part of a credential
> rather than a client identifier. ****
>
> ** **
>
> The new draft proposes that each instance be identified separately.
> However it does so without keeping track of client software that is the
> same.****
>
> ** **
>
> Never-the-less, I think both interpretations can be accommodated.****
>
> ** **
>
> Finally, in single instance services (like Facebook, Twitter, etc), there
> was a natural registration and approval cycle bound into the client_id
> issuance process. The developer was able to talk to the single service
> provider and obtain a client_id for all deployments. It wasn't stated, but
> the client_id registration sites served a useful way to do application
> approvals.  This is a difficult problem to solve when there are multiple
> instance of Resource API deployed in multiple locations. The developer
> can't contact them all.  Further, because the current draft loses knowledge
> of how to recognize that two instances of clients share the same software,
> there's no ability to have an approval process. Each instance is
> essentially anonymous, and thus approval processes would not be possible.
>  Though it does not require it, this proposal makes it possible for service
> providers to recognize new software and to have approval process.****
>
> ** **
>
> *Proposal:*****
>
> What I have worked out with Justin (and he may not yet fully agree with
> everything) is a proposal that solves the problem in an optional way that
> will not break existing clients. ****
>
> ** **
>
> I also propose that optional version numbers also be supported. This is
> useful to service providers who need to know which client_ids are affected
> when certain software clients and/or versions are deprecated. The
> re-introduction of the renamed software_id further enables "local"
> registration to occur. The first time a client tries to register, a service
> provider could for example, choose to hold the registration to obtain
> administrative approval.****
>
> ** **
>
> The solution here is not intended to provide software "authentication" or
> software verification. The solution simply allows service providers to make
> pragmatic decisions about sets of clients that typically work the same way
> in a change managed environment. ****
>
> ** **
>
> Question:  What happens if the server does not support these new
> parameters and the client provides them?  The current draft already covers
> this in Section 3.  Specifically:****
>
>  The Client Registration Endpoint MUST ignore all parameters it does not 
> understand.****
>
>  ** **
>
> Below are 3 options for the group to consider.  My recommendation is for
> option 1. My concern is option 2 will lead to complexity because clients
> and service providers will attempt to encode versions and software
> identifiers into one field. I would rather keep this to simple UUIDs for
> most cases.****
>
> ** **
>
> *Option 1 (2 parameters):*****
>
> ** **
>
> software_id****
>
> This value MAY be required by registration endpoints. The value MAY be a
> unique identifier (UUID) self-assigned by a the client application
> developer, or it MAY be an assertion. The value SHOULD be the same across
> all instances of a client on an application platform. For example,
> software used in a mobile phone should be considered as different from a
> web server implementation though it may share the same code. The
> identifier *SHOULD NOT *change between software updates. While a client
> application MAY be issued multiple client_id's and client credentials over
> its deployment lifecycle, the software_id SHOULD NOT change.****
>
> ** **
>
> Signed assertions MAY be used as software identifiers to allow different
> dynamic registration end-points to recognize approval from a common issuer
> (for example in cases where the resource API released by a single publisher
> but deployed in many different domains). The decision to use assertions and
> the method by which developers know how to obtain assertions is out of
> scope for this specification.****
>
> ** **
>
> [editorial note: some current deployments are using temporary client
> credential assertions for this purpose. I propose to standardize this in
> this field since an assertion would server the same purpose as a UUID only
> providing third party signing and other claims. I am concerned that passing
> a client assertion for this purpose creates complexity in client
> authentication processing - though obviously Justin has it working]****
>
> ** **
>
> software_version****
>
> RECOMMENDED. A version indicates a client developer chosen version number.
> The identifier SHOULD BE the same across all copies of client software. The
> version number SHOULD change between different client updates. The
> intention is that Service Providers MAY perform equality matching with
> software_id to sub-select groups of clients of a particular software
> version.****
>
> ** **
>
> *Option 2 (single parameter):*****
>
> ** **
>
> software_id****
>
> This value MAY be required by registration endpoints. The value MAY be a
> unique identifier (UUID) self-assigned by a the client application
> developer, or it MAY be an assertion. The value SHOULD be the same across
> all instances of a client on an application platform. For example, software
> used in a mobile phone should be considered as different from a web server
> implementation though it may share the same code. The identifier *SHOULD* 
> change
> when the client software has changed such as with a version update or a
> platform change.****
>
>
>
> Signed assertions MAY be used as software identifiers to allow different
> dynamic registration end-points to recognize approval from a common issuer
> (for example in cases where the resource API released by a single publisher
> but deployed in many different domains). The decision to use assertions and
> the method by which developers know how to obtain assertions is out of
> scope for this specification.****
>
> ** **
>
> [note: same editorial note as option 1]****
>
> ** **
>
> *Option 3 (no change):*****
>
> ** **
>
> In this option, no changes to the draft are made. ****
>
> ** **
>
> Personal comment:  It has been proposed by several on the list that
> another extension draft be written for these features as an extension to
> the dynamic registration draft. In my opinion, such a draft would be very
> small in size without clear reason for separation. My feeling is that some
> technical justification for keeping these features separated will likely be
> needed.****
>
> ** **
>
> Phil****
>
>
>
> @independentid****
>
> www.independentid.com****
>
> phil.h...@oracle.com****
>
>
>
>
>
> ****
>
> ** **
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth****
>
> ** **
>
>
> _______________________________________________
> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>
>
>
>
>
> _______________________________________________
> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>


-- 
Nat Sakimura (=nat)
Chairman, OpenID Foundation
http://nat.sakimura.org/
@_nat_en
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to