Users
For system users (in XOA), please refer to XOA section. Here, we are only talking about users in Xen Orchestra application
There are 2 types of XO users:
- admins, with all rights on all connected resources
- users, with no rights by default
Authentication
Xen Orchestra supports various types of user authentication, internal or even external thanks to the usage of the Passport library.
Any account created by an external authentication process (LDAP, SSO...) will be a user without any permission. Also, you don't have to create an external user by yourself: it will be created automatically in Xen Orchestra after its first connection.
Built-in
This is the default method. Creating a user is very simple:
- Go into the Settings view, select "Users"
- You can create a user or an admin, with their password (or generate one)
By default, a user won't have any permissions. At the opposite, an admin will have all rights.
LDAP
XO currently supports connections to LDAP directories, like Open LDAP or Active Directory.
- Access the Plugin:
- Navigate to the Settings → Plugins screen.
- Locate the auth-ldap plugin by scrolling or using the search bar.
- Configure LDAP Settings:
- Click + button for the LDAP plugin.
A list of settings appears: - Fill in the required fields based on your LDAP server details.
- Click + button for the LDAP plugin.
- Save and Activate:
- Click Save configuration.
- To check if the plugin is activated, activate the toggle switch next to the auth-ldap plugin name.
The switch should now appear green.
Common LDAP Filters
LDAP Filters allow you to properly match your user. Finding the right filter is no easy task, and it entirely depends on your LDAP configuration.
Still, here is a list of common filters:
'(uid={{name}})'
is usually the default filter for Open LDAP.'(cn={{name}})'
,'(sAMAccountName={{name}})'
,'(sAMAccountName={{name}}@<domain>)'
or even'(userPrincipalName={{name}})'
are widely used for Active Directory.
Please check with your AD Admin to find the right one.
Once configured, users can authenticate using their LDAP credentials. Upon a successful initial login, the user's account will appear in the XO user list.
Group Synchronization
The LDAP plugin allows for the synchronization of user groups.
-
Access group synchronization settings
To configure the synchronization:
- Go to the Synchronize groups section.
- Check the box called Fill information (optional).
A list of text fields appear. - Fill out the fields according to the picture below:
-
Basic group settings:
- Base and Filter: Similar to the user configuration. The plugin needs an entry point in the directory and a filter to find the groups.
- ID attribute: The attribute used by the plugin to uniquely identify each group. The ID attribute must be unique across groups and not change over time.
On each synchronization, the plugin will compare LDAP groups with XO groups, then try to match them based on this attribute and create or update XO groups if necessary. - Display name attribute: Set the attribute used as the group's name in Xen Orchestra.
-
Members mapping:
This part of the configuration is used to determine which LDAP users belong to which LDAP groups.
For example, here's an LDAP directory:
User:
objectClass: Person
cn: Bruce Wayne
uid: 347
...
Group:
objectClass: Group
cn: heroes
displayName: Heroes
gid: 456
member: 347
member: 348
...
The plugin needs to know that Bruce Wayne is part of the heroes group. To do so, you need to set 2 entries in the configuration:
- Group attribute: the name of the group attribute that is used to list users within a group. In this example, it would be
member
. - User attribute: the name of the user attribute that is used to reference users in groups. In this example, it would be
uid
since347
,348
, etc. are useruid
s.
Save the configuration and you're good to go. From now on, every time an LDAP user logs into XO, the plugin will automatically create or update that user's groups and add them to those groups.
Importing all groups manually
If you need to import all the groups at once, you can do so from Settings → Groups → Synchronize LDAP Groups.
This can be useful if you want to assign ACLs on groups without having to wait for a member of the group to log in.
Importing the groups won't import their members. Users will still be imported one by one when they log in for the first time.
To find the LDAP users, enter this filter in the users table: authProviders:ldap?
.
Troubleshooting
If users can authenticate but group memberships are not reflected:
-
Verify Your Group Filter
Check if your LDAP group filter is too restrictive. By default, the filter should match all relevant groups.
Example of a broad filter:
(objectclass=posixGroup)
If you are using a more specific filter, ensure that it correctly matches your intended groups. For instance, if you only sync a specific group, it may look like this:
(&(objectclass=posixGroup)(cn=group1))
This filter will only synchronize
group1
. To sync all groups, remove the(cn=group1)
condition. -
Verify that the Group Attribute and User Attribute in the plugin configuration match the corresponding attributes in your LDAP directory.
-
Ensure that the ID Attribute for both users and groups is unique and correctly specified.
-
Check XO logs for any synchronization errors and adjust configurations accordingly.
OpenID Connect
Overview
The OpenID Connect (OIDC) plugin (auth-oidc
) allows Xen Orchestra to integrate with identity providers that support the OIDC protocol.
In this section, you'll learn:
- how users can log in with OpenID Connect
- how administrators can configure the plugin to suit their needs
Prerequisites
- Make sure your identity provider supports OpenID Connect.
User Workflow
Log In with OpenID Connect
On the Xen Orchestra login page, click Sign in with OpenID Connect
You’ll be redirected to the login page of your internal portal. Once authenticated on it, you will be redirected to the Xen Orchestra home page.
Administrator Guide
Set Up the OpenID Connect Plugin
You can set up the auth-oidc
plugin directly in Xen Orchestra:
- Go to Settings → Plugins.
- Find the
auth-oidc
plugin in the list. - Click + next to the plugin name to expand the configuration options.
Required Configuration
Fill in the mandatory fields. You can also specify the auto-discovery URL, if needed.
Advanced Configuration (Optional)
To access advanced options:
- Check Fill information (optional) to reveal additional fields.
- Complete the fields as needed.
Save and Activate the Plugin
- Once everything is configured, click Save configuration.
- Toggle the switch next to the
auth-oidc
plugin name to enable it. This will:- Activate the plugin immediately.
- Ensure it loads automatically when the Xen Orchestra server restarts.
SAML
This plugin allows SAML users to authenticate to Xen-Orchestra.
The first time a user signs in, XO will create a new XO user with the same identifier.
Configuration
In the "Settings" then "Plugins" view, expand the SAML plugin configuration. Then provide the needed fields:
Save the configuration and then activate the plugin (button on top).
Vendor specific
Google Workspace - SAML support.google.com
Use the screenshots below as a reference as how to setup SAML with Google Workspace.
- Sign in to your Google Workspace Admin Dashboard.
- Go to Apps/Web and mobile apps
- Click Add app and select Add custom SAML app.
- Give your app a name and optionally a description.
- To see how the fields should be filled out, refer to the screenshots below.
Note: Right now even when the authorization is successful, you will be redirected to the
https://xo.company.net/signin
page. However, just browse directly into the bare URLhttps://xo.company.net
, and you'll now be logged in and can use the XO-dashboard.
If you get a certificate error. Try to add a newline at the bottom of the Certificate field in Xen Orchestra.
The first login will create the user inside XO, as a non-privileged user. An administrator then has to promote the user to the appropriate group. (XO: Settings/Users).
Also make sure to adjust the SAML attribute mapping in the Google Workspace configuration. (Primary email -> email)
GitHub
This plugin allows any GitHub user to authenticate to Xen Orchestra.
The first time a user signs in, XO will create a new XO user with the same identifier (i.e. GitHub name), with user permissions. An existing admin will need to apply the appropriate permissions for your environment.
First you need to configure a new app in your GitHub account. Go to your GitHub settings > "Developer Settings" > "OAuth Apps" > "New OAuth App".
- Name your GitHub application under "Application Name".
- Enter your Xen Orchestra URL (or IP) under "Homepage URL"
- Add your "Authorization callback URL" (for example, https://homepageUrl/signin/github/callback)
When you get your Client ID and your Client secret, you can configure them in the GitHub Plugin inside the "Settings/Plugins" view of Xen Orchestra.
Be sure to activate the plugin after you save the configuration (button on top). When it's done, you'll see a link in the login view, this is where you'll go to authenticate:
Google
This plugin allows Google users to authenticate to Xen-Orchestra.
The first time a user signs in, XO will create a new XO user with the same identifier, without any permissions.
Creating the Google project
Go to Google's Credentials page and create a new project:
Configure an OAuth consent screen if requested then create OAuth 2.0 credentials:
Get your client ID and client secret:
Configure the XO plugin
In Settings, then Plugins, expand the Google plugin details and configure it with the information from the Google Console:
Be sure to activate the plugin after you save the configuration (button on top).
You can now connect with your Google account in the login page.
ACLs
Definition
ACLs are permissions that apply to preexisting objects, like users and groups.
Who can manage ACLs?
Only a super admin (XO administrator) can manage ACLs.
How can I view and edit ACLs?
The ACLs view can be accessed in the Setting panel.
- Select the user or group you want to apply permissions on
- Select the object on which the permission will apply
- Choose the role for this ACL
- Click the Create button.
You can click to add multiple objects at the same time!
Your ACL is now available in the right list:
You can edit or remove existing ACLs here.
Roles
There are 3 different roles for your users:
- Admin
- Operator
- Viewer
Admin
An object admin can do everything on it, even destroy it. E.g with its admin VM:
- remove it
- migrate it (to a host with admin permission on it)
- modify the VM resources, name and description
- clone it
- copy it
- convert it into a template
- snapshot it (even revert from a snapshot)
- export it
- attach/add visible disks
- same for network cards
Operator
An operator can make everyday operations on assigned objects. For example, on a VM:
- eject a CD
- insert a CD (if he can view the ISO storage repository)
- start, restart, shutdown, suspend/resume it
All other operations are forbidden.
Viewer
A viewer can only see the VM state and its metrics. That's all!