Thanks for the write up, Yu Xin!
I agree this is our final goal but as it involves a lot of work I want
to split it in small tasks in a way we can accommodate some of those in
the 1.3 release
I'd say the first goal should be properly differ root and non-root users
and allow a root user set non-root users to a specific VM. For then we
add the admin and user roles.
1) Allow a root user specific users and groups for a VM *(for 1.3 release)*
Basically a API like:
PUT /vms/<name>/ {users: [user1, user2], groups: [groupA, groupB]}
2) Differ root from non-root users *(for 1.3 release)*
A root user can do and see everything in Kimchi
A non-root user can only manage the VMs a root user assigned to him/her
3) Create admin and user role as you described below
Regarding the UI:
1) We need to provide a way to user specify users and groups for a VM
VM Edit?
So we can list system users and groups and user select which ones
to add to a VM
2) A non-root user will never be able to create new resources (so we +
icon must be removed from its view)
Guests tab: the backend will return the right VM list according to
the logged user
- for a root user: all the VMs
- for a non-root user: only the VMs he/she is
assigned for
So no UI work is required
Templates tab: I think every user can see the templates but the
operations must be restricted for root users. That way the UI need to
disable/remove the actions menu for non-root users.
Storage and Network tabs: Same behavior from template tab
Host tab: Every user can see host info and stats
And packages update, repositories and debug reports
must be restricted for root users.
On 06/27/2014 07:38 AM, Yu Xin Huo wrote:
*Security Strategy:*
1. Only handle existing linux users and groups, kimchi is positioned
to be a virtualization console, will not handle user management which
is host level admin.
2. Two levels of privileges
root users: console settings and virtualization resources
management
full access to 'Host', 'Guests', 'Templates',
'Storage', 'Network'
all root users can see all the guests, templates,
storage pools and volumes, networks no matter who created it
for created VMs, assign to non-root users with
either an admin or user role
non-root users: manage or use VMs assigned to them
admin role: edit & delete their VMs
user role: start, stop, vnc their VMs
they only have access to 'Guests' tab
In 'Guests' tab, only list VMs that they have an
admin or user role
*UI Design:*
root users:
all current UI will be available.
for create a VM, add a section to add users with admin or user
role
for edit a VM, also has a section for add/remove/change users'
access
non-root users:
As only one 'Guest' tab, remove tabs bar and the '+' bar
Only list VMs that they have a role on
If the user have 'admin' role, then all current actions available
if the user have 'user' role, then only actions 'start',
'stop', 'vnc' available
_______________________________________________
Kimchi-devel mailing list
Kimchi-devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel