There are two halves to an Entra integration, and most enterprise customers run both on the same enterprise application: SAML SSO controls how your team signs in, and SCIM provisioning controls who has a store account in the first place — accounts are created when employees join and deactivated when they leave, with no manual user admin. Set up SSO first, then add SCIM.

Single sign-on (SAML)

Quick reference

The values you'll paste into Microsoft Entra. All four URLs are scoped to your store and never change.

Reply URL (ACS)
https://store.jaapi.store/api/auth/signin/sso
Identifier (Entity ID)
https://store.jaapi.store
Sign on URL
https://store.jaapi.store/auth/signin
SP metadata URL
https://store.jaapi.store/api/auth/signin/sso/metadata
NameID format
Email
NameID source
user.mail

How users sign in

Once the integration is live, signing in from Microsoft My Apps works right away. Sign-in started from the swag store itself is switched on per store — it uses the same Entra configuration, we just need your Login URL (see the final step below).

From Microsoft My Apps

Users open myapps.microsoft.com and click the tile for your swag store. Entra posts a signed assertion to store.jaapi.store and they land logged in.

IdP-initiated. No extra configuration needed.

From the swag store

Users go to store.jaapi.store/auth/signin and click Sign in with SSO. We redirect them to Entra to authenticate, then back to the store.

SP-initiated. Requires you to share your Entra Login URL with Jaapi (see the final step below).

Create the enterprise application

You'll need the Cloud Application Administrator or Application Administrator role. The whole setup takes about ten minutes.

  1. Open the Microsoft Entra admin center at entra.microsoft.com.
  2. Go to Entra ID → Enterprise apps → All applications and click + New application.
  3. Click + Create your own application, then choose Integrate any other application you don't find in the gallery (Non-gallery).
  4. Name it "Jaapi Swag Store" and create.
  5. From the app's left sidebar, open Single sign-on and select the SAML tile.

SAML settings

On the SAML configuration page, edit each numbered section with the values below. Values must match exactly for authentication to work.

Section 1 — Basic SAML Configuration

Identifier (Entity ID)
https://store.jaapi.store
Reply URL (ACS URL)
https://store.jaapi.store/api/auth/signin/sso
Sign on URL
https://store.jaapi.store/auth/signin — used when users click your tile in Microsoft My Apps

Section 2 — Attributes & Claims

Click Unique User Identifier (Name ID) and configure:

Source attribute
user.mail
Name identifier format
Email

Optional user attributes

The SAML NameID (email) is the only required attribute. You can optionally send these from Section 2's Additional claims to populate the user's profile on first login.

name

Display name. Source attribute: user.displayname. Use the short claim name name (clear the default namespace).

avatar

Profile picture URL. Source attribute: a custom extension attribute that holds a publicly fetchable image URL. Skip this claim if you don't have one.

Complete the integration

After finishing the SAML configuration, send Jaapi the information below so we can pin your IdP certificate and enable the SSO tile on your storefront.

  1. Assign your test user to the application (Users and groups → Add user/group).
  2. In Section 3 — SAML Signing Certificate, download Certificate (Base64). Azure AD signs with SHA-256 by default and the cert is valid for 3 years.
  3. Sign in to myapps.microsoft.com as the test user and click your application's tile. The first attempt will fail — this is expected.
  4. Email support@jaapi.store with:
    • Store domain: store.jaapi.store
    • The downloaded Certificate (Base64) file
    • (For storefront sign-in) Your Login URL from Section 4 — Set up [app name] — required to enable the SSO button on the storefront

Why the first login fails

We don't trust any IdP certificate by default. Your first sign-in attempt is rejected on purpose; the certificate from that attempt is captured for review. Once we verify it matches the file you sent over, we pin it and your team can sign in normally. This prevents anyone from impersonating your IdP during onboarding.

Later certificate renewals are self-service: when Entra rotates your signing certificate, a store admin can paste the new one under SAML SSO in the store settings — no need to email us again.

SCIM provisioning (optional)

Quick reference

The values you'll paste into Entra's provisioning settings.

Tenant URL
https://store.jaapi.store/api/scim/v2
Secret Token
Generate under API Tokens in your store settings
Provisioning Mode
Automatic

Before you start

SSO decides how people sign in; SCIM decides who has an account in the first place. With provisioning enabled on the same enterprise application, Entra creates a store account when an employee is assigned the app, keeps their name and email in sync, and deactivates them when they're offboarded — so your store mirrors who's active in Entra, with no manual invites.

For the full list of supported endpoints, attributes and behaviours, see the SCIM 2.0 reference.

Entra ID P1 required

Automatic provisioning to a non-gallery (custom) application requires Microsoft Entra ID P1 or higher. If the Provisioning blade only offers manual provisioning, check your licence tier.

Generate a SCIM token

  1. In your swag store, open Settings → API Tokens and create a token. Name it something like "Entra SCIM".
  2. The token is shown once. Copy it straight into Entra's Secret Token field in the next step.

Enable provisioning on your enterprise app

  1. Open the enterprise application you created above and select Provisioning from the left sidebar, then start a new configuration.
  2. Set Provisioning Mode to Automatic.
  3. Under Admin Credentials, enter the values below, click Test Connection, and save once it passes.
Tenant URL
https://store.jaapi.store/api/scim/v2
Secret Token
The token you generated in the previous step

Check the attribute mappings

Under Mappings → Provision Microsoft Entra ID Users, the defaults are close, with one thing to verify: userName must carry the user's email address, because it has to match the email your SAML sign-in sends (user.mail). Entra's default maps userPrincipalNameuserName, which is fine only if UPNs equal email addresses in your tenant — otherwise change the source attribute to mail.

Beyond that, givenName, surname, displayName, emails and the active flag are all we consume — extra default mappings are ignored harmlessly. Leave Provision Microsoft Entra ID Groups disabled: Jaapi is the downstream system and uses a flat role model, so it doesn't consume groups.

Assign users and turn it on

  1. Under Settings → Scope, keep Sync only assigned users and groups (the default) — it makes the app assignment the single switch that controls both sign-in and provisioning.
  2. Assign the app to the group your new hires already land in (Users and groups → Add user/group).
  3. Set Provisioning Status to On and save. Nothing is provisioned until this toggle is on.

Good to know

  • Syncs run on a cycle, not instantly. Entra provisions on a roughly 40-minute interval, so a new assignment won't appear in the store immediately. To test a single user right away, use Provision on demand.
  • Offboarding is a soft deactivation. Entra sends active: false rather than deleting — departed employees lose store access immediately, while their order history is retained.
  • Credit stays in Jaapi. SCIM manages identity only; store credit, addresses and roles are managed in Jaapi and never travel over SCIM.