Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-12 Thread Dolph Mathews
Just to follow up, I've posted a revised specification which only include
group *IDs* in tokens (so, effectively promoting OS-FEDERATION's behavior
to core without modification) and mention of an X-Group-Ids header in
keystonemiddleware.auth_token:

  https://review.openstack.org/#/c/188564/

On Wed, Jun 10, 2015 at 10:47 AM, Dolph Mathews dolph.math...@gmail.com
wrote:

 We're aiming for a Spec Proposal Freeze deadline for Liberty of June
 23rd, but are requiring that specs are approved by our spec reviewers by
 that date. The spec [1] is currently pretty straightforward and provides us
 several benefits, so I don't expect it to be a complicated process, but is
 currently pending a revision from myself. I'm confident in Liberty at this
 point.

 [1] https://review.openstack.org/#/c/188564/

 On Wed, Jun 10, 2015 at 10:35 AM, John Wood john.w...@rackspace.com
 wrote:

  Hello folks,

  Thanks for the consideration of this feature. Does it seem realistic
 for a Liberty release of Keystone middleware to expose X-Group-Ids, or
 would this be an M and beyond sort of thing?

  Thanks,
 John


   From: Henry Nash henryna...@mac.com
 Reply-To: OpenStack Development Mailing List (not for usage questions)
 openstack-dev@lists.openstack.org
 Date: Friday, June 5, 2015 at 12:49 PM

 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

   The one proviso is that in single LDAP situations, the cloud provider
 can chose (for backward compatibility reasons) to allow the underlying LDAP
 user/group ID….so we might want to advise this to be disabled (there’s a
 config switch to use the Public ID mapping for even this case).

  Henry

 On 5 Jun 2015, at 18:19, Dolph Mathews dolph.math...@gmail.com wrote:


 On Fri, Jun 5, 2015 at 11:50 AM, Henry Nash henry.n...@uk.ibm.com
 wrote:

 So I think that GroupID's are actually unique and safesince in the
 multi LDAP case we provide an indirection already in Keystone and issue a
 Public ID (this is true for bother users and groups), that we map to the
 underlying local ID in the particular LDAP backend.


  Oh, awesome! I didn't realize we did that for groups as well. So then,
 we're safe exposing X-Group-Ids to services via
 keystonemiddleware.auth_token but still not X-Group-Names (in any trivial
 form).




 Henry


   From:  Dolph Mathews dolph.math...@gmail.com  To:  OpenStack
 Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org, Henry Nash 
 hen...@linux.vnet.ibm.com, Henry Nash/UK/IBM@IBMGB   Date:  05/06/2015
 15:38   Subject:  Re: [openstack-dev] [keystone][barbican] Regarding
 exposing X-Group- in token validation

 --




 On Thu, Jun 4, 2015 at 10:17 PM, John Wood *john.w...@rackspace.com*
 john.w...@rackspace.com wrote:
 Hello folks,

 Regarding option C, if group IDs are unique within a given
 cloud/context, and these are discoverable by clients that can then set the
 ACL on a secret in Barbican, then that seems like a viable option to me. As
 it is now, the user information provided to the ACL is the user ID
 information as found in X-User-Ids now, not user names.

 To Kevin’s point though, are these group IDs unique across domains now,
 or in the future? If not the more complex tuples suggested could be used,
 but seem more error prone to configure on an ACL.

 Well, that's a good question, because that depends on the backend, and
 our backend architecture has recently gotten very complicated in this area.

 If groups are backed by SQL, then they're going to be globally unique
 UUIDs, so the answer is always yes.

 If they're backed by LDAP, then actually it depends on LDAP, but the
 answer should be yes.

 But the nightmare scenario we now support is domain-specific identity
 drivers, where each domain can actually be configured to talk to a
 different LDAP server. In that case, I don't think you can make any
 guarantees about group ID uniqueness :( Instead, each domain could provide
 whatever IDs it wants, and those might conflict with those of other
 domains. We have a workaround for a similar issue with user IDs, but it
 hasn't been applied to groups, leaving them quite broken in this scenario.
 I'd consider this to be an issue we need to solve in Keystone, though, not
 something other projects need to worry about. I'm hoping Henry Nash can
 chime in and correct me!


 Thanks,
 John

 *From: *Fox, Kevin M *kevin@pnnl.gov* kevin@pnnl.gov
 * Reply-To: *OpenStack Development Mailing List (not for usage
 questions) *openstack-dev@lists.openstack.org*
 openstack-dev@lists.openstack.org
 * Date: *Thursday, June 4, 2015 at 6:01 PM
 * To: *OpenStack Development Mailing List (not for usage questions) 
 *openstack-dev@lists.openstack.org* openstack-dev@lists.openstack.org

 * Subject: *Re: [openstack-dev] [keystone][barbican] Regarding

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-10 Thread John Wood
Hello folks,

Thanks for the consideration of this feature. Does it seem realistic for a 
Liberty release of Keystone middleware to expose X-Group-Ids, or would this be 
an M and beyond sort of thing?

Thanks,
John


From: Henry Nash henryna...@mac.commailto:henryna...@mac.com
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Friday, June 5, 2015 at 12:49 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

The one proviso is that in single LDAP situations, the cloud provider can chose 
(for backward compatibility reasons) to allow the underlying LDAP user/group 
ID….so we might want to advise this to be disabled (there’s a config switch to 
use the Public ID mapping for even this case).

Henry
On 5 Jun 2015, at 18:19, Dolph Mathews 
dolph.math...@gmail.commailto:dolph.math...@gmail.com wrote:


On Fri, Jun 5, 2015 at 11:50 AM, Henry Nash 
henry.n...@uk.ibm.commailto:henry.n...@uk.ibm.com wrote:
So I think that GroupID's are actually unique and safesince in the multi 
LDAP case we provide an indirection already in Keystone and issue a Public ID 
(this is true for bother users and groups), that we map to the underlying local 
ID in the particular LDAP backend.

Oh, awesome! I didn't realize we did that for groups as well. So then, we're 
safe exposing X-Group-Ids to services via keystonemiddleware.auth_token but 
still not X-Group-Names (in any trivial form).



Henry


From:   Dolph Mathews dolph.math...@gmail.commailto:dolph.math...@gmail.com
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org, 
Henry Nash hen...@linux.vnet.ibm.commailto:hen...@linux.vnet.ibm.com, Henry 
Nash/UK/IBM@IBMGB
Date:   05/06/2015 15:38
Subject:Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation






On Thu, Jun 4, 2015 at 10:17 PM, John Wood 
john.w...@rackspace.commailto:john.w...@rackspace.com wrote:
Hello folks,

Regarding option C, if group IDs are unique within a given cloud/context, and 
these are discoverable by clients that can then set the ACL on a secret in 
Barbican, then that seems like a viable option to me. As it is now, the user 
information provided to the ACL is the user ID information as found in 
X-User-Ids now, not user names.

To Kevin’s point though, are these group IDs unique across domains now, or in 
the future? If not the more complex tuples suggested could be used, but seem 
more error prone to configure on an ACL.

Well, that's a good question, because that depends on the backend, and our 
backend architecture has recently gotten very complicated in this area.

If groups are backed by SQL, then they're going to be globally unique UUIDs, so 
the answer is always yes.

If they're backed by LDAP, then actually it depends on LDAP, but the answer 
should be yes.

But the nightmare scenario we now support is domain-specific identity drivers, 
where each domain can actually be configured to talk to a different LDAP 
server. In that case, I don't think you can make any guarantees about group ID 
uniqueness :( Instead, each domain could provide whatever IDs it wants, and 
those might conflict with those of other domains. We have a workaround for a 
similar issue with user IDs, but it hasn't been applied to groups, leaving them 
quite broken in this scenario. I'd consider this to be an issue we need to 
solve in Keystone, though, not something other projects need to worry about. 
I'm hoping Henry Nash can chime in and correct me!


Thanks,
John

From: Fox, Kevin M kevin@pnnl.govmailto:kevin@pnnl.gov
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Thursday, June 4, 2015 at 6:01 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org

Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

In Juno I tried adding a user in Domain A to group in Domain B. That currently 
is not supported. Would be very handy though.

We're getting a ways from the original part of the thread, so I may have lost 
some context, but I think the original question was, if barbarian can add group 
names to their resource acls.

Since two administrative domains can issue the same group name, its not safe I 
believe.

Simply ensuring the group name is associated with a user and the domain for the 
user matches the domain for the group wouldn't work because someone with 
control of their own domain can just make a
user and give them

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-10 Thread Dolph Mathews
We're aiming for a Spec Proposal Freeze deadline for Liberty of June
23rd, but are requiring that specs are approved by our spec reviewers by
that date. The spec [1] is currently pretty straightforward and provides us
several benefits, so I don't expect it to be a complicated process, but is
currently pending a revision from myself. I'm confident in Liberty at this
point.

[1] https://review.openstack.org/#/c/188564/

On Wed, Jun 10, 2015 at 10:35 AM, John Wood john.w...@rackspace.com wrote:

  Hello folks,

  Thanks for the consideration of this feature. Does it seem realistic for
 a Liberty release of Keystone middleware to expose X-Group-Ids, or would
 this be an M and beyond sort of thing?

  Thanks,
 John


   From: Henry Nash henryna...@mac.com
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Date: Friday, June 5, 2015 at 12:49 PM

 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

   The one proviso is that in single LDAP situations, the cloud provider
 can chose (for backward compatibility reasons) to allow the underlying LDAP
 user/group ID….so we might want to advise this to be disabled (there’s a
 config switch to use the Public ID mapping for even this case).

  Henry

 On 5 Jun 2015, at 18:19, Dolph Mathews dolph.math...@gmail.com wrote:


 On Fri, Jun 5, 2015 at 11:50 AM, Henry Nash henry.n...@uk.ibm.com wrote:

 So I think that GroupID's are actually unique and safesince in the
 multi LDAP case we provide an indirection already in Keystone and issue a
 Public ID (this is true for bother users and groups), that we map to the
 underlying local ID in the particular LDAP backend.


  Oh, awesome! I didn't realize we did that for groups as well. So then,
 we're safe exposing X-Group-Ids to services via
 keystonemiddleware.auth_token but still not X-Group-Names (in any trivial
 form).




 Henry


   From:  Dolph Mathews dolph.math...@gmail.com  To:  OpenStack
 Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org, Henry Nash hen...@linux.vnet.ibm.com,
 Henry Nash/UK/IBM@IBMGB   Date:  05/06/2015 15:38   Subject:  Re:
 [openstack-dev] [keystone][barbican] Regarding exposing X-Group- in
 token validation

 --




 On Thu, Jun 4, 2015 at 10:17 PM, John Wood *john.w...@rackspace.com*
 john.w...@rackspace.com wrote:
 Hello folks,

 Regarding option C, if group IDs are unique within a given cloud/context,
 and these are discoverable by clients that can then set the ACL on a secret
 in Barbican, then that seems like a viable option to me. As it is now, the
 user information provided to the ACL is the user ID information as found in
 X-User-Ids now, not user names.

 To Kevin’s point though, are these group IDs unique across domains now,
 or in the future? If not the more complex tuples suggested could be used,
 but seem more error prone to configure on an ACL.

 Well, that's a good question, because that depends on the backend, and
 our backend architecture has recently gotten very complicated in this area.

 If groups are backed by SQL, then they're going to be globally unique
 UUIDs, so the answer is always yes.

 If they're backed by LDAP, then actually it depends on LDAP, but the
 answer should be yes.

 But the nightmare scenario we now support is domain-specific identity
 drivers, where each domain can actually be configured to talk to a
 different LDAP server. In that case, I don't think you can make any
 guarantees about group ID uniqueness :( Instead, each domain could provide
 whatever IDs it wants, and those might conflict with those of other
 domains. We have a workaround for a similar issue with user IDs, but it
 hasn't been applied to groups, leaving them quite broken in this scenario.
 I'd consider this to be an issue we need to solve in Keystone, though, not
 something other projects need to worry about. I'm hoping Henry Nash can
 chime in and correct me!


 Thanks,
 John

 *From: *Fox, Kevin M *kevin@pnnl.gov* kevin@pnnl.gov
 * Reply-To: *OpenStack Development Mailing List (not for usage
 questions) *openstack-dev@lists.openstack.org*
 openstack-dev@lists.openstack.org
 * Date: *Thursday, June 4, 2015 at 6:01 PM
 * To: *OpenStack Development Mailing List (not for usage questions) 
 *openstack-dev@lists.openstack.org* openstack-dev@lists.openstack.org

 * Subject: *Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

 In Juno I tried adding a user in Domain A to group in Domain B. That
 currently is not supported. Would be very handy though.

 We're getting a ways from the original part of the thread, so I may have
 lost some context, but I think the original question was, if barbarian can
 add group names to their resource acls.

 Since two administrative

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-05 Thread Dolph Mathews
On Thu, Jun 4, 2015 at 10:17 PM, John Wood john.w...@rackspace.com wrote:

  Hello folks,

  Regarding option C, if group IDs are unique within a given
 cloud/context, and these are discoverable by clients that can then set the
 ACL on a secret in Barbican, then that seems like a viable option to me. As
 it is now, the user information provided to the ACL is the user ID
 information as found in X-User-Ids now, not user names.

  To Kevin’s point though, are these group IDs unique across domains now,
 or in the future? If not the more complex tuples suggested could be used,
 but seem more error prone to configure on an ACL.


Well, that's a good question, because that depends on the backend, and our
backend architecture has recently gotten very complicated in this area.

If groups are backed by SQL, then they're going to be globally unique
UUIDs, so the answer is always yes.

If they're backed by LDAP, then actually it depends on LDAP, but the answer
should be yes.

But the nightmare scenario we now support is domain-specific identity
drivers, where each domain can actually be configured to talk to a
different LDAP server. In that case, I don't think you can make any
guarantees about group ID uniqueness :( Instead, each domain could provide
whatever IDs it wants, and those might conflict with those of other
domains. We have a workaround for a similar issue with user IDs, but it
hasn't been applied to groups, leaving them quite broken in this scenario.
I'd consider this to be an issue we need to solve in Keystone, though, not
something other projects need to worry about. I'm hoping Henry Nash can
chime in and correct me!



  Thanks,
 John

   From: Fox, Kevin M kevin@pnnl.gov
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org
 Date: Thursday, June 4, 2015 at 6:01 PM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org

 Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

   In Juno I tried adding a user in Domain A to group in Domain B. That
 currently is not supported. Would be very handy though.

 We're getting a ways from the original part of the thread, so I may have
 lost some context, but I think the original question was, if barbarian can
 add group names to their resource acls.

 Since two administrative domains can issue the same group name, its not
 safe I believe.

 Simply ensuring the group name is associated with a user and the domain
 for the user matches the domain for the group wouldn't work because someone
 with control of their own domain can just make a
 user and give them the group with the name they want and come take your
 credentials.

 What may be safe is for the barbican ACL to contain the group_id if they
 are uniqueue across all domains, or take a domain_id  group_name pair for
 the acl.

 Thanks,
 Kevin

  --
 *From:* Dolph Mathews [dolph.math...@gmail.com]
 *Sent:* Thursday, June 04, 2015 1:41 PM
 *To:* OpenStack Development Mailing List (not for usage questions)
 *Subject:* Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

   Problem! In writing a spec for this (
 https://review.openstack.org/#/c/188564/ ), I remembered that groups are
 domain-specific entities, which complicates the problem of providing
 X-Group-Names via middleware.

  The problem is that we can't simply expose X-Group-Names to underlying
 services without either A) making a well-documented assumption about the
 ONE owning domain scope of ALL included groups, B) passing significantly
 more data to underlying services than just a list of names (a domain scope
 for every group), C) passing only globally-unique group IDs (services would
 then have to retrieve additional details about each from from keystone if
 they so cared).

  Option A) More specifically, keystone could opt to enumerate the groups
 that belong to the same domain as the user. In this case, it'd probably
 make more sense from an API perspective if the groups enumeration were
 part of the user resources in the token response body (the user object
 already has a containing domain ID. That means that IF a user were to be
 assigned a group membership in another domain (assuming we didn't move to
 disallowing that behavior at some point), then it would have to be excluded
 from this list. If that were true, then I'd also follow that X-Group-Names
 become X-User-Group-Names, so that it might be more clear that they belong
 to the X-User-Domain-*.

  Option B) This is probably the most complex solution, but also the most
 explicit. I have no idea how this interface would look in terms of headers
 using current conventions. If we're going to break conventions, then I'd
 want to pass a id+domain_id+name for each group reference. So, rather than
 including a list of names AND a list of IDs, we'd have some terribly
 encoded

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-05 Thread Henry Nash
The one proviso is that in single LDAP situations, the cloud provider can chose 
(for backward compatibility reasons) to allow the underlying LDAP user/group 
ID….so we might want to advise this to be disabled (there’s a config switch to 
use the Public ID mapping for even this case).

Henry
 On 5 Jun 2015, at 18:19, Dolph Mathews dolph.math...@gmail.com wrote:
 
 
 On Fri, Jun 5, 2015 at 11:50 AM, Henry Nash henry.n...@uk.ibm.com 
 mailto:henry.n...@uk.ibm.com wrote:
 So I think that GroupID's are actually unique and safesince in the multi 
 LDAP case we provide an indirection already in Keystone and issue a Public 
 ID (this is true for bother users and groups), that we map to the underlying 
 local ID in the particular LDAP backend.
 
 Oh, awesome! I didn't realize we did that for groups as well. So then, we're 
 safe exposing X-Group-Ids to services via keystonemiddleware.auth_token but 
 still not X-Group-Names (in any trivial form).
  
 
 
 Henry 
 
 
 From: Dolph Mathews dolph.math...@gmail.com mailto:dolph.math...@gmail.com
 To:   OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org 
 mailto:openstack-dev@lists.openstack.org, Henry Nash 
 hen...@linux.vnet.ibm.com mailto:hen...@linux.vnet.ibm.com, Henry 
 Nash/UK/IBM@IBMGB
 Date: 05/06/2015 15:38
 Subject:  Re: [openstack-dev] [keystone][barbican] Regarding exposing 
 X-Group- in token validation
 
 
 
 
 
 On Thu, Jun 4, 2015 at 10:17 PM, John Wood john.w...@rackspace.com 
 mailto:john.w...@rackspace.com wrote: 
 Hello folks, 
 
 Regarding option C, if group IDs are unique within a given cloud/context, and 
 these are discoverable by clients that can then set the ACL on a secret in 
 Barbican, then that seems like a viable option to me. As it is now, the user 
 information provided to the ACL is the user ID information as found in 
 X-User-Ids now, not user names.  
 
 To Kevin’s point though, are these group IDs unique across domains now, or in 
 the future? If not the more complex tuples suggested could be used, but seem 
 more error prone to configure on an ACL. 
 
 Well, that's a good question, because that depends on the backend, and our 
 backend architecture has recently gotten very complicated in this area. 
 
 If groups are backed by SQL, then they're going to be globally unique UUIDs, 
 so the answer is always yes. 
 
 If they're backed by LDAP, then actually it depends on LDAP, but the answer 
 should be yes. 
 
 But the nightmare scenario we now support is domain-specific identity 
 drivers, where each domain can actually be configured to talk to a different 
 LDAP server. In that case, I don't think you can make any guarantees about 
 group ID uniqueness :( Instead, each domain could provide whatever IDs it 
 wants, and those might conflict with those of other domains. We have a 
 workaround for a similar issue with user IDs, but it hasn't been applied to 
 groups, leaving them quite broken in this scenario. I'd consider this to be 
 an issue we need to solve in Keystone, though, not something other projects 
 need to worry about. I'm hoping Henry Nash can chime in and correct me! 
   
 
 Thanks, 
 John 
 
 From: Fox, Kevin M kevin@pnnl.gov mailto:kevin@pnnl.gov
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org mailto:openstack-dev@lists.openstack.org
 Date: Thursday, June 4, 2015 at 6:01 PM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org 
 mailto:openstack-dev@lists.openstack.org 
 
 Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
 X-Group- in token validation 
 
 In Juno I tried adding a user in Domain A to group in Domain B. That 
 currently is not supported. Would be very handy though.
 
 We're getting a ways from the original part of the thread, so I may have lost 
 some context, but I think the original question was, if barbarian can add 
 group names to their resource acls.
 
 Since two administrative domains can issue the same group name, its not safe 
 I believe.
 
 Simply ensuring the group name is associated with a user and the domain for 
 the user matches the domain for the group wouldn't work because someone with 
 control of their own domain can just make a 
 user and give them the group with the name they want and come take your 
 credentials.
 
 What may be safe is for the barbican ACL to contain the group_id if they are 
 uniqueue across all domains, or take a domain_id  group_name pair for the 
 acl.
 
 Thanks,
 Kevin
 
 
 From: Dolph Mathews [dolph.math...@gmail.com mailto:dolph.math...@gmail.com]
 Sent: Thursday, June 04, 2015 1:41 PM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
 X-Group- in token validation
 
 Problem! In writing a spec for this ( 
 https://review.openstack.org/#/c/188564/ 
 https://review.openstack.org

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-05 Thread Dolph Mathews
On Fri, Jun 5, 2015 at 11:50 AM, Henry Nash henry.n...@uk.ibm.com wrote:

 So I think that GroupID's are actually unique and safesince in the
 multi LDAP case we provide an indirection already in Keystone and issue a
 Public ID (this is true for bother users and groups), that we map to the
 underlying local ID in the particular LDAP backend.


Oh, awesome! I didn't realize we did that for groups as well. So then,
we're safe exposing X-Group-Ids to services via
keystonemiddleware.auth_token but still not X-Group-Names (in any trivial
form).




 Henry


  From: Dolph Mathews dolph.math...@gmail.com To: OpenStack Development
 Mailing List (not for usage questions) openstack-dev@lists.openstack.org,
 Henry Nash hen...@linux.vnet.ibm.com, Henry Nash/UK/IBM@IBMGB Date: 
 05/06/2015
 15:38 Subject: Re: [openstack-dev] [keystone][barbican] Regarding
 exposing X-Group- in token validation

 --




 On Thu, Jun 4, 2015 at 10:17 PM, John Wood *john.w...@rackspace.com*
 john.w...@rackspace.com wrote:
 Hello folks,

 Regarding option C, if group IDs are unique within a given cloud/context,
 and these are discoverable by clients that can then set the ACL on a secret
 in Barbican, then that seems like a viable option to me. As it is now, the
 user information provided to the ACL is the user ID information as found in
 X-User-Ids now, not user names.

 To Kevin’s point though, are these group IDs unique across domains now, or
 in the future? If not the more complex tuples suggested could be used, but
 seem more error prone to configure on an ACL.

 Well, that's a good question, because that depends on the backend, and our
 backend architecture has recently gotten very complicated in this area.

 If groups are backed by SQL, then they're going to be globally unique
 UUIDs, so the answer is always yes.

 If they're backed by LDAP, then actually it depends on LDAP, but the
 answer should be yes.

 But the nightmare scenario we now support is domain-specific identity
 drivers, where each domain can actually be configured to talk to a
 different LDAP server. In that case, I don't think you can make any
 guarantees about group ID uniqueness :( Instead, each domain could provide
 whatever IDs it wants, and those might conflict with those of other
 domains. We have a workaround for a similar issue with user IDs, but it
 hasn't been applied to groups, leaving them quite broken in this scenario.
 I'd consider this to be an issue we need to solve in Keystone, though, not
 something other projects need to worry about. I'm hoping Henry Nash can
 chime in and correct me!


 Thanks,
 John

 *From: *Fox, Kevin M *kevin@pnnl.gov* kevin@pnnl.gov
 * Reply-To: *OpenStack Development Mailing List (not for usage
 questions) *openstack-dev@lists.openstack.org*
 openstack-dev@lists.openstack.org
 * Date: *Thursday, June 4, 2015 at 6:01 PM
 * To: *OpenStack Development Mailing List (not for usage questions) 
 *openstack-dev@lists.openstack.org* openstack-dev@lists.openstack.org

 * Subject: *Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

 In Juno I tried adding a user in Domain A to group in Domain B. That
 currently is not supported. Would be very handy though.

 We're getting a ways from the original part of the thread, so I may have
 lost some context, but I think the original question was, if barbarian can
 add group names to their resource acls.

 Since two administrative domains can issue the same group name, its not
 safe I believe.

 Simply ensuring the group name is associated with a user and the domain
 for the user matches the domain for the group wouldn't work because someone
 with control of their own domain can just make a
 user and give them the group with the name they want and come take your
 credentials.

 What may be safe is for the barbican ACL to contain the group_id if they
 are uniqueue across all domains, or take a domain_id  group_name pair for
 the acl.

 Thanks,
 Kevin

 --

 *From:* Dolph Mathews [*dolph.math...@gmail.com* dolph.math...@gmail.com
 ]
 * Sent:* Thursday, June 04, 2015 1:41 PM
 * To:* OpenStack Development Mailing List (not for usage questions)
 * Subject:* Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

 Problem! In writing a spec for this (
 *https://review.openstack.org/#/c/188564/*
 https://review.openstack.org/#/c/188564/ ), I remembered that groups
 are domain-specific entities, which complicates the problem of providing
 X-Group-Names via middleware.

 The problem is that we can't simply expose X-Group-Names to underlying
 services without either A) making a well-documented assumption about the
 ONE owning domain scope of ALL included groups, B) passing significantly
 more data to underlying services than just a list of names (a domain scope
 for every group), C) passing only globally-unique group IDs (services would
 then have

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-05 Thread Henry Nash
So I think that GroupID's are actually unique and safesince in the multi 
LDAP case we provide an indirection already in Keystone and issue a Public ID 
(this is true for BOTH users and groups), that we map to the underlying local 
ID in the particular LDAP backend. 

Henry

 On 5 Jun 2015, at 15:37, Dolph Mathews dolph.math...@gmail.com wrote:
 
 
 On Thu, Jun 4, 2015 at 10:17 PM, John Wood john.w...@rackspace.com 
 mailto:john.w...@rackspace.com wrote:
 Hello folks,
 
 Regarding option C, if group IDs are unique within a given cloud/context, and 
 these are discoverable by clients that can then set the ACL on a secret in 
 Barbican, then that seems like a viable option to me. As it is now, the user 
 information provided to the ACL is the user ID information as found in 
 X-User-Ids now, not user names. 
 
 To Kevin’s point though, are these group IDs unique across domains now, or in 
 the future? If not the more complex tuples suggested could be used, but seem 
 more error prone to configure on an ACL.
 
 Well, that's a good question, because that depends on the backend, and our 
 backend architecture has recently gotten very complicated in this area.
 
 If groups are backed by SQL, then they're going to be globally unique UUIDs, 
 so the answer is always yes.
 
 If they're backed by LDAP, then actually it depends on LDAP, but the answer 
 should be yes.
 
 But the nightmare scenario we now support is domain-specific identity 
 drivers, where each domain can actually be configured to talk to a different 
 LDAP server. In that case, I don't think you can make any guarantees about 
 group ID uniqueness :( Instead, each domain could provide whatever IDs it 
 wants, and those might conflict with those of other domains. We have a 
 workaround for a similar issue with user IDs, but it hasn't been applied to 
 groups, leaving them quite broken in this scenario. I'd consider this to be 
 an issue we need to solve in Keystone, though, not something other projects 
 need to worry about. I'm hoping Henry Nash can chime in and correct me!
  
 
 Thanks,
 John
 
 From: Fox, Kevin M kevin@pnnl.gov mailto:kevin@pnnl.gov
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org mailto:openstack-dev@lists.openstack.org
 Date: Thursday, June 4, 2015 at 6:01 PM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org mailto:openstack-dev@lists.openstack.org
 
 Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
 X-Group- in token validation
 
 In Juno I tried adding a user in Domain A to group in Domain B. That 
 currently is not supported. Would be very handy though.
 
 We're getting a ways from the original part of the thread, so I may have lost 
 some context, but I think the original question was, if barbarian can add 
 group names to their resource acls.
 
 Since two administrative domains can issue the same group name, its not safe 
 I believe.
 
 Simply ensuring the group name is associated with a user and the domain for 
 the user matches the domain for the group wouldn't work because someone with 
 control of their own domain can just make a 
 user and give them the group with the name they want and come take your 
 credentials.
 
 What may be safe is for the barbican ACL to contain the group_id if they are 
 uniqueue across all domains, or take a domain_id  group_name pair for the 
 acl.
 
 Thanks,
 Kevin
 
 From: Dolph Mathews [dolph.math...@gmail.com mailto:dolph.math...@gmail.com]
 Sent: Thursday, June 04, 2015 1:41 PM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
 X-Group- in token validation
 
 Problem! In writing a spec for this ( 
 https://review.openstack.org/#/c/188564/ 
 https://review.openstack.org/#/c/188564/ ), I remembered that groups are 
 domain-specific entities, which complicates the problem of providing 
 X-Group-Names via middleware.
 
 The problem is that we can't simply expose X-Group-Names to underlying 
 services without either A) making a well-documented assumption about the ONE 
 owning domain scope of ALL included groups, B) passing significantly more 
 data to underlying services than just a list of names (a domain scope for 
 every group), C) passing only globally-unique group IDs (services would then 
 have to retrieve additional details about each from from keystone if they so 
 cared).
 
 Option A) More specifically, keystone could opt to enumerate the groups that 
 belong to the same domain as the user. In this case, it'd probably make more 
 sense from an API perspective if the groups enumeration were part of the 
 user resources in the token response body (the user object already has a 
 containing domain ID. That means that IF a user were to be assigned a group 
 membership in another domain (assuming we didn't move to disallowing that 
 behavior at some

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-05 Thread Fox, Kevin M
I seem yo remember there being a mapping driver of some kind in juno+ that when 
enabled doesnt just use the ldap unique identifier raw. Its optional though. I 
also dont know if it doublechecks for uniqueness or just hashes.

Thanks,
Kevin


From: Dolph Mathews
Sent: Friday, June 05, 2015 7:37:54 AM
To: OpenStack Development Mailing List (not for usage questions); Henry Nash; 
Henry Nash
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation


On Thu, Jun 4, 2015 at 10:17 PM, John Wood 
john.w...@rackspace.commailto:john.w...@rackspace.com wrote:
Hello folks,

Regarding option C, if group IDs are unique within a given cloud/context, and 
these are discoverable by clients that can then set the ACL on a secret in 
Barbican, then that seems like a viable option to me. As it is now, the user 
information provided to the ACL is the user ID information as found in 
X-User-Ids now, not user names.

To Kevin’s point though, are these group IDs unique across domains now, or in 
the future? If not the more complex tuples suggested could be used, but seem 
more error prone to configure on an ACL.

Well, that's a good question, because that depends on the backend, and our 
backend architecture has recently gotten very complicated in this area.

If groups are backed by SQL, then they're going to be globally unique UUIDs, so 
the answer is always yes.

If they're backed by LDAP, then actually it depends on LDAP, but the answer 
should be yes.

But the nightmare scenario we now support is domain-specific identity drivers, 
where each domain can actually be configured to talk to a different LDAP 
server. In that case, I don't think you can make any guarantees about group ID 
uniqueness :( Instead, each domain could provide whatever IDs it wants, and 
those might conflict with those of other domains. We have a workaround for a 
similar issue with user IDs, but it hasn't been applied to groups, leaving them 
quite broken in this scenario. I'd consider this to be an issue we need to 
solve in Keystone, though, not something other projects need to worry about. 
I'm hoping Henry Nash can chime in and correct me!


Thanks,
John

From: Fox, Kevin M kevin@pnnl.govmailto:kevin@pnnl.gov
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Thursday, June 4, 2015 at 6:01 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org

Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

In Juno I tried adding a user in Domain A to group in Domain B. That currently 
is not supported. Would be very handy though.

We're getting a ways from the original part of the thread, so I may have lost 
some context, but I think the original question was, if barbarian can add group 
names to their resource acls.

Since two administrative domains can issue the same group name, its not safe I 
believe.

Simply ensuring the group name is associated with a user and the domain for the 
user matches the domain for the group wouldn't work because someone with 
control of their own domain can just make a
user and give them the group with the name they want and come take your 
credentials.

What may be safe is for the barbican ACL to contain the group_id if they are 
uniqueue across all domains, or take a domain_id  group_name pair for the acl.

Thanks,
Kevin


From: Dolph Mathews [dolph.math...@gmail.commailto:dolph.math...@gmail.com]
Sent: Thursday, June 04, 2015 1:41 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

Problem! In writing a spec for this ( https://review.openstack.org/#/c/188564/ 
), I remembered that groups are domain-specific entities, which complicates the 
problem of providing X-Group-Names via middleware.

The problem is that we can't simply expose X-Group-Names to underlying services 
without either A) making a well-documented assumption about the ONE owning 
domain scope of ALL included groups, B) passing significantly more data to 
underlying services than just a list of names (a domain scope for every group), 
C) passing only globally-unique group IDs (services would then have to retrieve 
additional details about each from from keystone if they so cared).

Option A) More specifically, keystone could opt to enumerate the groups that 
belong to the same domain as the user. In this case, it'd probably make more 
sense from an API perspective if the groups enumeration were part of the 
user resources in the token response body (the user object already has a 
containing domain ID. That means that IF a user were to be assigned a group 
membership in another domain

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-04 Thread John Wood
Hello folks,

Regarding option C, if group IDs are unique within a given cloud/context, and 
these are discoverable by clients that can then set the ACL on a secret in 
Barbican, then that seems like a viable option to me. As it is now, the user 
information provided to the ACL is the user ID information as found in 
X-User-Ids now, not user names.

To Kevin’s point though, are these group IDs unique across domains now, or in 
the future? If not the more complex tuples suggested could be used, but seem 
more error prone to configure on an ACL.

Thanks,
John

From: Fox, Kevin M kevin@pnnl.govmailto:kevin@pnnl.gov
Reply-To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Date: Thursday, June 4, 2015 at 6:01 PM
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.orgmailto:openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

In Juno I tried adding a user in Domain A to group in Domain B. That currently 
is not supported. Would be very handy though.

We're getting a ways from the original part of the thread, so I may have lost 
some context, but I think the original question was, if barbarian can add group 
names to their resource acls.

Since two administrative domains can issue the same group name, its not safe I 
believe.

Simply ensuring the group name is associated with a user and the domain for the 
user matches the domain for the group wouldn't work because someone with 
control of their own domain can just make a
user and give them the group with the name they want and come take your 
credentials.

What may be safe is for the barbican ACL to contain the group_id if they are 
uniqueue across all domains, or take a domain_id  group_name pair for the acl.

Thanks,
Kevin


From: Dolph Mathews [dolph.math...@gmail.commailto:dolph.math...@gmail.com]
Sent: Thursday, June 04, 2015 1:41 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

Problem! In writing a spec for this ( https://review.openstack.org/#/c/188564/ 
), I remembered that groups are domain-specific entities, which complicates the 
problem of providing X-Group-Names via middleware.

The problem is that we can't simply expose X-Group-Names to underlying services 
without either A) making a well-documented assumption about the ONE owning 
domain scope of ALL included groups, B) passing significantly more data to 
underlying services than just a list of names (a domain scope for every group), 
C) passing only globally-unique group IDs (services would then have to retrieve 
additional details about each from from keystone if they so cared).

Option A) More specifically, keystone could opt to enumerate the groups that 
belong to the same domain as the user. In this case, it'd probably make more 
sense from an API perspective if the groups enumeration were part of the 
user resources in the token response body (the user object already has a 
containing domain ID. That means that IF a user were to be assigned a group 
membership in another domain (assuming we didn't move to disallowing that 
behavior at some point), then it would have to be excluded from this list. If 
that were true, then I'd also follow that X-Group-Names become 
X-User-Group-Names, so that it might be more clear that they belong to the 
X-User-Domain-*.

Option B) This is probably the most complex solution, but also the most 
explicit. I have no idea how this interface would look in terms of headers 
using current conventions. If we're going to break conventions, then I'd want 
to pass a id+domain_id+name for each group reference. So, rather than including 
a list of names AND a list of IDs, we'd have some terribly encoded list of 
group objects (I'm not sure what the HTTP convention is on this sort of use 
case, and hoping someone can illustrate a better solution given the 
representation below):

  X-Groups: 
id%3D123%2Cdomain_id%3D456%2Cname%3Dabc,id%3D789%2Cdomain_id%3D357%2Cname%3Ddef

Option C) Federated tokens would actually require solution (C) today because 
they only include group IDs, not names. But the group enumeration in federated 
tokens was also only intended to be consumed by keystone, so that's not really 
an issue for that one use case. But option (C) would mean there are no 
X-Group-Names passed to services, just X-Group-Ids. I'm guessing this won't 
provide the user experience that Barbican is looking for?


I'm leaning towards solution (A), but curious if that'll work for Barbican 
and/or if anyone has an idea that I'm overlooking.


On Thu, Jun 4, 2015 at 8:18 AM, Dolph Mathews 
dolph.math...@gmail.commailto:dolph.math...@gmail.com wrote:
To clarify: we already have to include the groups

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-04 Thread Dolph Mathews
 PM, Steve Martinelli steve...@ca.ibm.com
 wrote:

 Dozens to hundreds of roles or endpoints could cause an issue now :)

 But yeah, groups are much more likely to number in the dozens than roles
 or endpoints. But I think the Fernet token size is so small that it could
 probably handle this (since it does so now for the federated workflow).

 Thanks,

 Steve Martinelli
 OpenStack Keystone Core



 From:Fox, Kevin M kevin@pnnl.gov
 To:OpenStack Development Mailing List (not for usage
 questions) openstack-dev@lists.openstack.org
 Date:06/03/2015 11:14 PM
 Subject:Re: [openstack-dev] [keystone][barbican] Regarding
exposingX-Group- in token validation
 --



 Will dozens to a hundred groups or so on one user cause issues? :)

 Thanks,
 Kevin

 --
 *From:* Morgan Fainberg
 * Sent:* Wednesday, June 03, 2015 7:23:22 PM
 * To:* OpenStack Development Mailing List (not for usage questions)
 * Subject:* Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

 In general I am of the opinion with the move to Fernet there is no good
 reason we should avoid adding the group information into the token.

 --Morgan

 Sent via mobile

 On Jun 3, 2015, at 18:44, Dolph Mathews *dolph.math...@gmail.com*
 dolph.math...@gmail.com wrote:


 On Wed, Jun 3, 2015 at 5:58 PM, John Wood *john.w...@rackspace.com*
 john.w...@rackspace.com wrote:
 Hello folks,

 There has been discussion about adding user group support to the
 per-secret access control list (ACL) feature in Barbican. Hence secrets
 could be marked as accessible by a group on the ACL rather than an
 individual user as implemented now.

 Our understanding is that Keystone does not pass along a user’s group
 information during token validation however (such as in the form of
 X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).

 The pre-requisite for including that information in the form of headers
 would be adding group information to the token validation response. In the
 case of UUID, it would be pre-computed and stored in the DB at token
 creation time. In the case of PKI, it would be encoded into the PKI token
 and further bloat PKI tokens. And in the case of Fernet, it would be
 included at token validation time.

 Including group information, however, would also let us efficient revoke
 tokens using token revocation events when group membership is affected in
 any way (user being removed from a group, a group being deleted, or a
 group-based role assignment being revoked). The OS-FEDERATION extension is
 actually already including groups in tokens today, as a required part of
 the federated workflow. We'd effectively be introducing that same behavior
 into the core Identity API (see the federated token example):


 *https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token*
 https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token

 This would allow us to address bugs such as:

   *https://bugs.launchpad.net/keystone/+bug/1268751*
 https://bugs.launchpad.net/keystone/+bug/1268751

 In the past, we shied away from including groups if only to avoid
 bloating the size of PKI tokens any further (but now we have Fernet tokens
 providing a viable alternative). Are there any other reasons not to add
 group information to the token validation response?


 Would the community consider this a useful feature? Would the community
 consider adding this support to Liberty?

 Thank you,
 John



 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 *openstack-dev-requ...@lists.openstack.org?subject:unsubscribe*
 http://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 *http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev*
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: *openstack-dev-requ...@lists.openstack.org*
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 *http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev*
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe:
 openstack-dev-requ

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-04 Thread Fox, Kevin M
In Juno I tried adding a user in Domain A to group in Domain B. That currently 
is not supported. Would be very handy though.

We're getting a ways from the original part of the thread, so I may have lost 
some context, but I think the original question was, if barbarian can add group 
names to their resource acls.

Since two administrative domains can issue the same group name, its not safe I 
believe.

Simply ensuring the group name is associated with a user and the domain for the 
user matches the domain for the group wouldn't work because someone with 
control of their own domain can just make a
user and give them the group with the name they want and come take your 
credentials.

What may be safe is for the barbican ACL to contain the group_id if they are 
uniqueue across all domains, or take a domain_id  group_name pair for the acl.

Thanks,
Kevin


From: Dolph Mathews [dolph.math...@gmail.com]
Sent: Thursday, June 04, 2015 1:41 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

Problem! In writing a spec for this ( https://review.openstack.org/#/c/188564/ 
), I remembered that groups are domain-specific entities, which complicates the 
problem of providing X-Group-Names via middleware.

The problem is that we can't simply expose X-Group-Names to underlying services 
without either A) making a well-documented assumption about the ONE owning 
domain scope of ALL included groups, B) passing significantly more data to 
underlying services than just a list of names (a domain scope for every group), 
C) passing only globally-unique group IDs (services would then have to retrieve 
additional details about each from from keystone if they so cared).

Option A) More specifically, keystone could opt to enumerate the groups that 
belong to the same domain as the user. In this case, it'd probably make more 
sense from an API perspective if the groups enumeration were part of the 
user resources in the token response body (the user object already has a 
containing domain ID. That means that IF a user were to be assigned a group 
membership in another domain (assuming we didn't move to disallowing that 
behavior at some point), then it would have to be excluded from this list. If 
that were true, then I'd also follow that X-Group-Names become 
X-User-Group-Names, so that it might be more clear that they belong to the 
X-User-Domain-*.

Option B) This is probably the most complex solution, but also the most 
explicit. I have no idea how this interface would look in terms of headers 
using current conventions. If we're going to break conventions, then I'd want 
to pass a id+domain_id+name for each group reference. So, rather than including 
a list of names AND a list of IDs, we'd have some terribly encoded list of 
group objects (I'm not sure what the HTTP convention is on this sort of use 
case, and hoping someone can illustrate a better solution given the 
representation below):

  X-Groups: 
id%3D123%2Cdomain_id%3D456%2Cname%3Dabc,id%3D789%2Cdomain_id%3D357%2Cname%3Ddef

Option C) Federated tokens would actually require solution (C) today because 
they only include group IDs, not names. But the group enumeration in federated 
tokens was also only intended to be consumed by keystone, so that's not really 
an issue for that one use case. But option (C) would mean there are no 
X-Group-Names passed to services, just X-Group-Ids. I'm guessing this won't 
provide the user experience that Barbican is looking for?


I'm leaning towards solution (A), but curious if that'll work for Barbican 
and/or if anyone has an idea that I'm overlooking.


On Thu, Jun 4, 2015 at 8:18 AM, Dolph Mathews 
dolph.math...@gmail.commailto:dolph.math...@gmail.com wrote:
To clarify: we already have to include the groups produced as a result of 
federation mapping **in the payload** of Fernet tokens so that scoped tokens 
can be created later:

  
https://github.com/openstack/keystone/blob/a637ebcbc4a92687d3e80a50cbe88df3b13c79e6/keystone/token/providers/fernet/token_formatters.py#L523

These are OpenStack group IDs, so it's up to the deployer to keep those under 
control to keep Fernet token sizes down. It's the only place in the current 
Fernet implementation that's (somewhat alarmingly) unbounded in the real world.

But we do **not** have a use case to add groups to *all* Fernet payloads: only 
to token creation  validation responses.


On Thu, Jun 4, 2015 at 2:36 AM, Morgan Fainberg 
morgan.fainb...@gmail.commailto:morgan.fainb...@gmail.com wrote:
For Fernet, the groups would only be populated on validate as Dolph outlined. 
They would not be added to the core payload. We do not want to expand the 
payload in this manner.

--Morgan

Sent via mobile

On Jun 3, 2015, at 21:51, Lance Bragstad 
lbrags...@gmail.commailto:lbrags...@gmail.com wrote:

I feel if we allowed group ids

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-04 Thread Lance Bragstad
On Thu, Jun 4, 2015 at 8:18 AM, Dolph Mathews dolph.math...@gmail.com
wrote:

 To clarify: we already have to include the groups produced as a result of
 federation mapping **in the payload** of Fernet tokens so that scoped
 tokens can be created later:


 https://github.com/openstack/keystone/blob/a637ebcbc4a92687d3e80a50cbe88df3b13c79e6/keystone/token/providers/fernet/token_formatters.py#L523

 These are OpenStack group IDs, so it's up to the deployer to keep those
 under control to keep Fernet token sizes down. It's the only place in the
 current Fernet implementation that's (somewhat alarmingly) unbounded in the
 real world.

 But we do **not** have a use case to add groups to *all* Fernet payloads:
 only to token creation  validation responses.


Ah, that makes sense. So we would be adding logic to get_token_data() [0]
that would allow for groups to be populated in the response based on the
user id? For that we shouldn't need anything in the token outside of the
user_id, right? We would just need get_token_data to call the identity_api
for the groups a user belongs to [1]. This makes sense, I was thinking we
were going to pull all groups *inside* the Fernet payload.

[0]
https://github.com/openstack/keystone/blob/a637ebcbc4a92687d3e80a50cbe88df3b13c79e6/keystone/token/providers/common.py#L413
[1]
https://github.com/openstack/keystone/blob/a637ebcbc4a92687d3e80a50cbe88df3b13c79e6/keystone/identity/core.py#L977



 On Thu, Jun 4, 2015 at 2:36 AM, Morgan Fainberg morgan.fainb...@gmail.com
  wrote:

 For Fernet, the groups would only be populated on validate as Dolph
 outlined. They would not be added to the core payload. We do not want to
 expand the payload in this manner.

 --Morgan

 Sent via mobile

 On Jun 3, 2015, at 21:51, Lance Bragstad lbrags...@gmail.com wrote:

 I feel if we allowed group ids to be an attribute of the Fernet's core
 payload, we continue to open up the possibility for tokens to be greater
 than the initial acceptable size limit for a Fernet token (which I
 believe was 255 bytes?). With this, I think we need to provide guidance on
 the number of group ids allowed within the token before that size limit is
 compromised.

 We've landed patches recently that allow for id strings to be included in
 the Fernet payload [0], regardless of being uuid format (which can be
 converted to bytes before packing to save space, this is harder for us to
 do with non-uuid format id strings). This can also cause the Fernet token
 size to grow. If we plan to include more information in the Fernet token
 payload I think we should determine if the original acceptable size limit
 still applies and regardless of what that size limit is provide some sort
 of best practices for helping deployments keep their token size as small
 as possible.


 Keeping the tokens user (and developer) friendly was a big plus in the
 design of Fernet, and providing resource for deployments to maintain that
 would be helpful.


 [0]
 https://review.openstack.org/#/q/status:merged+project:openstack/keystone+branch:master+topic:bug/1459382,n,z

 On Wed, Jun 3, 2015 at 10:19 PM, Steve Martinelli steve...@ca.ibm.com
 wrote:

 Dozens to hundreds of roles or endpoints could cause an issue now :)

 But yeah, groups are much more likely to number in the dozens than roles
 or endpoints. But I think the Fernet token size is so small that it could
 probably handle this (since it does so now for the federated workflow).

 Thanks,

 Steve Martinelli
 OpenStack Keystone Core



 From:Fox, Kevin M kevin@pnnl.gov
 To:OpenStack Development Mailing List (not for usage
 questions) openstack-dev@lists.openstack.org
 Date:06/03/2015 11:14 PM
 Subject:Re: [openstack-dev] [keystone][barbican] Regarding
exposingX-Group- in token validation
 --



 Will dozens to a hundred groups or so on one user cause issues? :)

 Thanks,
 Kevin

 --
 *From:* Morgan Fainberg
 * Sent:* Wednesday, June 03, 2015 7:23:22 PM
 * To:* OpenStack Development Mailing List (not for usage questions)
 * Subject:* Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

 In general I am of the opinion with the move to Fernet there is no good
 reason we should avoid adding the group information into the token.

 --Morgan

 Sent via mobile

 On Jun 3, 2015, at 18:44, Dolph Mathews *dolph.math...@gmail.com*
 dolph.math...@gmail.com wrote:


 On Wed, Jun 3, 2015 at 5:58 PM, John Wood *john.w...@rackspace.com*
 john.w...@rackspace.com wrote:
 Hello folks,

 There has been discussion about adding user group support to the
 per-secret access control list (ACL) feature in Barbican. Hence secrets
 could be marked as accessible by a group on the ACL rather than an
 individual user as implemented now.

 Our understanding is that Keystone does not pass along a user’s group
 information during token validation however (such as in the form of
 X

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-04 Thread Morgan Fainberg
For Fernet, the groups would only be populated on validate as Dolph outlined. 
They would not be added to the core payload. We do not want to expand the 
payload in this manner. 

--Morgan

Sent via mobile

 On Jun 3, 2015, at 21:51, Lance Bragstad lbrags...@gmail.com wrote:
 
 I feel if we allowed group ids to be an attribute of the Fernet's core 
 payload, we continue to open up the possibility for tokens to be greater than 
 the initial acceptable size limit for a Fernet token (which I believe was 
 255 bytes?). With this, I think we need to provide guidance on the number of 
 group ids allowed within the token before that size limit is compromised.
 
 We've landed patches recently that allow for id strings to be included in the 
 Fernet payload [0], regardless of being uuid format (which can be converted 
 to bytes before packing to save space, this is harder for us to do with 
 non-uuid format id strings). This can also cause the Fernet token size to 
 grow. If we plan to include more information in the Fernet token payload I 
 think we should determine if the original acceptable size limit still applies 
 and regardless of what that size limit is provide some sort of best 
 practices for helping deployments keep their token size as small as possible.
 
 
 Keeping the tokens user (and developer) friendly was a big plus in the design 
 of Fernet, and providing resource for deployments to maintain that would be 
 helpful.
 
 
 [0] 
 https://review.openstack.org/#/q/status:merged+project:openstack/keystone+branch:master+topic:bug/1459382,n,z
 
 On Wed, Jun 3, 2015 at 10:19 PM, Steve Martinelli steve...@ca.ibm.com 
 wrote:
 Dozens to hundreds of roles or endpoints could cause an issue now :) 
 
 But yeah, groups are much more likely to number in the dozens than roles or 
 endpoints. But I think the Fernet token size is so small that it could 
 probably handle this (since it does so now for the federated workflow). 
 
 Thanks,
 
 Steve Martinelli
 OpenStack Keystone Core 
 
 
 
 From:Fox, Kevin M kevin@pnnl.gov 
 To:OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org 
 Date:06/03/2015 11:14 PM 
 Subject:Re: [openstack-dev] [keystone][barbican] Regarding
 exposingX-Group- in token validation 
 
 
 
 Will dozens to a hundred groups or so on one user cause issues? :)
 
 Thanks,
 Kevin 
   
 From: Morgan Fainberg
 Sent: Wednesday, June 03, 2015 7:23:22 PM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
 X-Group- in token validation
 
 In general I am of the opinion with the move to Fernet there is no good 
 reason we should avoid adding the group information into the token. 
 
 --Morgan
 
 Sent via mobile 
 
 On Jun 3, 2015, at 18:44, Dolph Mathews dolph.math...@gmail.com wrote:
 
 
 On Wed, Jun 3, 2015 at 5:58 PM, John Wood john.w...@rackspace.com wrote: 
 Hello folks, 
 
 There has been discussion about adding user group support to the per-secret 
 access control list (ACL) feature in Barbican. Hence secrets could be marked 
 as accessible by a group on the ACL rather than an individual user as 
 implemented now. 
 
 Our understanding is that Keystone does not pass along a user’s group 
 information during token validation however (such as in the form of 
 X-Group-Ids/X-Group-Names headers passed along via Keystone middleware). 
 
 The pre-requisite for including that information in the form of headers 
 would be adding group information to the token validation response. In the 
 case of UUID, it would be pre-computed and stored in the DB at token 
 creation time. In the case of PKI, it would be encoded into the PKI token 
 and further bloat PKI tokens. And in the case of Fernet, it would be 
 included at token validation time. 
 
 Including group information, however, would also let us efficient revoke 
 tokens using token revocation events when group membership is affected in 
 any way (user being removed from a group, a group being deleted, or a 
 group-based role assignment being revoked). The OS-FEDERATION extension is 
 actually already including groups in tokens today, as a required part of the 
 federated workflow. We'd effectively be introducing that same behavior into 
 the core Identity API (see the federated token example): 
 
   
 https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token
  
 
 This would allow us to address bugs such as: 
 
   https://bugs.launchpad.net/keystone/+bug/1268751 
 
 In the past, we shied away from including groups if only to avoid bloating 
 the size of PKI tokens any further (but now we have Fernet tokens providing 
 a viable alternative). Are there any other reasons not to add group 
 information to the token validation response? 
   
 
 Would the community consider this a useful feature

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-04 Thread Fox, Kevin M
Some kind of intermediate mapping might be better. With ldap, I dont have 
control over the groups users are assigned since thats an enterprise/AD thing. 
There can be a lot of them. Groups to Role relations I guess do that mapping. 
Though maybe passing groups directly when domains can have different group 
meanings might be a big problem.

Does federation have a way to map a federated group to a local group somehow?

Thanks,
Kevin


From: Steve Martinelli
Sent: Wednesday, June 03, 2015 8:19:16 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

Dozens to hundreds of roles or endpoints could cause an issue now :)

But yeah, groups are much more likely to number in the dozens than roles or 
endpoints. But I think the Fernet token size is so small that it could probably 
handle this (since it does so now for the federated workflow).

Thanks,

Steve Martinelli
OpenStack Keystone Core



From:Fox, Kevin M kevin@pnnl.gov
To:OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.org
Date:06/03/2015 11:14 PM
Subject:Re: [openstack-dev] [keystone][barbican] Regarding
exposingX-Group- in token validation




Will dozens to a hundred groups or so on one user cause issues? :)

Thanks,
Kevin


From: Morgan Fainberg
Sent: Wednesday, June 03, 2015 7:23:22 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

In general I am of the opinion with the move to Fernet there is no good reason 
we should avoid adding the group information into the token.

--Morgan

Sent via mobile

On Jun 3, 2015, at 18:44, Dolph Mathews 
dolph.math...@gmail.commailto:dolph.math...@gmail.com wrote:


On Wed, Jun 3, 2015 at 5:58 PM, John Wood 
john.w...@rackspace.commailto:john.w...@rackspace.com wrote:
Hello folks,

There has been discussion about adding user group support to the per-secret 
access control list (ACL) feature in Barbican. Hence secrets could be marked as 
accessible by a group on the ACL rather than an individual user as implemented 
now.

Our understanding is that Keystone does not pass along a user’s group 
information during token validation however (such as in the form of 
X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).

The pre-requisite for including that information in the form of headers would 
be adding group information to the token validation response. In the case of 
UUID, it would be pre-computed and stored in the DB at token creation time. In 
the case of PKI, it would be encoded into the PKI token and further bloat PKI 
tokens. And in the case of Fernet, it would be included at token validation 
time.

Including group information, however, would also let us efficient revoke tokens 
using token revocation events when group membership is affected in any way 
(user being removed from a group, a group being deleted, or a group-based role 
assignment being revoked). The OS-FEDERATION extension is actually already 
including groups in tokens today, as a required part of the federated workflow. 
We'd effectively be introducing that same behavior into the core Identity API 
(see the federated token example):

  
https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token

This would allow us to address bugs such as:

  https://bugs.launchpad.net/keystone/+bug/1268751

In the past, we shied away from including groups if only to avoid bloating the 
size of PKI tokens any further (but now we have Fernet tokens providing a 
viable alternative). Are there any other reasons not to add group information 
to the token validation response?


Would the community consider this a useful feature? Would the community 
consider adding this support to Liberty?

Thank you,
John


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.orgmailto:openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-04 Thread Dolph Mathews
To clarify: we already have to include the groups produced as a result of
federation mapping **in the payload** of Fernet tokens so that scoped
tokens can be created later:


https://github.com/openstack/keystone/blob/a637ebcbc4a92687d3e80a50cbe88df3b13c79e6/keystone/token/providers/fernet/token_formatters.py#L523

These are OpenStack group IDs, so it's up to the deployer to keep those
under control to keep Fernet token sizes down. It's the only place in the
current Fernet implementation that's (somewhat alarmingly) unbounded in the
real world.

But we do **not** have a use case to add groups to *all* Fernet payloads:
only to token creation  validation responses.

On Thu, Jun 4, 2015 at 2:36 AM, Morgan Fainberg morgan.fainb...@gmail.com
wrote:

 For Fernet, the groups would only be populated on validate as Dolph
 outlined. They would not be added to the core payload. We do not want to
 expand the payload in this manner.

 --Morgan

 Sent via mobile

 On Jun 3, 2015, at 21:51, Lance Bragstad lbrags...@gmail.com wrote:

 I feel if we allowed group ids to be an attribute of the Fernet's core
 payload, we continue to open up the possibility for tokens to be greater
 than the initial acceptable size limit for a Fernet token (which I
 believe was 255 bytes?). With this, I think we need to provide guidance on
 the number of group ids allowed within the token before that size limit is
 compromised.

 We've landed patches recently that allow for id strings to be included in
 the Fernet payload [0], regardless of being uuid format (which can be
 converted to bytes before packing to save space, this is harder for us to
 do with non-uuid format id strings). This can also cause the Fernet token
 size to grow. If we plan to include more information in the Fernet token
 payload I think we should determine if the original acceptable size limit
 still applies and regardless of what that size limit is provide some sort
 of best practices for helping deployments keep their token size as small
 as possible.


 Keeping the tokens user (and developer) friendly was a big plus in the
 design of Fernet, and providing resource for deployments to maintain that
 would be helpful.


 [0]
 https://review.openstack.org/#/q/status:merged+project:openstack/keystone+branch:master+topic:bug/1459382,n,z

 On Wed, Jun 3, 2015 at 10:19 PM, Steve Martinelli steve...@ca.ibm.com
 wrote:

 Dozens to hundreds of roles or endpoints could cause an issue now :)

 But yeah, groups are much more likely to number in the dozens than roles
 or endpoints. But I think the Fernet token size is so small that it could
 probably handle this (since it does so now for the federated workflow).

 Thanks,

 Steve Martinelli
 OpenStack Keystone Core



 From:Fox, Kevin M kevin@pnnl.gov
 To:OpenStack Development Mailing List (not for usage
 questions) openstack-dev@lists.openstack.org
 Date:06/03/2015 11:14 PM
 Subject:Re: [openstack-dev] [keystone][barbican] Regarding
  exposingX-Group- in token validation
 --



 Will dozens to a hundred groups or so on one user cause issues? :)

 Thanks,
 Kevin

 --
 *From:* Morgan Fainberg
 * Sent:* Wednesday, June 03, 2015 7:23:22 PM
 * To:* OpenStack Development Mailing List (not for usage questions)
 * Subject:* Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

 In general I am of the opinion with the move to Fernet there is no good
 reason we should avoid adding the group information into the token.

 --Morgan

 Sent via mobile

 On Jun 3, 2015, at 18:44, Dolph Mathews *dolph.math...@gmail.com*
 dolph.math...@gmail.com wrote:


 On Wed, Jun 3, 2015 at 5:58 PM, John Wood *john.w...@rackspace.com*
 john.w...@rackspace.com wrote:
 Hello folks,

 There has been discussion about adding user group support to the
 per-secret access control list (ACL) feature in Barbican. Hence secrets
 could be marked as accessible by a group on the ACL rather than an
 individual user as implemented now.

 Our understanding is that Keystone does not pass along a user’s group
 information during token validation however (such as in the form of
 X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).

 The pre-requisite for including that information in the form of headers
 would be adding group information to the token validation response. In the
 case of UUID, it would be pre-computed and stored in the DB at token
 creation time. In the case of PKI, it would be encoded into the PKI token
 and further bloat PKI tokens. And in the case of Fernet, it would be
 included at token validation time.

 Including group information, however, would also let us efficient revoke
 tokens using token revocation events when group membership is affected in
 any way (user being removed from a group, a group being deleted, or a
 group-based role assignment being revoked). The OS-FEDERATION extension

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-04 Thread Darren J Moffat



On 06/04/15 14:03, Fox, Kevin M wrote:

Some kind of intermediate mapping might be better. With ldap, I dont
have control over the groups users are assigned since thats an
enterprise/AD thing. There can be a lot of them. Groups to Role
relations I guess do that mapping. Though maybe passing groups directly
when domains can have different group meanings might be a big problem.


Agreed, and this has caused problems for other systems in the past.

For example the traditional AUTH_SYS as used by RPC for NFS only allowed 
a user to be in 16 groups because that was all the payload could hold. 
As more people moved from NIS to LDAP (and for some even when in NIS or 
NIS+) 16 groups was a big issue.


Now modern Linux and Solaris kernels support a user being in 1024 groups 
by having the consumer (the NFS server usually) check with the directory 
server (usually LDAP) when the list is exactly 16 groups.


So we know it is already common for LDAP directories to have users in a 
significant number of groups.


--
Darren J Moffat

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-03 Thread John Wood
Hello folks,

There has been discussion about adding user group support to the per-secret 
access control list (ACL) feature in Barbican. Hence secrets could be marked as 
accessible by a group on the ACL rather than an individual user as implemented 
now.

Our understanding is that Keystone does not pass along a user's group 
information during token validation however (such as in the form of 
X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).

Would the community consider this a useful feature? Would the community 
consider adding this support to Liberty?

Thank you,
John

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-03 Thread Fox, Kevin M
Will dozens to a hundred groups or so on one user cause issues? :)

Thanks,
Kevin


From: Morgan Fainberg
Sent: Wednesday, June 03, 2015 7:23:22 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

In general I am of the opinion with the move to Fernet there is no good reason 
we should avoid adding the group information into the token.

--Morgan

Sent via mobile

On Jun 3, 2015, at 18:44, Dolph Mathews 
dolph.math...@gmail.commailto:dolph.math...@gmail.com wrote:


On Wed, Jun 3, 2015 at 5:58 PM, John Wood 
john.w...@rackspace.commailto:john.w...@rackspace.com wrote:
Hello folks,

There has been discussion about adding user group support to the per-secret 
access control list (ACL) feature in Barbican. Hence secrets could be marked as 
accessible by a group on the ACL rather than an individual user as implemented 
now.

Our understanding is that Keystone does not pass along a user’s group 
information during token validation however (such as in the form of 
X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).

The pre-requisite for including that information in the form of headers would 
be adding group information to the token validation response. In the case of 
UUID, it would be pre-computed and stored in the DB at token creation time. In 
the case of PKI, it would be encoded into the PKI token and further bloat PKI 
tokens. And in the case of Fernet, it would be included at token validation 
time.

Including group information, however, would also let us efficient revoke tokens 
using token revocation events when group membership is affected in any way 
(user being removed from a group, a group being deleted, or a group-based role 
assignment being revoked). The OS-FEDERATION extension is actually already 
including groups in tokens today, as a required part of the federated workflow. 
We'd effectively be introducing that same behavior into the core Identity API 
(see the federated token example):

  
https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token

This would allow us to address bugs such as:

  https://bugs.launchpad.net/keystone/+bug/1268751

In the past, we shied away from including groups if only to avoid bloating the 
size of PKI tokens any further (but now we have Fernet tokens providing a 
viable alternative). Are there any other reasons not to add group information 
to the token validation response?


Would the community consider this a useful feature? Would the community 
consider adding this support to Liberty?

Thank you,
John


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.org?subject:unsubscribehttp://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: 
openstack-dev-requ...@lists.openstack.orgmailto:openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-03 Thread Dolph Mathews
On Wed, Jun 3, 2015 at 5:58 PM, John Wood john.w...@rackspace.com wrote:

  Hello folks,

  There has been discussion about adding user group support to the
 per-secret access control list (ACL) feature in Barbican. Hence secrets
 could be marked as accessible by a group on the ACL rather than an
 individual user as implemented now.

  Our understanding is that Keystone does not pass along a user’s group
 information during token validation however (such as in the form of
 X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).


The pre-requisite for including that information in the form of headers
would be adding group information to the token validation response. In the
case of UUID, it would be pre-computed and stored in the DB at token
creation time. In the case of PKI, it would be encoded into the PKI token
and further bloat PKI tokens. And in the case of Fernet, it would be
included at token validation time.

Including group information, however, would also let us efficient revoke
tokens using token revocation events when group membership is affected in
any way (user being removed from a group, a group being deleted, or a
group-based role assignment being revoked). The OS-FEDERATION extension is
actually already including groups in tokens today, as a required part of
the federated workflow. We'd effectively be introducing that same behavior
into the core Identity API (see the federated token example):


https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token

This would allow us to address bugs such as:

  https://bugs.launchpad.net/keystone/+bug/1268751

In the past, we shied away from including groups if only to avoid bloating
the size of PKI tokens any further (but now we have Fernet tokens providing
a viable alternative). Are there any other reasons not to add group
information to the token validation response?



  Would the community consider this a useful feature? Would the community
 consider adding this support to Liberty?

  Thank you,
 John


 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-03 Thread Lance Bragstad
I feel if we allowed group ids to be an attribute of the Fernet's core
payload, we continue to open up the possibility for tokens to be greater
than the initial acceptable size limit for a Fernet token (which I
believe was 255 bytes?). With this, I think we need to provide guidance on
the number of group ids allowed within the token before that size limit is
compromised.

We've landed patches recently that allow for id strings to be included in
the Fernet payload [0], regardless of being uuid format (which can be
converted to bytes before packing to save space, this is harder for us to
do with non-uuid format id strings). This can also cause the Fernet token
size to grow. If we plan to include more information in the Fernet token
payload I think we should determine if the original acceptable size limit
still applies and regardless of what that size limit is provide some sort
of best practices for helping deployments keep their token size as small
as possible.


Keeping the tokens user (and developer) friendly was a big plus in the
design of Fernet, and providing resource for deployments to maintain that
would be helpful.


[0]
https://review.openstack.org/#/q/status:merged+project:openstack/keystone+branch:master+topic:bug/1459382,n,z

On Wed, Jun 3, 2015 at 10:19 PM, Steve Martinelli steve...@ca.ibm.com
wrote:

 Dozens to hundreds of roles or endpoints could cause an issue now :)

 But yeah, groups are much more likely to number in the dozens than roles
 or endpoints. But I think the Fernet token size is so small that it could
 probably handle this (since it does so now for the federated workflow).

 Thanks,

 Steve Martinelli
 OpenStack Keystone Core



 From:Fox, Kevin M kevin@pnnl.gov
 To:OpenStack Development Mailing List (not for usage questions)
 openstack-dev@lists.openstack.org
 Date:06/03/2015 11:14 PM
 Subject:Re: [openstack-dev] [keystone][barbican] Regarding
  exposingX-Group- in token validation
 --



 Will dozens to a hundred groups or so on one user cause issues? :)

 Thanks,
 Kevin

 --
 *From:* Morgan Fainberg
 * Sent:* Wednesday, June 03, 2015 7:23:22 PM
 * To:* OpenStack Development Mailing List (not for usage questions)
 * Subject:* Re: [openstack-dev] [keystone][barbican] Regarding exposing
 X-Group- in token validation

 In general I am of the opinion with the move to Fernet there is no good
 reason we should avoid adding the group information into the token.

 --Morgan

 Sent via mobile

 On Jun 3, 2015, at 18:44, Dolph Mathews *dolph.math...@gmail.com*
 dolph.math...@gmail.com wrote:


 On Wed, Jun 3, 2015 at 5:58 PM, John Wood *john.w...@rackspace.com*
 john.w...@rackspace.com wrote:
 Hello folks,

 There has been discussion about adding user group support to the
 per-secret access control list (ACL) feature in Barbican. Hence secrets
 could be marked as accessible by a group on the ACL rather than an
 individual user as implemented now.

 Our understanding is that Keystone does not pass along a user’s group
 information during token validation however (such as in the form of
 X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).

 The pre-requisite for including that information in the form of headers
 would be adding group information to the token validation response. In the
 case of UUID, it would be pre-computed and stored in the DB at token
 creation time. In the case of PKI, it would be encoded into the PKI token
 and further bloat PKI tokens. And in the case of Fernet, it would be
 included at token validation time.

 Including group information, however, would also let us efficient revoke
 tokens using token revocation events when group membership is affected in
 any way (user being removed from a group, a group being deleted, or a
 group-based role assignment being revoked). The OS-FEDERATION extension is
 actually already including groups in tokens today, as a required part of
 the federated workflow. We'd effectively be introducing that same behavior
 into the core Identity API (see the federated token example):


 *https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token*
 https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token

 This would allow us to address bugs such as:

   *https://bugs.launchpad.net/keystone/+bug/1268751*
 https://bugs.launchpad.net/keystone/+bug/1268751

 In the past, we shied away from including groups if only to avoid bloating
 the size of PKI tokens any further (but now we have Fernet tokens providing
 a viable alternative). Are there any other reasons not to add group
 information to the token validation response?


 Would the community consider this a useful feature? Would the community
 consider adding this support to Liberty?

 Thank you,
 John

Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-03 Thread Morgan Fainberg
In general I am of the opinion with the move to Fernet there is no good reason 
we should avoid adding the group information into the token. 

--Morgan

Sent via mobile

 On Jun 3, 2015, at 18:44, Dolph Mathews dolph.math...@gmail.com wrote:
 
 
 On Wed, Jun 3, 2015 at 5:58 PM, John Wood john.w...@rackspace.com wrote:
 Hello folks,
 
 There has been discussion about adding user group support to the per-secret 
 access control list (ACL) feature in Barbican. Hence secrets could be marked 
 as accessible by a group on the ACL rather than an individual user as 
 implemented now.
 
 Our understanding is that Keystone does not pass along a user’s group 
 information during token validation however (such as in the form of 
 X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).
 
 The pre-requisite for including that information in the form of headers would 
 be adding group information to the token validation response. In the case of 
 UUID, it would be pre-computed and stored in the DB at token creation time. 
 In the case of PKI, it would be encoded into the PKI token and further bloat 
 PKI tokens. And in the case of Fernet, it would be included at token 
 validation time.
 
 Including group information, however, would also let us efficient revoke 
 tokens using token revocation events when group membership is affected in any 
 way (user being removed from a group, a group being deleted, or a group-based 
 role assignment being revoked). The OS-FEDERATION extension is actually 
 already including groups in tokens today, as a required part of the federated 
 workflow. We'd effectively be introducing that same behavior into the core 
 Identity API (see the federated token example):
 
   
 https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token
 
 This would allow us to address bugs such as:
 
   https://bugs.launchpad.net/keystone/+bug/1268751
 
 In the past, we shied away from including groups if only to avoid bloating 
 the size of PKI tokens any further (but now we have Fernet tokens providing a 
 viable alternative). Are there any other reasons not to add group information 
 to the token validation response?
  
 
 Would the community consider this a useful feature? Would the community 
 consider adding this support to Liberty?
 
 Thank you,
 John
 
 
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 
 __
 OpenStack Development Mailing List (not for usage questions)
 Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [keystone][barbican] Regarding exposing X-Group-xxxx in token validation

2015-06-03 Thread Steve Martinelli
Dozens to hundreds of roles or endpoints could cause an issue now :)

But yeah, groups are much more likely to number in the dozens than roles 
or endpoints. But I think the Fernet token size is so small that it could 
probably handle this (since it does so now for the federated workflow).

Thanks,

Steve Martinelli
OpenStack Keystone Core



From:   Fox, Kevin M kevin@pnnl.gov
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.org
Date:   06/03/2015 11:14 PM
Subject:Re: [openstack-dev] [keystone][barbican] Regarding 
exposingX-Group- in token validation



Will dozens to a hundred groups or so on one user cause issues? :)

Thanks,
Kevin 
 
From: Morgan Fainberg
Sent: Wednesday, June 03, 2015 7:23:22 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [keystone][barbican] Regarding exposing 
X-Group- in token validation

In general I am of the opinion with the move to Fernet there is no good 
reason we should avoid adding the group information into the token. 

--Morgan

Sent via mobile

On Jun 3, 2015, at 18:44, Dolph Mathews dolph.math...@gmail.com wrote:


On Wed, Jun 3, 2015 at 5:58 PM, John Wood john.w...@rackspace.com wrote:
Hello folks,

There has been discussion about adding user group support to the 
per-secret access control list (ACL) feature in Barbican. Hence secrets 
could be marked as accessible by a group on the ACL rather than an 
individual user as implemented now.

Our understanding is that Keystone does not pass along a user?s group 
information during token validation however (such as in the form of 
X-Group-Ids/X-Group-Names headers passed along via Keystone middleware).

The pre-requisite for including that information in the form of headers 
would be adding group information to the token validation response. In the 
case of UUID, it would be pre-computed and stored in the DB at token 
creation time. In the case of PKI, it would be encoded into the PKI token 
and further bloat PKI tokens. And in the case of Fernet, it would be 
included at token validation time.

Including group information, however, would also let us efficient revoke 
tokens using token revocation events when group membership is affected in 
any way (user being removed from a group, a group being deleted, or a 
group-based role assignment being revoked). The OS-FEDERATION extension is 
actually already including groups in tokens today, as a required part of 
the federated workflow. We'd effectively be introducing that same behavior 
into the core Identity API (see the federated token example):

  
https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-federation-ext.rst#request-an-unscoped-os-federation-token

This would allow us to address bugs such as:

  https://bugs.launchpad.net/keystone/+bug/1268751

In the past, we shied away from including groups if only to avoid bloating 
the size of PKI tokens any further (but now we have Fernet tokens 
providing a viable alternative). Are there any other reasons not to add 
group information to the token validation response?
 

Would the community consider this a useful feature? Would the community 
consider adding this support to Liberty?

Thank you,
John


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev