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:
SAML SSO
Users authenticate with their existing Microsoft credentials
Passkey Registration
On first login, users register a passkey (biometric) to unlock their vault
SCIM Provisioning
Users are automatically created/removed when managed in Entra
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
- Microsoft Entra ID (any tier — P1/P2 for SCIM provisioning)
- Locke partner account with client org created in Armory
-
Client org set to
payment_type: "partner"(partner-billed) - Intune license for extension deployment (or on-prem AD with GPO)
Create the Client Org in Armory
- Log into Armory as the partner admin
- Go to Clients → Provision Client
- Enter client name, admin email, initial members
- The org will be created with your partner billing attached
Note the Org ID (lowercase, hyphenated) — you will need it for SAML URLs.
Configure SAML SSO
Create Enterprise Application in Entra
- Go to Microsoft Entra Admin Center → Enterprise Applications → New Application
- Click Create your own application
- Name it "Locke ID" (or "Locke - {Client Name}")
- Select "Integrate any other application you don't find in the gallery (Non-gallery)"
- Click Create
Set Up Single Sign-On
- In the Enterprise App, go to Single sign-on → SAML
- 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).
Attributes & Claims
Use Entra's default claims. No changes needed in Entra. The default claims are:
| Claim | Value | URI |
|---|---|---|
| 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) |
Download Certificate
- In the SAML Signing Certificate section, download Certificate (Base64)
- Open the downloaded file — you will need the full PEM content including
-----BEGIN CERTIFICATE-----and-----END CERTIFICATE-----headers
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}/ |
Configure Locke (Armory)
- In Armory, navigate to the client org → Settings → SAML SSO
- Enable SAML SSO
- 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 |
- Click Save
- Click Test to verify configuration
Assign Users in Entra
- In the Enterprise App, go to Users and groups → Add user/group
- Assign the users or group that should have access to Locke
- Only assigned users will be able to SSO into Locke
Configure SCIM Provisioning
SCIM automatically creates and removes Locke accounts when users are assigned/unassigned in Entra.
Generate SCIM Token in Armory
- In Armory, navigate to client org → Settings → SCIM
- Click Generate Token
- Copy the token immediately (it will not be shown again)
Configure Provisioning in Entra
- In the Enterprise App, go to Provisioning → Get Started
- Set Provisioning Mode to Automatic
- Under Admin Credentials:
| Field | Value |
|---|---|
| Tenant URL | https://api.locke.id/scim/v2 |
| Secret Token | The SCIM token from step 3.1 |
- Click Test Connection — should show success
- Click Save
Configure Attribute Mappings
Under Provisioning → Mappings → Provision Azure Active Directory Users:
Ensure these mappings exist (most are default):
| Azure AD Attribute | Locke SCIM Attribute |
|---|---|
| userPrincipalName | userName |
emails[type eq "work"].value |
|
| givenName | name.givenName |
| surname | name.familyName |
| Switch([IsSoftDeleted],...) | active |
Start Provisioning
- Set Provisioning Status to On
- Click Save
- Initial sync runs within 40 minutes
- For immediate provisioning, use Provision on demand for specific users
Verify
After provisioning runs:
- Users appear in the client org's member list in Armory
-
Users are in
pending_first_loginstate until they complete SSO + passkey setup - Removing/disabling a user in Entra automatically removes them from Locke (and billing)
Deploy Browser Extension via Intune
Chrome Extension
- Go to Microsoft Intune Admin Center → Devices → Configuration profiles
- Click Create profile
- Platform: Windows 10 and later
- Profile type: Settings catalog
- Name: "Locke Browser Extension - Chrome"
- Add setting: search "Google Chrome > Extensions"
- Select "Configure the list of force-installed apps and extensions"
- Add the extension string:
- Assign to the same user group that has Locke access in Entra
Edge Extension
- Create another profile (or add to the same one)
- Add setting: search "Microsoft Edge > Extensions"
- Select "Control which extensions are installed silently"
- Add the extension string:
- Assign to the same user group
Verify
- Extension installs silently on next Intune sync (up to 8 hours, or trigger manual sync)
- Users see the Locke icon in their browser toolbar
- Extension activates after first SSO login
User Onboarding
Share the Login Link
Send users this link to get started:
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 User clicks login link (or My Apps tile)
- 2 Redirected to Microsoft sign-in (may be automatic if already signed in)
- 3 Redirected back to Locke with "Set up your passkey" screen
- 4 User taps fingerprint / Face ID / Windows Hello to register passkey
- 5 Vault is created and unlocked — done
Returning User Experience
- 1 User clicks login link
- 2 Microsoft authentication (often automatic)
- 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):
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:
Billing
- Partner-billed orgs: seat count = number of members in the org
- SCIM provisioning adds seats; SCIM deprovisioning removes seats
- Disabling/deleting a user in Entra triggers SCIM deprovision → seat freed
- No manual Locke-side action needed for billing adjustments
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