+1 for “tls_client_auth_root_dn"

On making it an array, I think that adds complexity for little gain, and 
perhaps introduces new trust issues.

I think it should be one trusted root or all the trusted roots.  If you only 
trust 5 then configure that in the AS.

An array seems only useful where the client has a cert from x but may want to 
get the next one from y and not re-register. 
I think if the client or federation operator is locking itself down to specific 
issuers one per client should be fine.
I expect that in most cases the issuer will need to be in the trust store of 
the AS anyway so this is just pinning the cert to one of a limited set.

John B.

> On May 15, 2017, at 2:42 PM, Brian Campbell <bcampb...@pingidentity.com> 
> wrote:
> 
> I'll add text/clarification that the DN metadata fields being RFC4514 string 
> representations of DNs in the next draft.
> 
> Given that this is a profile of use and the metadata fields are just one way 
> to express the binding of certificate and client, and after thinking about it 
> some more and not wanting to introduce too many variations, I feel that 
> keeping tls_client_auth_subject_dn as the subject distinguished name of the 
> client certificate is more straightforward and sufficient for this case.
> 
> Is there rough consensus to change "tls_client_auth_issuer_dn" to 
> "tls_client_auth_root_dn" as was suggested? The latter name makes sense to me 
> but I don't want to make that change without a little more input or buy-in 
> from the WG. So please respond one way or the other, if you've got an 
> opinion.  
> 
> Similarly I'm looking for some rough consensus around if a single root/issuer 
> is sufficient in the metadata before potentially making any changes. Should 
> "tls_client_auth_issuer/root_dn" remain a single DN string value or should it 
> be an array allowing for more than one? 
> 
> 
> 
> On Fri, Apr 21, 2017 at 6:18 PM, John Bradley <ve7...@ve7jtb.com 
> <mailto:ve7...@ve7jtb.com>> wrote:
> I agree with Brian.
> 
> Trying to do anything with PKIX opens up cans of worms.  One of the reasons 
> we have resisted to this point.
> 
> However there are server to server use cases that legitimately need this.
> 
> I agree that in general DN is a mess, I suspect that telling people to 
> directly use the DER encoded version wont fly, so my thought was to use the 
> RFC 4514 string representation that most tools produce.
> 
> We did talk about subject alt DNS Names, however those may not be present in 
> eIDAS certificates that some people may need to use for legal reasons, or if 
> it is present it might be an email.
> 
> I suspect that users of this will fall into two camps.  One that has a small 
> set of trusted CA that are configured out of band and any certificate from 
> those roots with the correct DN is OK.
> 
> The other group will be trying to do something more dynamic with SSL server 
> certs (May or may not be EV)   I could see those people preferring DNS Name 
> subject alt, or using JWKS to publish there certs.
> 
> The problem is finding the right balance of flexibility without too many 
> options to confuse people.
> 
> I am inclined towards DN for those that are willing to suffer the pain, and 
> JWKS_uri for everyone else.   One advantage of the JWKS_URI approach is that 
> self signed certs should work just fine, that is something that the R&E 
> people will want if they use this.  
> 
> For most proof of possession we should be promoting token binding as the most 
> flexible approach as it also works with mobile without per instance 
> registration.
> 
> John B.
> 
> 
>> On Apr 21, 2017, at 7:41 PM, Brian Campbell <bcampb...@pingidentity.com 
>> <mailto:bcampb...@pingidentity.com>> wrote:
>> 
>> Thanks, James, for the adoption support as well as the review and comments. 
>> I've tried to respond to the comments inline below. 
>> 
>> On Thu, Apr 20, 2017 at 11:33 PM, Manger, James 
>> <james.h.man...@team.telstra.com <mailto:james.h.man...@team.telstra.com>> 
>> wrote:
>> I support adoption of draft-campbell-oauth-mtls.
>> 
>> Now some comments on the doc:
>> 
>> 1. [§2.3] The syntax of tls_client_auth_subject_dn is not specified. Perhaps 
>> LDAP's "String Representation of Distinguished Names" [RFC4514]? Perhaps a 
>> base64url-encoding of a DER-encoded DN? It would actually be better to allow 
>> any subjectAltName to be specified, instead of a DN.
>> 
>> How about calling it tls_client_auth_subject and defining it as a string and 
>> allowing it to represent the expected subject which could be in the cert as 
>> the subject DN or a subjectAltName? For Subject DN and DN subjectAltNames it 
>> would be the "String Representation of Distinguished Names" and an 
>> appropriate string for the other subjectAltName types (I'll have to look at 
>> what's there 'cause I don't know off hand and guidance or suggested text is 
>> always more than welcome). 
>>  
>> 
>> 
>> 
>> 2. [§2.3] Change the name of tls_client_auth_issuer_dn (maybe 
>> tls_client_auth_root_dn). Given tls_client_auth_client_dn, it will be too 
>> easy to assume this pair refer to the issuer and subject fields of the cert.
>> 
>> The accompanying text tries to make it clear that it's the root issuer but 
>> the tls_client_auth_issuer_dn name can certainly be changed to 
>> tls_client_auth_root_dn or something along those lines, if folks think the 
>> name in -01 is liable to cause confusion?
>>  
>> 
>> 
>> PKI chains can be complex so the expected root might not be such a stable 
>> concept. For example, the Let's Encrypt CA chains to an ISRG Root and an 
>> IdenTrust DST Root [https://letsencrypt.org/certificates/ 
>> <https://letsencrypt.org/certificates/>].
>> 
>> The goal was to provide a metadata field to express some constraint for what 
>> is kind of expected to be a common deployment of a number of entities 
>> participating in some OAuth API thing and are being issued certificates from 
>> a common issuer for the group of participants. 
>> 
>> Perhaps it should be an array of strings rather than a single value?
>> 
>> Or do you have suggestions for some alternative?
>> 
>> 
>> 
>> 
>> 3. [§2.3] If a client dynamically registers a "jwks_uri" does this mean the 
>> authz server MUST automatically cope when the client updates the key(s) it 
>> publishes there?
>> 
>> If the authz server supports that kind of trust model as well as dynamically 
>> registration, then I would expect so, yes. 
>>  
>> 
>> 
>> 
>> 4. [§3] An access token is bound to a specific client certificate. That is 
>> probably ok, but does mean all access tokens die when the client updates 
>> their certificate (which could be every 2 months if using Let's Encrypt). 
>> This at least warrants a paragraph in the Security Considerations.
>> 
>> In my own mind that was implied and okay because it's likely that access 
>> tokens will have a shorter lifespan than certificates and refreshing or 
>> getting a new access token is typically easy anyhow.
>> 
>> Anyway, it doesn't hurt to be explicit about it, can you propose some such 
>> text for the Security Considerations?
>> 
>> 
>>  
>> 
>> 5. [§3.1] "exp" and "nbf" values in the example need to be numbers, not 
>> strings (drop the quotes).
>> 
>> Silly mistake on my part. Thanks for catching that. Will fix. 
>> 
>>  
>> 
>> 6. An access token linked to a client TLS cert isn't a bearer token. The 
>> spec should really define a new token_type for responses from the token 
>> endpoint. That might not necessarily mean we needs a new HTTP authentication 
>> scheme as well (it might just hint that "Bearer" wasn't quite the right 
>> name).
>> 
>> Indeed "Bearer" isn't quite right and very likely a name that would be 
>> different with the benefit of hindsight. But other than having names on the 
>> wire that are more true to the nature of the tokens, I don't know that a new 
>> token_type or HTTP auth scheme adds value to the use cases here. However, 
>> they would likely make deployment of this stuff more cumbersome and take 
>> longer.  Whereas many systems can likely plug in mutual TLS on top of the 
>> existing token_type and HTTP auth scheme without major changes. I'm strongly 
>> inclined to not introduce a new token_type and more inclined to not do a new 
>> HTTP auth scheme.
>> 
>> 
>> 
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>> https://www.ietf.org/mailman/listinfo/oauth 
>> <https://www.ietf.org/mailman/listinfo/oauth>
> 
> 

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to