Hi Sumit,

I used the terms "tenant" and "user" according to their definition for Keystone.

Tenant: A container used to group or isolate resources and/or identity objects. 
Depending on the service operator, a tenant may map to a customer, account, 
organization, or project.
User: Users have a login and may be assigned tokens to access resources. Users 
may be directly assigned to a particular tenant and behave as if they are 
contained in that tenant.

"administrative rights" simply means to be allowed to perform all operation 
exposed by the Quantum API.
We don't plan to have any form of network sharing for Diablo. This implies we 
will have a 1:n association between tenants and Quantum networks.

Salvatore

From: Sumit Naiksatam (snaiksat) [mailto:snaik...@cisco.com]
Sent: 03 August 2011 17:21
To: Salvatore Orlando; netstack@lists.launchpad.net
Subject: RE: [Netstack] Tackling authN/authZ for Diablo-4

Thanks Salv for spelling out the deliverables on this topic.

On the point of the "simplified mode", I wasn't very clear on what you meant by 
"Although in theory several users can be defined for a tenant, we will assume 
that each user has the same administrative rights." Does this mean that each of 
those users (in their "administrator" capacity) would be able to share the 
network (i.e. more than one tenant plugging interfaces into the same network)? 
I was trying to reconcile that with the earlier statement on the "shared 
network model" which you mention is not in scope for Diablo.

Thanks,
~Sumit.

From: netstack-bounces+snaiksat=cisco....@lists.launchpad.net 
[mailto:netstack-bounces+snaiksat=cisco....@lists.launchpad.net] On Behalf Of 
Salvatore Orlando
Sent: Wednesday, August 03, 2011 7:22 AM
To: netstack@lists.launchpad.net
Subject: [Netstack] Tackling authN/authZ for Diablo-4

Hi,

During yesterday's meeting we agreed that we needed to have some form of 
authentication and authorization in Quantum for Diablo.
We also agreed we will be doing Keystone integration (please correct me if I'm 
wrong).

I think we can safely say what we will NOT deliver for Diablo:

*         Full RBAC model including the ability of specifying different roles 
for tenants' user (e.g.: "Alice" is an administrator and can do anything for 
tenant "A", whereas "Bob" is a simple user and can only plug its own interface 
into networks owned by tenant "A")

*         Shared network model, in which a tenant owns the network, but other 
tenants can plug interfaces into it. This use case will be useful for "public" 
and possibly "service" networks.

What we will deliver can be summarized as follows:

*         Simplified model: only one "administrator" user per tenant. Although 
in theory several users can be defined for a tenant, we will assume that each 
user has the same administrative rights.

*         Authentication service: users must authenticate before submitting 
requests to Quantum API

o   The plan is to integrate Quantum with Keystone. The user will authenticate 
with Keystone, which will return an authentication token, which should be used 
for subsequent requests to Quantum API.

Quantum API will validate this token with Keystone; I actually think we could 
achieve this without adding a single line of code to Quantum.

*         Object ownership verification: Before dispatching a call to a plugin 
the Quantum service layer must verify that all the resources involved are owned 
by the tenant submitting the request.

o   This can be handled with an authZ middleware which will precede the API app 
in the wsgi pipeline. Even if it could be handled within the API layer, I 
reckon it will be better to keep it orthogonal.

o   Interfaces being plugged in a port are the tricky bit: they are not owned 
by Quantum. We will need to query nova in order to know whether a tenant owns 
or not an interface. If I'm not wrong Dan will look after this (quantum-manager 
blueprint in nova)

o   We would be happy to avoid storing information about object ownership in 
the service layer and keep the database into the plugin. For networks and 
ports, the existing plugin interface is probably already good enough to return 
the appropriate ownership information.

I am freeing some work cycles to start tackling these issues. I should be able 
to set aside 2-3 working days in the next two weeks.
Mark, Dan, and other interested: please give me your feedback!

Salvatore


-- 
Mailing list: https://launchpad.net/~netstack
Post to     : netstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~netstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to