Omni can integrate with your enterprise SAML provider for authentication and identity management. See also information about how SAML impacts Omni authentication. Please contact support@siderolabs.com or your account manager to enable SAML on the SaaS version of Omni.
A guide on how to add a user to Omni with SAML authentication enabled.
This guide shows you how to create a user in an Omni instance with SAML authentication enabled.
Grant the new user access to Omni in your SAML identity provider. The new user should login to the new user account, in order for Omni to have the account synchronized with the SAML provider.
Log into Omni using another account with Admin
permissions, navigate to Settings, then find the newly added user in the list of users. Now, select “Edit User” from the menu under the ellipsis:
Change the role to Reader
, Operator
or Admin
as appropriate:
And click “Update User”. The user will now have the appropriate role within Omni, and be associated with the SAML user.
A guide on how to assign Omni roles to SAML users automatically.
This guide shows you how to configure your Omni instance so that new users logging in with SAML authentication are automatically assigned to a role based on their SAML role attributes.
Create the file assign-operator-to-engineers-label.yaml
for the SAMLLabelRule
resource, with the following content:
Copy
As an admin, create it on your Omni instance using omnictl
:
Copy
This will create a resource that assigns the Operator
role to any user that logs in with SAML and has the SAML attribute Role
with the value engineers
.
Log in to Omni as a new SAML user with the SAML attribute with name Role
and value engineers
.
This will cause the user created on the Omni side to be labeled as saml.omni.sidero.dev/role/engineers
.
This label will match the SAMLLabelRule
resource we created above, and the user will automatically be assigned the Operator
role.
Note
When there are multiple matches from different SAMLLabelRule
resources, the matched role with the highest access level will be assigned to the user.
Warning
This role assignment will only work for the new users logging in with SAML.
The SAML users who have already logged in to Omni at least once will not be matched by the SAMLLabelRule
resource and their roles will not be updated.
Warning
If the logged in SAML user is the very first user logging in to an Omni instance, it will not be matched by the SAMLLabelRule
resource and always be assigned the Admin
role.
How to configure VMware Workspace ONE Access for Omni using SAML.
Workspace ONE Access
This section describes how to create a Web App inside Workspace ONE Acces (WSOA).
First, login to the WSOA user interface and browse to Resources -> Web Apps -> New
Next, enter values for the following options before clicking on Next.
Name
Omni
A descriptive name for the Web App
Description
Sidero Omni
A description for the Web App
Icon
Image
An icon to be displayed on the dashboard
On the Single Sign-On page, enter the following values:
Authentication Type
SAML 2.0
The Authentication type. Options are SAML or OIDC
Configuration
Manual
We will use manual to specify the fields
Single Sign-On URL
https://{omni-host}/saml/acs
The SSO URL for Omni
Recipient URL
https://{omni-host}/saml/acs
The Recipient URL for Omni
Application ID
https://{omni-host}/saml/metadata
The Omni metadata URL
Username format
Unspecified
The username format is unspecified
Username value
${user.userName}
The username sent in the SAML assertion
Relay State URL
Blank
Leave this empty
Still on the Single Sign-On page, in the Advanced Properties section, set the following toggle buttons;
Sign Response
False
Sign the SAML response.
Sign Assertion
True
Sign the SAML assertion.
Encrypt Assertion
False
Encrypt the SAML assertion.
Include Assertion Signature
False
Include the assertion signature.
Device SSO Response
False
Enable Device SSO response.
Enable Force Authn Request
False
Enable Force Authn Request.
Signature Algorithm
SHA-256 with RSA
The signature algorithm.
Digest Algorithm
SHA-256
The digest algorithm.
Assertion Lifetime
200
The assertion lifetime.
At the bottom of the Single Sign-On page, in the Custom Attribute Mapping section, add the following attributes:
Unspecified
${user.email}
The user’s email address
firstName
Unspecified
${user.firstName}
The user’s first name
lastName
Unspecified
${user.lastName}
The user’s last name
groups
Unspecified
${groupNames}
The user’s groups
Click Next to continue and select the access policy as required by your organization.
Now it’s time to click the Save & Assign button and permit the Users and Groups allowed to login to Omni.
On the Assign screen, enter the following:
Select the permitted group from your backing Active Directory or LDAP server.
Set the Deployment Type to Automatic.
Finally, obtain the IdP Metadata URL by clicking on Settings and then the Copy URL link.
Provide the following flags to the Omni container on launch.
--auth-saml-enabled
Enable SAML authentication.
--auth-saml-url
The URL to the IdP metadata file.
--auth-saml-label-rules='{"groups": "groups"}'
This extracts the groups
attribute from the SAML assertion into the label saml.omni.sidero.dev/groups/<value>
For example;
Copy
Now that you have started Omni with the correct flags, refer to the Auto-assign roles to SAML users guide for information on how to automatically assign roles to users based on their SAML attributes.
Note that when using groups, the group name is prefixed with saml.omni.sidero.dev/groups/
instead of role. For example;
Copy
Log in to Otka
Create a new App Integration
Select “SAML 2.0”
Give the Application a recognizable name (we suggest simply “Omni”)
Set the SAML Settings and Attribute Statements as shown below:
Click “Next” and optionally fill out the Feedback, then click “Finish”
Once that is complete, you should now be able to open the “Assignments” tab for the application you just created and manage your users and access as usual.
In the Azure portal, click "Enterprise Applications".
Click "New Application" and search for "Entra SAML Toolkit".
Name this application something more meaningful if desired and click "Create".
Under the "Manage" section of the application, select "Single sign-on", then "SAML" as the single sign-on method.
In section 1 of this form, enter identifier, reply, and sign on URLs that match the following and save:
Identifier (Entity ID): https://<domain name for omni>/saml/metadata
Reply URL (Assertion Consumer Service URL): https://<domain name for omni>/saml/acs
Sign on URL: https://<domain name for omni>/login
From section 3, copy the "App Federation Metadata Url" for later use.
Again, under the "Manage" section of the application, select "Users and groups".
Add any users or groups you wish to give access to your Omni environment here.
How to configure Unifi Identity Enterprise for Omni using SAML.
This section describes how to use Unifi Identity Enterprise (here forward UIIE) SSO with Omni via SAML
First, login to the UIIE Manager portal and navigate to the SSO Apps section in the left menu.
Next, Add a new app. Choose “Add Custom App”
Next, click Add on the “SAML 2.0” option for Sign-on Method
You’ll now be in the Add SAML 2.0 App screen where we’ll define the app.
Name
Omni
A descriptive name for the Web App
Icon
<your choice>
Upload an icon of your choosing
Single Sign-On URL
https://<fqdn for omni>/saml/acs
The fully-qualified domain name at which your omni instance will reside
Audience URI (SP Entity ID)
https://<fqdn for omni>/saml/metadata
The fully-qualified domain name for metadata retrieval
Default Relay State
Leave this blank
Name ID Format
Unspecified
Unspecified works, you can probably also choose emailAddress
App Username
Works best with emails as usernames however prefixes might work too
SCIM Connection
Off
Not used
After entering the above values and clicking the “Add” button, you’ll be taken to another screen with some details. We don’t need anything from here, we’ll get info we need later after further configuration, so just click “Done” to proceed.
You’ll now be on the screen to manage the app, here you’ll want to assign users/groups according to who you would like to have the ability to login to Omni. To start with, you probably only want to assign the person who will be the primary admin, as the first user to login will be granted that role in Omni. Therefore, best practice would be to assign your primary admin, have them login to Omni, then come back into the app here and assign any other users who should have access.
Once you’ve assigned the user(s) accordingly, click the “Settings” bubble at the top of the screen as some final configuration is needed here.
Expand the “Sign On” section at the bottom of the settings page via the “Show More” down arrow.
At the bottom of this section, you’ll see an “Attibute Statements” block, here the mappings from UIIE to Omni fields needs to be entered as below. Use the “Add Another” button to create new ones.
Unspecified
The user’s email address
firstName
Unspecified
First Name
The user’s first name
lastName
Unspecified
Last Name
The user’s last name
Lastly, you’ll need the IDP Metadata file which can be obtained via the View Setup Instructions link or downloaded as an xml file via the Identity Provider metadata link; both of which are slightly further up the page.
A copy of this file needs to be on the host which will run the Omni container as we’ll feed it in to the container at runtime. You can copy paste contents or download/upload the file whichever is easiest. For the remainder of this guide, we’ll assume this file ends up at the following location on your container host: ~/uiieIDPmetadata.xml
This completes the configurations required in UIIE
To get Omni to use UIIE as a SAML provider, the following flags should be passed to Docker & the Omni container on launch.
Docker
-v $PWD/uiieIDPmetadata.xml:/uiieIDPmetadata.xml
Make available the IDP metadata file in container
Omni
--auth-saml-enabled=true
Enable SAML authentication.
Omni
--auth-saml-metadata-/uiieIDPmetadata.xml
The path to the IDP metadata file.
For example;
Copy
Unfortunately UIIE does not expose group attributes, so you will have to manually assign Omni groups/roles to the users as they are created on first login.