Introduction
The System for Cross-domain Identity Management (SCIM) is a standardized way to provision and manage /Users and /Groups entities in a system. It uses a REST API to manage CRUD operations relating to user management entities. SCIM 2.0 has a predefined schema for all user and group attributes (i.e. username, first name, email, etc.). This allows a SCIM-compliant client application to automatically provision users, and to perform CRUD operations to the /Users endpoint.
SCIM can securely automate the exchange and management of user identities between your company's identity provider (i.e. Azure AD) which acts as the SCIM client and a SaaS application like Oneflow.
Setup SCIM on Azure Active Directory
This guide will help you configure SCIM Provisioning for the Oneflow Enterprise Application in Azure AD.
Stage 1: Activate SCIM in Oneflow
- Login to your Oneflow account
- Navigate to Marketplace > SCIM
- Click on Enable.
- This will generate a secret token that will be used for authentication by Azure. Save it in a safe place. If you lose it you can deactivate and then reactivate SCIM in Oneflow to generate a new one.
Stage 2: Configure the provisioning settings in Azure AD
To automatically provision users in Azure AD into Oneflow, we first need to establish attribute mappings between Azure and Oneflow's SCIM API.
- Login to Azure
- Navigate to the Enterprise Application you've created for Oneflow.
- In the left-hand menu, click Provisioning, followed by Edit Provisioning at the top menu.
- Select Automatic in Provisioning Mode
- Enter https://api.oneflow.com/scim/v1/?aadOptscim062020 as the Tenant URL.
- Enter the secret token you received when activating SCIM in Oneflow.
- Click Test Connection to verify that these two settings were entered correctly.
- In the settings section, select "Sync only assigned users and groups" as the scope.
- In the mappings section, click Provision Azure Active Directory Users.
- In the section "Target Object Actions", select the Create, Update, and Delete checkboxes.
- The configuration listed below is an example of a simple straightforward setup, but you can adjust these mappings according to your needs.
objectID > externalId
This mapping helps the AAD keep track of the Oneflow user.email > userName
OR
userPrincipalName > userName
This syncs either the email or userPrincipalName of the AAD user as the username/email in Oneflow.
Note that this must be the same value as the NameID claim sent by the SSO.
displayName > displayName
The name of the user.
Update the mapping expression for the active field to:
Not([IsSoftDeleted])
- Click Save.
- In the Mappings section, navigate to Provision Azure Active Directory Groups.
- In the "Target Object Actions" section, select the Create, Update, and Delete checkboxes
Attribute mappings for groups are straightforward direct mappings: - Click Save.
Stage 3: Time to test it!
- Go back to the Provisioning page of the Enterprise Application.
- Click Provision on demand.
- Select a user and click Provision.
- If the test reports success, then you can validate that the user looks correct in Oneflow.
- If the test fails, reach out to us with the error message and we'll assist in interpreting it.
- If the testing looks good, then you can go back to the Provisioning page of the Enterprise Application and click Start Provisioning which will schedule the sync process.
- The link/button "View provisioning logs" is useful to troubleshoot errors that occur during sync.
SCIM Role setup instructions
This will help you set up SCIM roles in Azure AD for the Oneflow Enterprise application.
Go into the attribute mappings for the Oneflow Enterprise Application.
Stage 1
- Go into the attribute mappings for the Oneflow Enterprise Application.
- Go to user attributes.
- Click Show advanced options.
- Click Edit attribute list for Oneflow.
- We want to add a new attribute, simply called roles.
- It should have "multi-valued" checked while the other settings are left unchecked.
- Click Save!
Stage 2
- Add a new attribute mapping of the type expression, for the new "roles" attribute.
AppRoleAssignmentsComplex([appRoleAssignments])
- Click Save!
Stage 3
Time to add the new roles that will control whether users are active or have a license.
- Go to App Registrations in the AAD portal.
- Click the All applications tab.
- Select the Oneflow app from your list.
- Go to App roles.
- You should already have a "User" role here that AAD created together with the Enterprise App.
- We want to create two more roles.
- The display name and description of these roles are up to you to decide on.
- The important part is the "value" of each role. We want one role with the value active and the other role with the value standard_license.
Example:
Stage 4
Time for a provisioning test.
Perform an on-demand provisioning of a user that is in scope for the enterprise application.
The result in the Data Flow tab should look something like this:
- This screenshot shows two roles, but you'll most likely only have one; the AAD default "User" role, which is perfectly fine, we'll fix that in the next couple of steps.
Stage 5
- Go back to the Users & Groups page in the Oneflow enterprise app.
- You can now assign either the standard_license or active role (or both) to a group and that will then be used to control whether or not the corresponding properties on their members.
- For groups that are only used to control access inside Oneflow, you simply assign any other role, either the default "User" role or another custom role.
Example: