Partner Guide Microsoft Entra ID

Deploying Locke with Microsoft Entra ID

Complete guide for MSP partners deploying Locke to client organizations using Microsoft Entra ID (Azure AD) for SAML SSO, SCIM user provisioning, and Intune browser extension deployment.

This deployment gives client employees a seamless experience:

login

SAML SSO

Users authenticate with their existing Microsoft credentials

fingerprint

Passkey Registration

On first login, users register a passkey (biometric) to unlock their vault

sync

SCIM Provisioning

Users are automatically created/removed when managed in Entra

extension

Browser Extension

Silently installed via Intune, no user action needed

End result: Users click "Locke" in their Microsoft My Apps portal, authenticate with Windows Hello or Touch ID, and their vault is unlocked. No separate password, no manual setup.

Prerequisites

1

Create the Client Org in Armory

  1. Log into Armory as the partner admin
  2. Go to ClientsProvision Client
  3. Enter client name, admin email, initial members
  4. The org will be created with your partner billing attached

Note the Org ID (lowercase, hyphenated) — you will need it for SAML URLs.

2

Configure SAML SSO

2.1

Create Enterprise Application in Entra

  1. Go to Microsoft Entra Admin CenterEnterprise ApplicationsNew Application
  2. Click Create your own application
  3. Name it "Locke ID" (or "Locke - {Client Name}")
  4. Select "Integrate any other application you don't find in the gallery (Non-gallery)"
  5. Click Create
2.2

Set Up Single Sign-On

  1. In the Enterprise App, go to Single sign-onSAML
  2. Configure Basic SAML Configuration:
Field Value
Identifier (Entity ID) https://api.locke.id/saml/metadata/{org-id}
Reply URL (ACS URL) https://api.locke.id/saml/acs/{org-id}
Sign on URL https://api.locke.id/saml/login/{org-id}
Relay State (leave blank)
Logout URL (leave blank)

Replace {org-id} with the client's Locke org ID (e.g., arndt-heating-cooling).

2.3

Attributes & Claims

Use Entra's default claims. No changes needed in Entra. The default claims are:

Claim Value URI
Email user.mail http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
First Name user.givenname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
Last Name user.surname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
Name ID user.userprincipalname (NameID in Subject)
2.4

Download Certificate

  1. In the SAML Signing Certificate section, download Certificate (Base64)
  2. Open the downloaded file — you will need the full PEM content including -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- headers
2.5

Copy IdP URLs

From the Set up Locke ID section, copy:

Field Example
Login URL https://login.microsoftonline.com/{tenant-id}/saml2
Azure AD Identifier https://sts.windows.net/{tenant-id}/
2.6

Configure Locke (Armory)

  1. In Armory, navigate to the client org → SettingsSAML SSO
  2. Enable SAML SSO
  3. Fill in the following fields:
Armory Field Value
IdP Entity ID The "Azure AD Identifier" from step 2.5
IdP SSO URL The "Login URL" from step 2.5
IdP Certificate Full PEM content from step 2.4
Email attribute http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
First Name attribute http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
Last Name attribute http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
  1. Click Save
  2. Click Test to verify configuration
2.7

Assign Users in Entra

  1. In the Enterprise App, go to Users and groupsAdd user/group
  2. Assign the users or group that should have access to Locke
  3. Only assigned users will be able to SSO into Locke
3

Configure SCIM Provisioning

SCIM automatically creates and removes Locke accounts when users are assigned/unassigned in Entra.

3.1

Generate SCIM Token in Armory

  1. In Armory, navigate to client org → SettingsSCIM
  2. Click Generate Token
  3. Copy the token immediately (it will not be shown again)
3.2

Configure Provisioning in Entra

  1. In the Enterprise App, go to ProvisioningGet Started
  2. Set Provisioning Mode to Automatic
  3. Under Admin Credentials:
Field Value
Tenant URL https://api.locke.id/scim/v2
Secret Token The SCIM token from step 3.1
  1. Click Test Connection — should show success
  2. Click Save
3.3

Configure Attribute Mappings

Under ProvisioningMappingsProvision Azure Active Directory Users:

Ensure these mappings exist (most are default):

Azure AD Attribute Locke SCIM Attribute
userPrincipalName userName
mail emails[type eq "work"].value
givenName name.givenName
surname name.familyName
Switch([IsSoftDeleted],...) active
3.4

Start Provisioning

  1. Set Provisioning Status to On
  2. Click Save
  3. Initial sync runs within 40 minutes
  4. For immediate provisioning, use Provision on demand for specific users
3.5

Verify

After provisioning runs:

  • check Users appear in the client org's member list in Armory
  • check Users are in pending_first_login state until they complete SSO + passkey setup
  • check Removing/disabling a user in Entra automatically removes them from Locke (and billing)
4

Deploy Browser Extension via Intune

4.1

Chrome Extension

  1. Go to Microsoft Intune Admin CenterDevicesConfiguration profiles
  2. Click Create profile
  3. Platform: Windows 10 and later
  4. Profile type: Settings catalog
  5. Name: "Locke Browser Extension - Chrome"
  6. Add setting: search "Google Chrome > Extensions"
  7. Select "Configure the list of force-installed apps and extensions"
  8. Add the extension string:
mgeaadkickfdeiihpliecmjaghpbhcdg;https://clients2.google.com/service/update2/crx
  1. Assign to the same user group that has Locke access in Entra
4.2

Edge Extension

  1. Create another profile (or add to the same one)
  2. Add setting: search "Microsoft Edge > Extensions"
  3. Select "Control which extensions are installed silently"
  4. Add the extension string:
pgefgknpoplkhemhnapoegaimfibaogp;https://edge.microsoft.com/extensionwebstorebase/v1/crx
  1. Assign to the same user group
4.3

Verify

  • check Extension installs silently on next Intune sync (up to 8 hours, or trigger manual sync)
  • check Users see the Locke icon in their browser toolbar
  • check Extension activates after first SSO login
5

User Onboarding

Share the Login Link

Send users this link to get started:

https://api.locke.id/saml/login/{org-id}

Or configure the Sign-on URL in the Entra Enterprise App so Locke appears as a tile in the user's My Apps portal.

First Login Experience

  1. 1 User clicks login link (or My Apps tile)
  2. 2 Redirected to Microsoft sign-in (may be automatic if already signed in)
  3. 3 Redirected back to Locke with "Set up your passkey" screen
  4. 4 User taps fingerprint / Face ID / Windows Hello to register passkey
  5. 5 Vault is created and unlocked — done

Returning User Experience

  1. 1 User clicks login link
  2. 2 Microsoft authentication (often automatic)
  3. 3 Single biometric tap unlocks vault

Total time: ~3 seconds

Troubleshooting

"subscription required for SAML SSO" (402)

The client org's payment_type must be "partner" or "manual", or it must have an active Stripe subscription. Verify in the org document.

"no matching org member for email" (401)

The email in the SAML assertion does not match any member in the org. Causes:

  • Entra user does not have a mailbox/email attribute set (common with test accounts)
  • Email in Entra does not match what was provisioned via SCIM
  • User was not assigned to the Enterprise App in Entra

Fix: Ensure the Entra user's mail attribute matches what SCIM provisioned.

Attribute mapping shows blank names

The attribute mapping URIs must be the full paths:

  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname (not just .../claims)
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname (not just .../claims)

Test Connection fails for SCIM

  • Verify the Tenant URL is exactly https://api.locke.id/scim/v2 (no trailing slash, no org ID)
  • Verify the SCIM token was copied correctly (starts with locke_scim_)
  • Token authenticates the org — no org ID needed in the URL

Extension not installing

  • Verify the Intune profile is assigned to a user group (not device group)
  • Check Intune sync status on the device
  • Force sync: Settings → Accounts → Access work or school → Click connected account → Info → Sync
  • Chrome/Edge must be restarted after policy applies

Passkey registration fails

  • User's device must support WebAuthn (Windows Hello, Touch ID, or a security key)
  • Browser must support PRF extension (Chrome 109+, Edge 109+)
  • If user has no biometric hardware: they need an external security key (YubiKey)

On-Prem AD Alternative (GPO)

For organizations with on-premises Active Directory and domain-joined machines (instead of Intune):

# Run on Domain Controller .\Install-LockeExtensionGPO.ps1 -Group "LockeUsers"

This creates a GPO that force-installs the Chrome extension for members of the specified AD group.

For Edge via GPO, add the same registry value under:

HKCU\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallForcelist

Billing

Quick Reference

Item Value
SAML Entity ID https://api.locke.id/saml/metadata/{org-id}
SAML ACS URL https://api.locke.id/saml/acs/{org-id}
SAML Login URL https://api.locke.id/saml/login/{org-id}
SCIM Endpoint https://api.locke.id/scim/v2
Chrome Extension ID mgeaadkickfdeiihpliecmjaghpbhcdg
Chrome Force-Install mgeaadkickfdeiihpliecmjaghpbhcdg;https://clients2.google.com/service/update2/crx
Edge Extension ID pgefgknpoplkhemhnapoegaimfibaogp
Edge Force-Install pgefgknpoplkhemhnapoegaimfibaogp;https://edge.microsoft.com/extensionwebstorebase/v1/crx
My Apps Portal https://myapps.microsoft.com

Need help with deployment?

Our partner team can walk you through the setup or troubleshoot issues.

Contact Partner Support arrow_forward