Files
openwork/packages/docs/cloud/scim-microsoft-entra.mdx

176 lines
7.8 KiB
Plaintext

---
title: "Microsoft Entra SCIM provisioning"
description: "Provision OpenWork members and teams from Microsoft Entra ID"
---
Use Microsoft Entra ID provisioning to create, update, and deactivate OpenWork
members automatically. Entra security groups can also become OpenWork teams
whose membership is managed by Entra.
## Before you start
You need:
- An OpenWork organization with Enterprise SSO and SCIM.
- An OpenWork owner, or a member who can manage security configuration.
- A working OpenWork SAML connection. Complete and test
[Microsoft Entra SAML SSO](/cloud/sso-microsoft-entra) first.
- A Microsoft Entra role that can manage enterprise applications and
provisioning.
- An Entra plan that supports assigning groups to enterprise applications if
you want to synchronize groups.
Keep SSO enforcement off until you have tested both SAML sign-in and SCIM. Make
sure at least one OpenWork owner can sign in through SAML before relying on
Entra as the identity source.
## 1. Get the OpenWork connection values
In OpenWork, select the organization you want to connect, then open
**Settings → SCIM**.
Confirm that the page shows **SAML/SSO active**, then:
1. Select **Create connector**. If a connector already exists, select
**Rotate token** only when you intend to replace its current secret.
2. Copy the **SCIM base URL**.
3. Copy the **SCIM bearer token** immediately. OpenWork shows the full token
only after creating or rotating it.
4. To synchronize Entra groups as OpenWork teams, select **Enable team sync**
under **Create teams from SCIM groups**.
You will enter these values in Entra:
| Entra field | Where to get the value |
| --- | --- |
| Tenant URL | OpenWork **Settings → SCIM → SCIM base URL**. It normally ends in `/api/auth/scim/v2`. |
| Secret Token | The one-time **SCIM bearer token** shown after you create or rotate the connector. |
Treat the bearer token like a password. Do not put it in tickets, screenshots,
or shared setup notes. Rotating it immediately invalidates the previous token,
so update Entra at the same time.
## 2. Configure provisioning in Entra
In the [Microsoft Entra admin center](https://entra.microsoft.com):
1. Open **Entra ID → Enterprise apps**.
2. Select the same enterprise application used for OpenWork SAML SSO.
3. Open **Provisioning**.
4. Select **Get started**, then choose **Automatic** provisioning.
5. Open **Connectivity** or **Admin Credentials**, depending on the Entra
interface shown for your tenant.
6. Paste the OpenWork **SCIM base URL** into **Tenant URL**.
7. Paste the OpenWork **SCIM bearer token** into **Secret Token**.
8. Select **Test Connection** and wait for a successful result.
9. Save the configuration.
If **Test Connection** fails, confirm that the URL has no extra path or trailing
text and that the token has not been rotated since it was copied.
## 3. Review mappings and scope
Open **Attribute mapping** in the provisioning configuration. Entra should show
mappings for both **Users** and **Groups**.
For a controlled rollout, set **Scope** to **Sync only assigned users and
groups**. This limits provisioning to identities assigned under the enterprise
application's **Users and groups** page.
Use a stable, unique email address for the SCIM user name. If your Entra user
principal names use an `onmicrosoft.com` domain but users sign in to OpenWork
with another email domain, verify which Entra attribute is mapped to
`userName`. Keep the SAML NameID and SCIM identity consistent so Entra does not
create a second OpenWork member for the same person.
## 4. Assign test users and groups
In the enterprise application, open **Users and groups** and select **Add
user/group**.
Start with:
- One or two test users who can sign in through the configured SAML app.
- One assigned security group containing those users.
Assignments control which objects are in scope when provisioning is set to
**Sync only assigned users and groups**. Creating a group elsewhere in Entra is
not enough; assign it to the OpenWork enterprise application as well.
## 5. Test with Provision on demand
Open **Provisioning → Provision on demand**.
Test a user first:
1. Search for and select an assigned test user.
2. Select **Provision**.
3. Confirm that import, scope evaluation, matching, and the final action all
succeed.
4. In OpenWork, open **Members** and confirm that the member appears with the
expected email.
Then test a group:
1. Make sure the test group already contains at least one assigned test user.
2. Search for and select the assigned group.
3. Under **Selected users**, explicitly select up to five members to include in
the on-demand test.
4. Select **Provision**.
5. Open the result's **Group membership operations** tab and confirm each member
shows **Add member — Success**.
6. In OpenWork, open **Members → Teams** and confirm that the group appears as a
SCIM-managed team with the expected members.
<Note>
Entra's on-demand group workflow can return a generic internal server error for
an empty group, or when no members are selected. This can happen before Entra
sends a group-create request to OpenWork. Add members and select them explicitly
for the on-demand test. Entra's regular background provisioning cycle can still
synchronize empty assigned groups.
</Note>
## 6. Start scheduled provisioning
After the on-demand tests pass:
1. Return to **Provisioning → Overview**.
2. Set **Provisioning Status** to **On**, or select **Start provisioning** in
the newer Entra interface.
3. Save the change.
4. Check **Provisioning logs** after the first cycle completes.
5. Refresh OpenWork **Members** and **Teams** to verify the final state.
Regular provisioning is incremental. A newly assigned object might not appear
until the next cycle; use the Entra provisioning logs to distinguish a pending
cycle from a failed operation.
## Verify lifecycle changes
Before expanding the assignment scope, verify the complete lifecycle:
1. Remove a test user from the Entra group and confirm that OpenWork removes the
user from the SCIM-managed team.
2. Disable or unassign a test user and confirm the expected OpenWork
deprovisioning behavior.
3. Add another assigned group and confirm that OpenWork creates a second
SCIM-managed team.
Change SCIM-managed teams in Entra, not in OpenWork. OpenWork keeps manually
created teams separate from identity-provider-managed teams.
## Troubleshooting
| Symptom | Likely cause | Fix |
| --- | --- | --- |
| **Test Connection** fails | Incorrect Tenant URL, expired or rotated token, or copied whitespace | Copy the base URL and a current token again from OpenWork, then retest |
| User or group is not found in **Provision on demand** | The object is outside the provisioning scope | Assign it under the enterprise application's **Users and groups** page |
| Entra will not allow a group assignment | The tenant plan does not support assigning groups to enterprise applications | Enable a suitable Entra plan or test with directly assigned users |
| On-demand group provisioning reports an internal server error without an OpenWork request | The group is empty or no members were selected for the on-demand run | Add members, select up to five under **Selected users**, and retry |
| A group provisions but no OpenWork team appears | OpenWork team synchronization is disabled | Open **Settings → SCIM** and enable **Create teams from SCIM groups** |
| Entra creates a duplicate OpenWork member | SAML and SCIM use different email identifiers | Align the SAML NameID and the SCIM `userName` mapping |
| Entra reports success but OpenWork still shows the old state | The UI or incremental cycle has not refreshed | Refresh OpenWork, check Entra **Provisioning logs**, and review the SCIM health status in OpenWork |
For member and team behavior after provisioning, see
[Members and RBAC](/cloud/members-and-rbac).