Skip to content

SSO and SCIM

SSO and SCIM are two jobs. SSO is how people sign in. SCIM is how directory users appear, update, and deactivate. A successful login does not prove provisioning works. A successful SCIM sync does not prove anyone can sign in.

Dataplicity does not create an organisation member from an unknown SAML login. The person must already exist, either as a SCIM-provisioned user or as a local Dataplicity account. Assign the Entra (or Okta) application only to people you intend to land in this organisation.

Open the wizard as the Organisation Admin under Configuration → Access & security → Manage SSO. Each organisation has exactly one Organisation Admin. That account is the only Dataplicity identity that can bypass mandatory SSO with password login if the IdP path fails. Day-to-day admin work is better done with the Administrator role; keep Organisation Admin for ownership and break-glass, and do not try to create a second one.

Dataplicity Single sign-on page with hero status chips and the map-attributes step showing Enable SAML SSO on, Require SSO off, and the Entra email claim URI
Dataplicity SSO wizard after IdP metadata is imported. Map the SAML claim Name for email, not Entra's Source attribute. Leave required SSO off until a pilot login works.

What you are building

A security operator is deciding four things, in this order:

  1. Who may sign in with a password after you require SSO. That is the Organisation Admin only.
  2. How workforce identities arrive. SCIM for people in the directory. Local Dataplicity accounts for people who should not live in that directory (break-glass deputies you keep local, a vendor, a short-lived contractor).
  3. Where job-function groups live. Dataplicity groups if you are not syncing groups. Identity-provider groups if you turn Sync groups on.
  4. Whether the IdP may set Dataplicity roles directly. Leave that off unless you have an approved allowlist. Organisation Admin is never accepted from a SCIM role payload.

SSO without SCIM is a valid design: you invite people in Dataplicity, they sign in through the IdP. Add SCIM when joiners and leavers should follow the directory without a second invite step.

Directory users versus local accounts

When SCIM user sync is on:

Kind of accountHow it is createdWhat you change in Dataplicity
Directory-managed (scim_managed)SCIM from the IdPRead-only. Edit, role, and delete happen in the identity provider.
LocalAdd user in DataplicityYou can still add, edit, and delete these accounts. They are not directory-managed.

The Users page says directory-managed rows are read-only, and that local accounts can still be added and edited. Do not create a local duplicate of a directory user to bypass that. If SCIM later claims the same email, you now have a conflict instead of a workaround.

Local accounts still follow Require users to sign in using SSO like everyone except Organisation Admin. A local user is not a second break-glass password path.

Groups are stricter than users

Sync users does not lock Dataplicity group management.

Sync groups does:

  • You cannot create groups in Dataplicity while group provisioning is enabled.
  • SCIM-managed groups stay read-only while SCIM is healthy. Change membership and the group role in the IdP.

If your role set is Dataplicity groups (Support, Engineering, Security), leave Sync groups off and assign SCIM users into those groups in Dataplicity. Turn group sync on only when the directory groups are those job functions.

  1. Name the Organisation Admin. Give that person a separate Administrator login for daily work.
  2. Build the role set (groups and tags) before you require SSO.
  3. Configure SAML. Leave Require users to sign in using SSO off.
  4. Assign a pilot group in the IdP. At least one pilot user must already be a Dataplicity member.
  5. Sign in through the IdP in a private window. Confirm organisation, role, and scope. Confirm an unassigned IdP user is denied.
  6. Confirm the Organisation Admin can still use password login.
  7. Turn on Require users to sign in using SSO. Re-test a normal SSO login and the Organisation Admin password fallback.
  8. Enable SCIM. Start with Sync users on, Sync groups off, and Allow Entra to set roles directly off. Provision one pilot user. Confirm they appear as directory-managed and that Add user still creates a local account.
  9. Only then expand IdP assignment and, if you chose it, group sync.

Work in a private browser window for pilot logins so an existing Dataplicity session does not hide failures.

Dataplicity values to copy

In Manage SSO, Step 1 shows the service-provider values for this organisation. Production SAML and SCIM hosts use acs.dataplicity.com. Prefer those URLs if anything you copy still points elsewhere.

Dataplicity labelPaste into Microsoft Entra asProduction pattern
Service provider Entity IDIdentifier (Entity ID)https://acs.dataplicity.com/organisations/<organisation-id>/sso/metadata
Reply URL / ACSReply URL (Assertion Consumer Service URL)https://acs.dataplicity.com/organisations/<organisation-id>/sso/acs/
Logout URLLogout URLhttps://acs.dataplicity.com/organisations/<organisation-id>/sso/logout/

Entra rejects Identifier (Entity ID) values that end with /. If Dataplicity shows a trailing slash, omit it in Entra and store the same no-slash value on both sides. You can also Download XML or Copy URL when the IdP can import Dataplicity metadata directly.

Basic SAML Configuration fields only: Identifier Entity ID, Reply URL ACS, and Logout URL using acs.dataplicity.com organisation paths
Entra Basic SAML Configuration - paste the organisation-specific values from Dataplicity Step 1.

Configure SSO with Microsoft Entra ID

Create the app and assign a pilot group

In the Microsoft Entra admin center, open Identity → Applications → Enterprise applications, create your own non-gallery application (for example named Dataplicity), then open it.

Before anyone tries to sign in, open Users and groups and assign only the pilot users or group. At least one of those people should already be a Dataplicity organisation member you expect to land after login.

Wire the SAML URLs

Open Single sign-on, choose SAML, and edit Basic SAML Configuration. Set Identifier (Entity ID), Reply URL (Assertion Consumer Service URL) (HTTP-POST when asked), and Logout URL from the Dataplicity Step 1 values, then save.

Entity ID and ACS must match Dataplicity exactly. Host and trailing-slash mismatches are the usual cause of login loops.

Map claims (Name, not Source)

Dataplicity matches people on a stable email claim and can optionally read a display name.

Attributes and Claims cutout mapping emailaddress and displayname claim names to user.mail and user.displayname
Attributes & Claims - Dataplicity needs the claim Name Entra emits, not the Source field.

Edit Attributes & Claims on the SAML page. Prefer user.mail as the Entra Source. Use user.userprincipalname only when that value is the email address the person already uses in Dataplicity. Note the claim Name Entra emits - often the long http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress URI. That Name is what you paste into Dataplicity later; do not paste user.mail into Dataplicity.

Optionally add a display-name claim from user.displayname (Entra often emits http://schemas.microsoft.com/identity/claims/displayname). A claim arriving successfully still does not prove the person has the right Dataplicity role or scope. Check effective access after login.

Export Entra metadata and import it in Dataplicity

SAML Certificates cutout with Federation Metadata XML download and metadata URL copy actions
SAML Certificates - download Federation Metadata XML for Dataplicity Step 2.

From SAML Certificates, download Federation Metadata XML. Treat signing certificates as secrets; do not paste them into tickets or chat.

Back in Dataplicity Manage SSO, continue to Step 2 · Import IdP details, upload the XML, and confirm Dataplicity shows an IdP SSO URL and certificate fingerprint. If upload is unavailable, paste the IdP login URL and Base64 certificate manually.

Enable SSO for a pilot (do not require it yet)

Continue to Map attributes & enforce sign-in. Set Email attribute to the SAML claim Name from Entra, and Display name attribute if you configured one. Turn on Enable SAML SSO, leave Require users to sign in using SSO off, and save.

In a private window, open https://www.dataplicity.com/login, sign in as a pilot user through Entra (including MFA), and confirm they land in the right organisation with the right access. Sign out cleanly, then retry with someone who is not assigned in Entra and confirm Dataplicity denies access.

Require SSO

Only after the pilot works: confirm the Organisation Admin can still use password login when SSO is unavailable. That is the only break-glass path. Turn on Require users to sign in using SSO, save, then re-test a normal SSO login and the Organisation Admin password fallback.

Administrator-role users follow SSO like everyone else. Protect the Organisation Admin account and prefer day-to-day work on Administrator accounts. Verified domains and login hints can help route people to the correct provider.

Configure SSO with Okta

Use the same Dataplicity Entity ID, ACS, and Logout URL. Create a SAML 2.0 app in Okta, emit an email attribute and note its name, assign a pilot group, download IdP metadata, upload it in Dataplicity Step 2, map the email claim in Step 3, enable SSO, pilot test, then require SSO only when ready.

Provision with SCIM

Enable SAML SSO first. SCIM keeps directory users (and, if you choose, groups) aligned after login works.

SCIM Tenant URL on acs.dataplicity.com and a one-time secret token warning for Microsoft Entra provisioning
Entra needs the Dataplicity SCIM Tenant URL and a freshly generated secret token.

In Dataplicity Manage SSO, open Provisioning (SCIM):

  1. Enable SCIM provisioning.
  2. Turn Sync users on.
  3. Leave Sync groups off unless directory groups are your Dataplicity job-function groups.
  4. Leave Allow Entra to set roles directly off unless you have an approved role allowlist. Organisation Admin and superuser are never accepted from SCIM role payloads.
  5. Save, generate a new SCIM token (shown once), and copy the endpoint:
text
https://acs.dataplicity.com/api/scim/v2/organisations/<organisation-id>

Treat the token as a secret. Rotate it after exposure, supplier change, or administrator departure. The previous token stops working when you generate a new one.

In the same Entra enterprise application, open Provisioning, set mode to Automatic, paste the Dataplicity endpoint into Tenant URL and the token into Secret token, then Test connection. Configure mappings, start with one pilot user, and confirm in Dataplicity that the user appears as directory-managed, updates when the IdP record changes, and deactivates when removed or disabled in Entra.

Then confirm the other half of the model: Add user still creates a local account, and Edit stays available on that row. Directory-managed rows stay read-only.

Verify before you widen assignment

CheckExpected
Pilot SSO loginLands in the right organisation with the intended role and tag scope
IdP user not assigned to the appDenied
Unknown email (no Dataplicity member)Denied. SSO does not create the account
Organisation Admin passwordStill works after you require SSO
Administrator passwordFollows SSO; not a break-glass path
SCIM pilot userAppears as directory-managed; Edit and Delete are unavailable in Dataplicity
Local Add userStill creates an editable local account
Disable or remove the SCIM user in the IdPDataplicity account deactivates or disappears on the next sync
Group sync offYou can still create Dataplicity groups and put SCIM users in them
Group sync onIn-app group create is disabled; SCIM-managed groups are read-only

Joiners, movers, and leavers

  • Joiner (directory): add them to the IdP app (and the IdP group that SCIM syncs, if you use group sync). Do not also invite the same email as a local user.
  • Joiner (local): use Add user in Dataplicity. Use this for people who should not live in the workforce directory.
  • Mover: change IdP group membership or Dataplicity group membership, depending on where that group lives. Confirm they lost the old job's writes.
  • Leaver (directory): disable or remove them in the IdP. That is the authoritative deprovision. Then review sessions, API keys, on-call responder devices, and audit history.
  • Leaver (local): deactivate or delete them in Dataplicity.

Troubleshooting

SymptomWhat to check
Login loop or SAML errorEntity ID, ACS, host (acs.dataplicity.com), certificate, IdP clock skew, and Entra app assignment
SSO succeeds but Dataplicity denies accessThe person is not a member yet. Invite locally or wait for SCIM. Then check effective role and scope
Wrong organisation after loginEmail claim, claimed/verified domain, and which organisation owns that member
Email claim missing or wrong user matchedDataplicity Email attribute versus the claim Name Entra emits; prefer user.mail as Entra Source
Cannot edit a user in DataplicityDirectory-managed users are read-only while SCIM is on. Change them in the IdP. Local accounts remain editable
Cannot add a groupSync groups is on. Create the group in the IdP, or turn group sync off
SCIM test connection failsEndpoint URL, bearer token, and that SAML SSO is already enabled
SCIM update rejectedToken rotation, immutable identity fields, and managed-state conflicts
Mandatory SSO lockoutSign in as Organisation Admin with password, turn off required SSO, repair IdP settings

After certificate or token rotation, re-test a pilot login and one provisioned user.