vatesfr / xen-orchestra

The global orchestration solution to manage and backup XCP-ng and XenServer.
https://xen-orchestra.com
Other
790 stars 266 forks source link

Default permission on external login #5602

Open olivierlambert opened 3 years ago

olivierlambert commented 3 years ago

We should be able to configure default permission on external login (eg LDAP, SAML…). Right now, the created user doesn't have any permissions.

It was asked to have "viewer" permission on everything. Maybe we could have a config in the TOML file with default permission for external users? (eg non, viewer, operator, admin).

julien-f commented 3 years ago

There are no viewer or operator permissions, only user and admin.

viewer and operator are ACL roles, I'm not sure how that could be implemented.

olivierlambert commented 3 years ago

I'll ask the people who request to see if admin is acceptable or not.

julien-f commented 3 years ago

It's a system admin, it gives access to backups, users management, XOA upgrade, etc.

olivierlambert commented 3 years ago

That might be OK to them. I'll summon them.

julien-f commented 3 years ago

@olivierlambert What's the answer on this?

olivierlambert commented 3 years ago

I need the requesters to come here to discuss more in depth. Ping @vgallissot

vgallissot commented 3 years ago

Hi there :wave: ! With SAML, we can pass some args as a payload, to the callback URL on XOA and depending of the incoming user, we can specify either read-only-user or admin.

For us, we would like:

  1. a default read-only-user ACL, with allows any logged person to read only,
  2. if the logged user has a specific role: Admin parameter in the SAML callback payload, then it can be granted role admin

The idea is to manage XOA admins directly from our SAML tool and not manually for each user on XOA.

Have I given you enough information?

olivierlambert commented 3 years ago

We'll do it in 3 steps:

  1. Via the config file, allow to put all successfully authenticated used from an external source to be admin by default
  2. Read the SAML/other output during connection to decide if admin or not
  3. Automatically assign ACLs depending on SAML settings