Hi all,

As you might already know, today (July 14th) we had a meeting over the phone 
aimed at discussing authentication and authorization for Quantum.
Me (Salvatore Orlando), Dan Wendlandt, Josh Wilmes and Mark Voelker attended 
the meeting.

This email is the very first action agreed during this meeting, as we decided 
to move the discussion to the Netstack mailing list; now that we have it, it 
makes sense to use it for all the discussion concerning architecture and design 
for NetStack projects.

Before delving into the details of the authorization model in terms of roles 
and actions which should be authorized for each role, we agreed that we first 
need to address the problem of verifying the correct ownership of objects 
managed by quantum. For instance when a user configured for a specific tenant 
plugs an interface, we need to verify at least that:

a)      The tenant owns the network where the interface is being plugged;

b)      The tenant owns the interface being plugged into the network, ie the VM 
instance where the interface has been configured belongs to the tenant.

This implies that a concept of "object ownership" is required; however, in this 
specific case ownership should be verified across several services, as the 
network is defined by Quantum, whereas the interface is defined by 
nova-compute. For this reason it would be good if the identify service 
(possibly Keystone) would be able to provide this information.

There is an interesting e-mail thread on Keystone (look for "OpenStack 
Identity: Keystone API Proposal" on Openstack ML) in which some members of the 
community were wondering whether Keystone could provide some form of 
authorization as well. At the moment authorization is entirely performed in 
service modules. Ziad was proposing to support per-service roles in tenants 
(e.g.: quantum:networkadmin, nova:netadmin). Keystone can return which roles 
are defined for a given token and a service, so that Quantum would then be able 
to verify that the user performing the plug-interface operation has ownership 
rights both on the network and the interface.
Therefore the next action agreed in the meeting is to follow-up the discussion 
on the Openstack ML in order to understand how keystone could solve the "object 
ownership" problem.

We also agreed that we will be using Keystone for the first implementation of 
AuthN/AuthZ in Quantum, as it is a modular service which enables several 
protocols. At the moment it support basic and token-based authentication; 
OpenID support is in progress, and there have been talks around LDAP support as 
well.

Any thoughts?

Regards,
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