Last updated

Single Sign-On (SSO)

Norce Commerce supports Single Sign-On (SSO) for Norce Admin. Users sign in through your organization's identity provider instead of using a separate Norce username and password. This simplifies access management and centralizes authentication.

User accounts are provisioned from your identity provider using SCIM 2.0. The users and roles you manage in Entra ID are synchronized to Norce Admin automatically, so access is governed entirely from your identity provider.

Note: SSO is an add-on feature and is not included in the standard Norce Commerce license. Enabling SSO affects your licensing terms. Contact your Norce representative for details and pricing.

How SSO works

Norce SSO Login redirect

When SSO is enabled for your client, the Norce Admin login page redirects users to your organization's identity provider. Users authenticate with their existing corporate credentials and are then signed in to Norce Admin automatically.

Entra login page

Supported identity providers

Norce currently supports Microsoft Entra ID (formerly Azure Active Directory) through the OpenID Connect (OIDC) protocol for authentication, and SCIM 2.0 for user provisioning. Support for additional identity providers may be added in the future.

User provisioning

Users are provisioned from Entra ID to Norce Admin through SCIM 2.0. A user must be provisioned before they can sign in.

Provisioning runs on Entra ID's own schedule (typically every ~40 minutes). To apply a change immediately, use Provision on demand in the enterprise application.

A user's access in Norce Admin is determined by the app role assigned to them in Entra ID. See Define roles for how roles are mapped.

Matching existing users

When a user is provisioned, Norce matches them to an existing Norce Admin account by email address, scoped to the client. The match is per client — the same email in a different client is a different account. Matching is case-insensitive, so john@doe.se and John@Doe.se are treated as the same address.

  • If a matching email is found, the existing account is linked to the Entra ID identity. The user keeps their existing user ID, along with their history and client-specific settings. Their LoginName, Name, and roles are updated using information from Entra ID.
  • If no match is found, a new account is created.

Enabling SSO on a client that already has users: To keep existing accounts (and their user IDs) when you turn on SSO, make sure each user's email in Entra ID matches the email on their existing Norce Admin account before provisioning runs. If the emails don't match, provisioning creates a new, separate account instead of reusing the existing one.

Getting started

Enabling SSO involves configuration in your identity provider and activation by Norce.

1. Prepare your identity provider

Your Entra ID administrator creates an OIDC app registration in Microsoft Entra ID and configures the redirect URI for your environment:

  • Production: https://<slug>.admin-se.norce.tech/sso/api/azuread/callback
  • Stage: https://<slug>.admin-se.stage.norce.tech/sso/api/azuread/callback

Replace <slug> with your client slug.

After the app registration is ready, share the following with Norce:

  • Tenant ID
  • Client ID (Application ID)
  • Client secret

2. Define roles in Norce and Entra ID

Roles are created in Norce Admin and mapped to app roles in Entra ID. The link between them is the role Code in Norce and the app role Value in Entra ID — these must be identical. The display names are independent and do not need to match.

Always create the role in Norce Admin first, then create the matching app role in Entra ID. Entra cannot be mapped to a code that does not yet exist in Norce.

  1. In Norce Admin, create the role and note its Code (see Roles).

    Norce Admin role with code pim-users

  2. In your Entra ID app registration, under App roles, create an app role with its Value set to the same code.

    Entra ID app role with value pim-users

In the example above, the Norce role PIM Role has the code pim-users, and the Entra ID app role PIM Users has the value pim-users. The display names differ; it is the matching code/value pair that links them.

Important: It is the app role Value that is matched — not the display name. A mismatched value causes provisioning to fail (see Troubleshooting).

3. Configure user provisioning (SCIM)

In the enterprise application in Entra ID, open Provisioning and configure automatic provisioning:

  • Tenant URL:
    • Production: https://<slug>.admin-se.norce.tech/sso/api/scim/v2
    • Stage: https://<slug>.admin-se.stage.norce.tech/sso/api/scim/v2
  • Secret Token: provided by Norce for your environment.
  • Set the provisioning Scope to Sync only assigned users and groups.
  • Assign the relevant users to the application, each with the app role that matches their Norce role.

Under Attribute Mappings, only a few attributes are required for Norce. You can keep Entra's default mappings — Norce ignores the attributes it does not use — but make sure the following are set:

SCIM attributeMapped fromRequired
userNamemailRequired — becomes the user's email and the matching key (set Matching precedence to 1).
rolesAssertiveAppRoleAssignmentsComplex([appRoleAssignments])Required — carries the app role. Each user must be assigned exactly one app role; zero or more than one makes provisioning fail with a 400.
activeSwitch([IsSoftDeleted], , "False", "True", "True", "False")Recommended — controls enable/disable (drives the soft delete when a user is unassigned).
name.givenName, name.familyNamegivenName, surnameOptional — combined into the user's name; falls back to the email if omitted.

All other attributes (displayName, title, preferredLanguage, addresses, phoneNumbers, externalId, the enterprise extension fields, and so on) are optional — Norce accepts them but does not use them.

Use Test Connection in Entra ID to confirm the endpoint is reachable, then start provisioning.

4. Norce activates SSO

After receiving the configuration details, Norce activates SSO for your client environment. Once activated, the Norce Admin login page redirects to your Entra ID sign-in page.

To get started, contact your Norce representative.

SCIM support and limitations

Norce exposes a SCIM 2.0 endpoint for user provisioning under /sso/api/scim/v2. The following capabilities are supported:

CapabilitySupported
User CRUD (create, read, update, delete)Yes
PATCH operations (RFC 7644 §3.5.2)Yes
Filtering (filter query parameter)Yes (max 200 results)
Pagination (startIndex)Yes
GroupsNo
Bulk operationsNo
SortingNo
ETags / conditional requestsNo
Change passwordNo
/Me (self-service)No
POST-based search (.search)No

A few behaviors are worth noting:

  • Removing a user is a soft delete. When a user is unassigned or deleted in Entra ID, the account is disabled in Norce Admin, not permanently removed.
  • Groups are not provisioned. Group-based assignment is not supported; the /Groups endpoint exists only so the Entra ID "Test Connection" check can succeed.
  • Filtering returns at most 200 results. Use pagination (startIndex) to retrieve more.

Things to know

Role management

Roles and permissions are managed in Norce Admin, not in Entra ID. SSO handles authentication (who the user is), while authorization (what the user can do) is controlled by Norce roles.

Role assignment is provisioned from Entra ID app roles, matched to Norce roles by code/value as described in Define roles. Automatic role mapping from Entra ID groups is not supported.

Partners and external users

If partners or external consultants need access to Norce Admin through SSO, invite them as guest users in your Entra ID tenant. They then authenticate through your organization's Entra ID like other users.

Sub-clients

If your setup includes sub-clients, each user must sign in through the client where their user account exists. SSO authentication is scoped to the specific configured client slug.

Troubleshooting

A user can't sign in right after being added

The user is most likely not provisioned yet. Provisioning runs on Entra ID's schedule; a user cannot sign in until they have been provisioned. Use Provision on demand in the enterprise application to apply the change immediately.

Provisioning fails with "Unknown RoleCode"

The app role Value in Entra ID does not match any role Code in Norce Admin. The endpoint returns a 400 with a detail such as Unknown RoleCode '<value>'. Correct the app role value so it matches an existing Norce role code, or create the corresponding role in Norce Admin first.

A role change in Entra ID is not reflected in Norce

Editing the role on an existing assignment does not always trigger re-provisioning. Remove the user from the application and add them again to force the change to be sent.

A user still appears active in Norce after being removed in Entra ID

This is expected: removal is a soft delete, so the account is disabled, not deleted. If Entra ID reports that the soft delete was skipped (RedundantSoftDelete), restart provisioning, or re-assign and then re-remove the user, to reset the synchronization state.