@@ -18,13 +18,28 @@ With SCIM, you can:
1818
1919- Create Flagsmith users ahead of their first login, so they already have the right group memberships and permissions
2020 waiting for them.
21- - Remove users from your Flagsmith organisation when they are deprovisioned in your identity provider
21+ - Remove users from your Flagsmith organisation when they are deprovisioned in your identity provider.
2222- Sync group membership so that adding or removing a user from a group in your identity provider is reflected in
2323 Flagsmith automatically.
2424
25- SCIM works alongside your existing SSO configuration. SSO handles authentication (how users log in), while SCIM handles
25+ SCIM works alongside your existing SSO configuration: SSO handles authentication (how users log in), while SCIM handles
2626provisioning (which users and groups exist in Flagsmith, and who belongs to what).
2727
28+ ## Supported features
29+
30+ Flagsmith's SCIM 2.0 API supports:
31+
32+ - Creating users.
33+ - Deleting users. See [ User lifecycle] ( #user-lifecycle ) for what is and is not removed.
34+ - Pushing groups: create and update [ permission groups] ( /administration-and-security/access-control/rbac#groups ) and
35+ their membership, and delete groups.
36+ - Filtering and pagination on the ` /Users ` and ` /Groups ` list endpoints.
37+
38+ Flagsmith does not support:
39+
40+ - Deactivating users through the ` active ` attribute. Use DELETE requests to deprovision users instead.
41+ - Profile sourcing, ` /Me ` , ` /Bulk ` , sorting, and ETag concurrency control.
42+
2843## Prerequisites
2944
3045- Your Flagsmith organisation must have an active Enterprise licence.
@@ -35,9 +50,8 @@ provisioning (which users and groups exist in Flagsmith, and who belongs to what
3550
3651::: caution
3752
38- Flagsmith requires the SCIM ` userName ` attribute to be the user's email address. Requests with a ` userName ` that is not
39- a valid email address are rejected with a 400 response. Ensure your identity provider is configured to send email
40- addresses as SCIM usernames — for example, in Okta, set the application username format to "Email".
53+ Flagsmith requires the SCIM ` userName ` attribute to be the user's email address. Ensure your identity provider is
54+ configured to send email addresses as SCIM usernames.
4155
4256:::
4357
@@ -48,13 +62,32 @@ When your identity provider provisions a user through SCIM:
48622 . If the user already exists (matched by email, case-insensitive), they are added to the organisation if they are not
4963 already a member.
5064
51- When your identity provider deprovisions a user (sets ` active ` to ` false ` or sends a DELETE request) :
65+ When your identity provider deprovisions a user by sending a DELETE request:
5266
53671 . The user is removed from the organisation in Flagsmith. This also removes all their project and environment
5468 permissions within that organisation, and removes them from all
5569 [ permission groups] ( /administration-and-security/access-control/rbac#groups ) in that organisation.
56702 . The user's data (audit log entries, change request history) is preserved.
5771
72+ ::: caution
73+
74+ Deprovisioning is supported through DELETE requests only. Flagsmith does not act on the SCIM ` active ` attribute.
75+
76+ :::
77+
78+ ### User attributes
79+
80+ Flagsmith reads the following attributes from SCIM user requests:
81+
82+ | Attribute | Required | Maps to |
83+ | ----------------- | -------- | ------------- |
84+ | ` userName ` | Yes | Email address |
85+ | ` name.givenName ` | No | First name |
86+ | ` name.familyName ` | No | Last name |
87+
88+ All other attributes are ignored. If your identity provider lets you choose which attributes to send, sending only the
89+ three above keeps your configuration simpler and avoids implying that Flagsmith stores data it does not.
90+
5891## Group lifecycle
5992
6093SCIM groups map to Flagsmith [ permission groups] ( /administration-and-security/access-control/rbac#groups ) within the
@@ -93,10 +126,13 @@ shown only once and cannot be retrieved later. If you lose it, you can regenerat
93126
94127Add Flagsmith as a SCIM application in your identity provider. You will need:
95128
96- - ** SCIM base URL** : ` https://flagsmith.example.com/api/v1/scim/v2/ ` , replacing ` flagsmith.example.com ` with your
97- Flagsmith API domain. On Flagsmith SaaS, this is ` https://api.flagsmith.com/api/v1/scim/v2/ ` .
129+ - ** SCIM base URL** : ` https://flagsmith.example.com/api/v1/scim/v2 ` , replacing ` flagsmith.example.com ` with your
130+ Flagsmith API domain. On Flagsmith SaaS, this is ` https://api.flagsmith.com/api/v1/scim/v2 ` .
98131- ** Bearer token** : the token you copied in the previous step.
99132
133+ Both values are shown on the SCIM page in Flagsmith, so you can copy them directly rather than assembling the URL by
134+ hand.
135+
100136The exact steps depend on your identity provider. See the guides below for common providers.
101137
102138### 3. Assign users and groups
@@ -116,29 +152,32 @@ You can view and manage SCIM configurations from **Organisation Settings** > **S
116152
117153::: note
118154
119- These guides were last verified in May 2026. If your identity provider's UI has changed, refer to their documentation
155+ These guides were last verified in July 2026. If your identity provider's UI has changed, refer to their documentation
120156for the most up-to-date steps.
121157
122158:::
123159
124160### Okta
125161
126- ::: note
127-
128- We're working with Okta to enable SCIM for our Flagsmith OIN application. We'll update the docs as soon as we confirm it's working.
129-
130- :::
162+ These steps are for the Flagsmith application from the Okta Integration Network catalogue.
131163
164+ 1 . Get your SCIM bearer token as described under [ Setup] ( #1-create-a-scim-configuration ) .
1321651 . Go to the "Applications" page and open the Flagsmith application.
133- 2 . Go to the "General" tab and click "Edit" under "App Settings".
134- 3 . Enable "Provisioning" and click "Save".
135- 4 . A new "Provisioning" tab will appear. Open it and click "Edit" under "SCIM Connection".
136- 5 . Set the SCIM connector base URL to your Flagsmith SCIM base URL.
137- 6 . Set the unique identifier field to ` email ` .
138- 7 . Under "Supported provisioning actions", enable: Push New Users, Push Profile Updates, and Push Groups.
139- 8 . Set the authentication mode to "HTTP Header" and paste your SCIM bearer token.
140- 9 . Click "Test Connector Configuration" to verify the connection, then save.
141- 10 . Still on the "Provisioning" tab, under "To App", enable: Create Users, Update User Attributes, and Deactivate Users.
166+ 1 . On the "Sign On" tab, under "Advanced Sign-on Settings", set API Base URL to your Flagsmith API domain. On Flagsmith
167+ SaaS this is ` https://api.flagsmith.com ` .
168+ 1 . Still on the "Sign On" tab, under "Credentials Details", set the application username format to "Email". Flagsmith
169+ requires the SCIM ` userName ` to be a valid email address.
170+ 1 . Go to the "General" tab, click "Edit" under "App Settings", enable "Provisioning" and click "Save". A "Provisioning"
171+ tab appears.
172+ 1 . On the "Provisioning" tab, select "Integration" and click "Edit". Tick "Enable API integration" and paste your SCIM
173+ bearer token into ** API Token** .
174+ 1 . Click "Test API Credentials" to verify the connection, then save.
175+ 1 . Select "To App" and click "Edit", then enable "Create Users" and "Update User Attributes".
176+
177+ To deprovision a user, unassign them from the application in Okta. Okta sends a DELETE request and Flagsmith removes the
178+ user from your organisation.
179+
180+ To sync groups, use the "Push Groups" tab to select the Okta groups you want to push to Flagsmith.
142181
143182### Microsoft Entra ID (Azure AD)
144183
@@ -169,14 +208,13 @@ All SCIM endpoints are under `/api/v1/scim/v2/` and require a valid SCIM bearer
169208API supports filtering (e.g. ` filter=userName eq "user@example.com" ` ) and pagination (` startIndex ` , ` count ` ) on list
170209endpoints as defined by the SCIM 2.0 specification.
171210
172-
173211## Troubleshooting
174212
175213### Users are not being provisioned
176214
177- - Verify the SCIM base URL ends with ` /api/v1/scim/v2/ ` (including the trailing slash).
215+ - Verify the SCIM base URL in your identity provider matches the one shown in Flagsmith under ** Organisation
216+ Settings** > ** SSO** > ** SCIM** .
178217- Verify the bearer token is correct. If in doubt, regenerate it.
179- - Check that the user's email address is included in the SCIM request. Flagsmith requires an email to create a user.
180218- Check that the SCIM ` userName ` attribute is the user's email address. Flagsmith rejects requests with a non-email
181219 ` userName ` with a 400 response.
182220
@@ -194,5 +232,7 @@ endpoints as defined by the SCIM 2.0 specification.
194232
195233### Deprovisioned users still appear in the organisation
196234
197- - Check that your identity provider is sending a PATCH request with ` active ` set to ` false ` , or a DELETE request, when
198- deprovisioning a user. Some identity providers require explicit configuration to send deprovisioning events.
235+ - Check that your identity provider is sending a DELETE request when deprovisioning a user. Flagsmith does not act on
236+ the ` active ` attribute, so a PATCH request setting ` active ` to ` false ` does not remove the user — it returns a 501
237+ response. In Okta, this means removing the user from the application rather than deactivating them.
238+ - Some identity providers require explicit configuration to send deprovisioning events.
0 commit comments