Hi, Maybe I'm mis-understanding something here, but in the long term, when tenancy is fully implemented on all items in the system, I do not see any real issue with handling the capability to assign a role to user like any other capability. As I see it, there is a guy in the organization that have the role allowing him to add users and give roles to them. He does not have tbe capability to change ds, but I trust him to give the relevant role to the users that are allowed to do so. What is wrong with that? If this user belong to a cp, I would not like him to manipulate servers in the cdn, but it is resolved by tenancy, not capabilities. I do not care if a cp user has the capability to define a server. This user can further create a tenant specific roles and capabilities, that he can manage (unlike the builtin capabilities and roles that should be read only for everyone)
What am I missing? Nir On May 5, 2017 6:34 PM, "Jeremy Mitchell" <mitchell...@gmail.com> wrote: > @Eric - I don't think we want to take the access control granularity below > the API level. That would make things pretty messy imo and I think this new > roles/capabilities model might be enough to digest as it is. > > so basically, if you have a role that has a capability that maps to the > POST /api/version/users api endpoint (create user), then you can create > users. But of course, new users need a role. I think we should just > leverage what we have in place now - priv_level. > > So, basically, if I have the ability to create users, I can only create > users with a role that has a priv_level <= my role's priv level. > > I don't know if i want to add another hierarchy (role hierarchy)....the > less hierarchies the better :) > > Jeremy > > On Thu, May 4, 2017 at 6:39 AM, Eric Friedrich (efriedri) < > efrie...@cisco.com> wrote: > > > Could we further differentiate the user creation capabilities to: > > - Create CDN Admin user > > - Create CDN Ops user > > - Create CDN Viewer user > > - Create Tenant Admin user > > - Create Tenant Ops user > > - Create Tenant Viewer user > > > > Then only the CDN-Admin role would have the capability to create a cdn > > admin user. Would be good to see the capabilities assigned at a > granularity > > below API endpoint in this case. > > > > As for creation of new roles, I like #2 and #3. Users should not be able > > to level-up anyone’s capabilities beyond their own. Further, capabilities > > are enforced by code, so we should not allow creation of new capabilities > > by API > > > > - - Eric > > > > > > > > On May 3, 2017, at 9:44 AM, Durfey, Ryan <ryan_dur...@comcast.com< > mailto: > > ryan_dur...@comcast.com>> wrote: > > > > Moving this active debate into the mailing list. > > -Jeremy makes a good point. We need a method for making restricting > roles > > and capabilities for lower tier staff that can create new users. Jeremy > > has suggested a point system or a hierarchy. I think either of these > would > > work if applied correctly. I am open to any approach that works. > > > > My thoughts: > > 1. We need to limit which users can build new roles from capabilities or > > new capabilities from APIs. This could be limited to a master role like > > “CDN Admin”. Otherwise other admins could circumvent the system by > > matching APIs to lower tier roles. > > 2. Another simple approach may be to only allow non-CDN Admins to assign > > roles to users which they have access. Basically you can’t give anyone > > more rights than you have. > > 3. Perhaps with this approach we allow non-CDN Admins to build roles from > > existing capabilities to which they have access, but not create > > capabilities from APIs. Then they can build new roles and assign any > > capabilities or roles to which they already have access. > > > > > > > > From: Jeremy Mitchell > > > > I like this model of a user has a role which has capabilities which map > to > > API endpoints, however, there seems to be one flaw or at least one > > unaccounted for use case. > > Let's look at the roles listed above: > > > > * CDN-Admin > > * CDN-Ops > > * CDN-Viewer > > * Tenant-Admin > > * Tenant-Ops > > * Tenant-Viewer > > > > Jeremy is a CDN-Admin which has the user-create capability (among others) > > so he creates Bob, a Tenant-Admin. Being a Tenant-Admin, Bob also has > > user-create so he creates Sally and he can give her ANY role so he > decides > > to give Sally the CDN-Admin role....whoops, we don't want that... > > Bob should be limited to creating users with role=Tenant-Admin (his > role), > > Tenant-Ops or Tenant-Viewer...but how do we correlate one role with > > another? Currently, we have "privilege level" attached to a role. So I > > guess we could use that like so: > > > > * CDN-Admin (100) > > * CDN-Ops (50) > > * CDN-Viewer (40) > > * Tenant-Admin (30) > > * Tenant-Ops (20) > > * Tenant-Viewer (10) > > > > Now, being a Tenant-Admin with the user-create capability, Bob can only > > create users where role.priv_level is 30 or below. I feel like this might > > be the easiest solution. > > Thoughts? > > > > > > ... > > Now, being a Tenant-Admin with the user-create capability, Bob can only > > create users where role.priv_level is 30 or below. I feel like this might > > be the easiest solution. > > Or...you could make roles hierarchical the way that tenants are > > hierarchical.... > > -CDN-Admin > > --CDN-Ops > > --CDN-Viewer > > --Tenant-Admin > > ---Tenant-Ops > > ---Tenant-Viewer > > And in this scenario, if you have the user-create capability you can > > create users with your role or a child of your role... > > Thoughts? > > > > > > Ryan Durfey > > Sr. Product Manager - CDN | Comcast Technology Solutions > > 1899 Wynkoop Ste. 550 | Denver, CO 8020 > > M | 303-524-5099 > > ryan_dur...@comcast.com<mailto:ryan_dur...@comcast.com> > > 24x7 CDN Support: 866-405-2993 or cdn_supp...@comcast.com<mailto: > > cdn_supp...@comcast.com> > > > > > > >