Passwordless sign-in and AI agent security

Sign-in without passwords. Guardrails for AI agents.

LumoAuth is the login and access-control service for your product. People sign in with a passkey, a magic link or their company account. AI agents get their own identity, a fixed list of what they may do, and a human who can say no. One platform, open standards, hosted or on your own servers.

Free for 10,000 monthly users No credit card Works with any OpenID Connect library
For your users

Sign in the way phones unlock.

A hosted sign-in page with every passwordless method, switched on from the portal. Users pick what suits them; your application code does not change.

Passkeys

Face ID, Touch ID, Windows Hello or a security key. A passkey only works on the real site, so phishing pages get nothing.

Magic links

A one-time link by email, valid for 15 minutes. Nothing to remember.

Push approval

A request appears on the user's phone. They approve with a fingerprint. The approval is signed by a key that never leaves the device.

Social and company accounts

Google, Microsoft, Apple, GitHub and more, or the customer's own Okta or Entra through single sign-on.

Step up only when needed

A second factor is asked for when something looks off: a new device, a new country, impossible travel. Not on every login.

Your brand, your domain

The page carries your logo and colours on auth.yourcompany.com. Paste your website URL and the AI drafts a matching theme.

auth.northwind-labs.com
The hosted sign-in page offering a passkey, a magic link and social providers
The hosted sign-in page as users see it. Methods, order and branding are settings, not code.
auth.northwind-labs.com
The secure-your-account step where a user adds a passkey or an authenticator app
After the first sign-in, users are offered a passkey or an authenticator app.
For your AI agents

An agent should have to ask.

An AI agent that acts on its own needs what an employee has: a name, credentials, a job description and a manager. LumoAuth gives every agent an identity, limits what it can do, and puts a person in the loop for anything sensitive.

1
The agent asks invoice-reconciliation
It needs to export a ledger slice. That is not on its list, so it requests it with a reason.
POST /api/v1/jit/requests { "task": "task_c70e1b5", "permissions": ["invoices.export"], "reason": "Nightly reconciliation found 14 unmatched payments" }
2
A person decides medium risk
The request shows up in the inbox, on the approver's phone, or in Slack. The reason is sanitised so a prompt-injected message cannot trick them.
ApproveDeny
3
A token for this task only expires in 300 s
The agent continues with exactly the permission granted, for this task, and the decision is in the audit log with the approver's name.
{ "scope": "invoices.export", "task": "task_c70e1b5", "approved_by": "maya.chen", "exp": 1760000300 }
9:41
LumoAuth · now
Invoice Reconciliation Agent wants invoices.export
"Nightly reconciliation found 14 unmatched payments." Medium risk · task c70e1b5
ApproveDeny

The LumoAuth app signs approvals with a key bound to the phone. Slack, Teams, ServiceNow and Jira work too.

An identity per agent

Every agent is registered with a name, an owner, its own credentials and a fixed list of what it may do. No more shared API keys.

It asks before it acts

For anything outside its list, the agent sends a request with a reason. A person approves from the portal, the phone, Slack, Teams, ServiceNow or Jira.

A token for one task

What comes back works for that task only and expires within minutes. Budgets cap steps, time and spend, enforced by the server.

Tools behind real access control

Register your MCP servers. Agents discover them the standard way and get a token per tool, which you can revoke.

A record of everything

Every token, call, request and decision lands on the agent's timeline, with a trace ID that opens in Langfuse, LangSmith or your collector.

A kill switch

Suspend an agent and its tokens stop working at once. Connected MCP servers are told through a security event.

app.lumoauth.dev
The agent registry with identity type, capabilities, budget, status and posture for each agent
The agent registry: identity, what each agent may do, its budget and whether it needs attention.
app.lumoauth.dev
The approvals inbox with pending permission requests, risk level and the reason given
The approvals inbox: every request with its reason, risk level and who can act.
Use cases

Pick the problem you have today.

Each one is a guide with screenshots, a step-by-step setup, the standards involved and the plan it needs.

Passwordless sign-in

Let people sign in with a fingerprint, a face, a link in their inbox or a tap on their phone. No password to forget, leak or phish.

Passkeys

Users sign in with Face ID, Touch ID, Windows Hello or a security key. The browser proves the user is on the real site, so phishing pages get nothing. Users can register several passkeys and manage them in their account.

Magic links and one-time codes

Send a single-use link that expires in 15 minutes, or a six-digit code by email or text message. Codes expire after five minutes and allow five attempts.

Push approval from the LumoAuth app

A sign-in request appears on the user's phone with the location and device. They approve it with their fingerprint. The approval is signed with a key that never leaves the phone.

Email-first login flow

The page asks for the email address first, then shows only the methods that user has. Someone with a passkey never sees a password box.

The hosted sign-in page offering a passkey, a magic link and social providers
Integrations

Connects to what you already run.

183 identity providers, HR systems, SIEMs, key stores, cloud platforms and agent frameworks. Every one is configured in the portal, with secrets encrypted at rest.

quickstart
$ npm install @lumoauth/nextjs

// app/api/auth/[...lumo]/route.ts
import { handlers } from '@lumoauth/nextjs/server';
export const { GET, POST } = handlers();

// app/page.tsx
import { SignIn, UserButton } from '@lumoauth/nextjs';

// .env
LUMOAUTH_URL=https://app.lumoauth.dev
LUMOAUTH_ORG_ID=northwind-labs
LUMOAUTH_CLIENT_ID=…

# Passkeys, magic links and SSO are portal settings.
For developers

An afternoon, not a quarter.

Install a package, set three environment variables, and sign-in works. Agents, MCP servers and access checks are a few lines more.

SDKs for six languages

JavaScript and TypeScript, Python, Go, PHP, Java and .NET, with packages for Next.js, React, Express, FastAPI, Spring Boot, ASP.NET Core, Symfony and Laravel. Docs

Any OpenID Connect library works

Every organization publishes a standard discovery document. If your framework already has an OIDC plugin, you are done. Docs

Test tokens and a JWT inspector

Mint a signed token for any user or agent from the portal, decode any token, and try calls in the API explorer. Docs

A CLI with sandboxes and tunnels

lumo dev start gives you a throwaway organization; lumo tunnel brings webhooks to your laptop. Docs

Admin API, Terraform and Kubernetes

Everything the portal does is an endpoint. Keep configuration in code. Docs

Docs written for humans

Plain names in the guides, a standards reference for the RFCs, and tracks for frontend, backend, agents, B2B, admin and compliance. Docs

Pricing

Free to build. Flat to run. Published overage.

Passkeys, MFA, attack protection and agent identity are on every plan, including the free one. When you grow past a limit, the price per extra unit is printed here, not negotiated later.

Developer
$0forever

Build and evaluate — the whole platform, sized for development.

Monthly active users10,000
Active agents / month10
Organizations10
Enterprise connections1
Audit log retention3 days
Start free
Pro
$49per month

Ship to production — custom domain, branding, full webhooks.

Monthly active users25,000 + $0.02 ovg
Active agents / month100 + $0.05 ovg
Organizations100 + $1 ovg
Enterprise connections1 + $75 ovg
Audit log retention30 days
See what is included

Add-ons such as Agent Governance, Fraud Shield and Fine-grained authorization are priced per month on the pricing page. Full pricing

From the blog

Notes on identity and agents.

All posts

Ship passwordless sign-in this week. Put guardrails on your agents today.

The Developer plan is free for 10,000 monthly users and ten agents, with no card. Everything speaks open standards, so moving in or out is a config change.