LAPSlock

How it works

Updated 3 September 2026

The short version

LAPSlock retrieves Windows LAPS local administrator passwords and BitLocker recovery keys from Microsoft Entra ID and Microsoft Intune, on the phone in your pocket. It signs you in with your own Microsoft account and acts as you — if you cannot read a password in the Microsoft admin center, LAPSlock cannot read it either.

There is no Kainor server in that path. Your device data and credentials travel between your iPhone and Microsoft, and nowhere else. Everything below explains exactly which permissions are requested, when, and why — and how to verify all of it yourself rather than take our word.

What you need

Using it

  1. Sign in with Microsoft

    The normal sign-in for your organization, including Conditional Access, MFA and anything else your tenant enforces. LAPSlock has no account system and no password of its own. The first sign-in requests read-only permissions and nothing more; anything heavier is asked for later, only if you use the feature that needs it.

  2. Find the device

    Search by device name, the person who uses it, serial number or model. Searching matches on the primary user's name and email address as well as the hostname, because a ticket usually names a person rather than a machine. Pin the devices you return to often, and the last few you opened appear on their own.

  3. Reveal the password

    Face ID or Touch ID runs before the request goes to Microsoft, so an abandoned reveal creates no audit event in your tenant. The password appears for sixty seconds and is then wiped from memory. It never appears in the app switcher, a screenshot revokes it immediately, and copying it puts a self-expiring entry on the clipboard that is kept off Universal Clipboard.

  4. BitLocker recovery keys, and older passwords

    Recovery keys for a device are listed by volume with the first characters of each key identifier, so you can match the key the locked machine is asking for rather than guessing. Where your tenant has kept previous LAPS passwords, those are available too — which matters when a device stopped checking in and is still using an older one.

  5. Activate a role, if you need one

    If your access is PIM-eligible rather than active, LAPSlock can request activation without you leaving the bench. It reads your organization's own PIM policy first, so it offers only the durations your policy permits and tells you up front if a ticket number or additional verification is required.

  6. Work across organizations

    Managed service providers can switch between customer tenants inside the app. Each switch is an explicit choice, the organization you are operating in is shown on screen at all times, and each customer's pinned devices stay with that customer.

Permissions, and when each one is requested

LAPSlock uses delegated permissions only. It never holds application permissions, so it has no standing access to your tenant and no ability to act while nobody is signed in. Permissions are requested in stages, so a first consent screen reads "reads device inventory" rather than "reads every password in your tenant".

PermissionRequestedWhy
DeviceManagementManagedDevices.Read.All At sign-in The device list itself.
Device.Read.All At sign-in Entra device objects, which is how a machine in Intune is matched to its LAPS record.
DeviceLocalCredential.ReadBasic.All At sign-in Rotation and backup dates. Deliberately the variant that cannot return a password.
BitLockerKey.ReadBasic.All At sign-in Which recovery keys exist, without their values.
DeviceLocalCredential.Read.All First password reveal The password value. Never requested at sign-in.
BitLockerKey.Read.All First key reveal The recovery key value. Never requested at sign-in.
DeviceManagementManagedDevices.ReadWrite.All Only if you enable BitLocker key rotation The one write permission. Off by default — leave it off and LAPSlock only ever asks for read access.
User.ReadBasic.All Only if you enable user names Shows a person's name where Intune stored only a sign-in address. Off by default.
PIM role and group scopes Only if you enable role activation Reading what you are eligible for and requesting activation. Off by default.
Every credential read appears in your own audit log. Because LAPSlock acts as the signed-in administrator, a reveal shows up in Entra exactly as it would if the same person had used the Microsoft admin center. Your existing monitoring keeps working, unchanged.

What stays on your device

Passwords and recovery keys are held in memory only, for the length of the reveal window, and are overwritten when it ends. They are never written to disk, never included in an iPhone or iCloud backup, and never sent anywhere except between your device and Microsoft.

What LAPSlock does keep locally: your preferences, the device list for the current session, the identifiers of devices you pinned, and a count of how many free reveals you have used. That count lives on your device and on no server — a server-side counter would mean recording how often each organization retrieves passwords, which is exactly the thing this app is built not to do.

Optionally, you can lock the whole app behind Face ID. That protects the device list itself, which is worth something to an attacker even with no password on screen.

Verify it rather than trust it

Three claims above are the ones that matter, and all three are checkable without taking our word for anything:

What LAPSlock cannot do

Stated plainly, because finding out later is worse:

Free use and subscriptions

LAPSlock is free to download and free to use, with a limit on how many credentials you can reveal in a rolling thirty-day period. Everything else — searching, BitLocker keys, password history, copying, PIM activation, app lock — works on the free tier without restriction.

Subscriptions that remove the reveal limit are available inside the app, on the Settings screen. Organizations that would rather license the whole tenant can email us.

Getting help

Email connor@kainor.com. If something failed, Settings includes a diagnostics report you can send with it — it carries Microsoft error codes and request identifiers and is structurally incapable of containing a password, a recovery key, a device name or a user name. You can read the whole thing before you send it.