Provision with SCIM
Cloudflare supports bulk provisioning of users into the Cloudflare dashboard by using the System for Cross-domain Identity Management (SCIM) protocol. This allows you to connect your external identity provider (IdP) to Cloudflare and quickly onboard and manage users and their permissions. Cloudflare supports SCIM onboarding with Okta and Microsoft Entra.
- If a user is the only Super Administrator on an Enterprise account, they will not be deprovisioned.
- Cloudflare currently only supports Account-scoped Roles and does not support Domain-scoped Roles provisioning via SCIM.
- Cloudflare does not allow custom user groups.
- Cloudflare provisioning with SCIM is only available to Enterprise customers using Okta or Microsoft Entra.
- You must be a Super Administrator on the account.
- In your identity provider, you must have the ability to create applications and groups.
To start, you will need to collect a couple of pieces of data from Cloudflare and set these aside for later use.
- In the Cloudflare dashboard ↗, go to the Cloudflare account that you want to configure for SCIM provisioning.
- Copy your account ID from the account home page.
-
Create an API token with the following permissions:
Type Item Permission Account SCIM Provisioning Edit -
Under Account Resources, select the specific account to include or exclude from the dropdown menu, if applicable.
-
Select Continue to summary.
-
Validate the permissions and select Create Token.
-
Copy the token value.
-
In the Okta dashboard, go to Applications > Applications.
-
Select Browse App Catalog.
-
Locate and select SCIM 2.0 Test App (OAuth Bearer Token).
-
Select Add Integration and name your integration.
-
Enable the following options:
- Do not display application icon to users
- Do not display application icon in the Okta Mobile App
-
Disable Automatically log in when user lands on login page.
-
Select Next, then select Done.
- In your integration page, go to Provisioning > Configure API Integration.
- Enable Enable API Integration.
- In SCIM 2.0 Base URL, enter:
https://api.cloudflare.com/client/v4/accounts/<accountID>/scim/v2
. - In OAuth Bearer Token, enter your API token value.
- Select Save.
- In Provisioning to App, select Edit.
- Enable Create Users and Deactivate Users. Select Save.
- In the integration page, go to Assignments > Assign > Assign to Groups.
- Choose the group(s) that you want to provision to Cloudflare.
- Select Done.
This will provision all of the users in the group(s) affected to your Cloudflare account with "minimal account access."
There are two options for managing user permissions:
- Manage your user permissions on a per-user basis in the Cloudflare dashboard, API, or using Terraform.
- Map your IdP groups to a Cloudflare built-in Role. Groups may only be linked to one role.
- Go to your SCIM application in the App Integration Catalog, then select Provisioning.
- Under *To App, select Edit.
- Enable Create Users and Deactivate Users. Select Save.
- Go to Push Groups.
- Select + Push Groups, then Find groups by name.
- Enter the name of the group(s) that you want to sync to Cloudflare.
- Choose Link Group.
- Cloudflare provisioned user groups are named in the pattern
CF-<accountID> - <Role Name>
. Choose the appropriate group that maps to your target role. - Disable Rename groups. Select Save.
- Within the Push Groups tab, select Push Groups.
- Add the groups you created.
- Select Save.
Adding any users to these groups will grant them the role. Removing the users from the identity provider will remove them from the associated role.
- Go to your Microsoft Entra ID instance and select Enterprise Applications.
- Select Create your own application and name your application.
- Select Integrate any other application you don’t find in the gallery (Non-gallery).
- Select Create.
- Under Manage on the sidebar menu, select Provisioning.
- Select Automatic on the dropdown menu for the Provisioning Mode.
- Enter your API token value and the tenant URL:
https://api.cloudflare.com/client/v4/accounts/<your_account_ID>/scim/v2
. - Select Test Connection, then select Save.
Currently, groups need to match a specific format to provision specific Cloudflare account-level roles. Cloudflare is in the process of adding Cloudflare Groups, which can take in freeform group names in the future.
These permissions work on an exact string match with the form CF-<your_account_ID> - <Role_Name>
Refer to the list of Roles for more details.
- To ensure that only required groups are provisioned, go to your Microsoft Entra ID instance.
- Under Manage on the sidebar menu, select Provisioning.
- Select Provision Entra Groups in Mappings.
- Select All records under Source Object Scope.
- Select Add scoping filter and create the appropriate filtering criteria to capture only the necessary groups.
- Save the Attribute Mapping by selecting OK and return to the Enterprise Application Provisioning overview page.
- Select Start provisioning to view the new users and groups populated on the Cloudflare dashboard.