Technology
The identity provider behind the face
The Authenticator handles passwordless authentication. Underneath sits the rest of the platform: applications, a SCIM-ready directory, roles, scopes, machine credentials, and audit.
Patent-pending face tokenization
face code verifier · face-encryptedface code challenge · SHA-256 · to the serverSHA-256(face code verifier)=face code challenge Verified: no biometric stored or sent If you know PKCE, you already know face tokens
In OAuth PKCE
Prove the client finishing the flow is the one that started it: publish the hash of a secret up front, reveal the secret later.
In a face token
Prove the person: the secret is sealed under your face, and only your live face can reveal it.
Not a biometric template: nothing to link or reverse, and only the live face unlocks it. A quantum-safe face token (symmetric-and-hash cryptography only), carried over hybrid post-quantum TLS (X25519MLKEM768).
Unlinkable. Irreversible. Revocable. Renewable
ISO/IEC 24745 names the four properties protected biometric data must have. Face tokens have them by construction: properties of the mathematics, not promises in a policy.
Unlinkable
Every enrollment is fresh randomness: two tokens from one face share nothing and can't be linked. AEAD binds each token to its tenant, so it can't be reused anywhere else.
Irreversible
Knowing a token tells you nothing about the face behind it. What it holds is a sealed random verifier, and the sealing is designed so there is no way back to an image or a template.
Revocable
A face can't be canceled; a token can. Delete it and it can never verify again, so a compromise ends at revocation instead of following someone for life.
Renewable
Re-enroll from the same face at any time: a new random verifier, a new challenge, no relationship to the old token. Renewal never spends the biometric, and never reveals it.
What's inside
Everything you need to own your identity stack
Applications
OIDC + SAMLRegister OIDC clients and SAML service providers side by side. Per-app credentials, redirect URIs, branding, and token settings.
How it works, in the docsDirectory & SCIM
SCIM 2.0A managed user directory with custom attributes. Your upstream directory stays the source of truth; SCIM 2.0 pushes users and groups in.
How it works, in the docsRoles & RBAC
Define roles and permissions once, then assign them across applications and APIs for fine-grained, capability-based access.
How it works, in the docsScopes & Attributes
Shape exactly what each app receives. Map directory attributes into scopes and claims for least-privilege tokens.
How it works, in the docsAPIs & M2M
Protect resource servers with scoped tokens and issue machine-to-machine credentials for service-to-service calls.
How it works, in the docsActivity & Audit
Every sign-in, grant, and admin action on a read-only audit trail. Live activity, with CSV export.
How it works, in the docsThe console
Applications, people, and keys in one console
Register apps, manage users and roles, and revoke credentials the moment someone leaves. Isolated tenants, per-app branding, delegated admin. Every change is audited, and every sign-in is visible live.

How it works
From redirect to signed token
SenseCrypt is standard OIDC and SAML at the wire, so it drops into the login flow you already have.
Register your app
Create an OIDC client or SAML service provider, register your redirect URI, and copy the client credentials. Endpoints resolve from the OIDC discovery document.
Redirect to sign in
Send users to /authorize. They scan a QR with the SenseCrypt app and verify live; liveness and matching run on their own phone.
Receive a signed token
We return an ID token (or SAML assertion) signed with your tenant's keys. Verify it like any other provider, no SDK required.
Side by side with the login you run today
Traditional login
SenseCrypt
Built on open standards
Every card links to its primary spec, so your review can start from the source.
OpenID Connect
OIDC Core 1.0OpenID Connect is the identity layer on OAuth 2.0: ID Tokens and UserInfo, issued per tenant with its own signing keys.
OIDC Discovery
Discovery 1.0Every tenant publishes /.well-known/openid-configuration, so endpoints, scopes, and keys resolve from one URL.
OAuth 2.0
RFC 6749The delegated-authorization framework underneath every integration: authorization code, refresh, and client-credentials grants.
Authorization Code
RFC 6749 §4.1Front-channel code, back-channel exchange: the recommended interactive flow, and the only grant used for user sign-in.
PKCE
RFC 7636Proof Key for Code Exchange defeats authorization-code interception. It is required on every authorization flow, not optional.
PAR
RFC 9126Pushed Authorization Requests: OAuth parameters travel the back channel as a request_uri, never the browser.
Bearer Tokens
RFC 6750Standard Authorization: Bearer token presentation that works with any compliant API gateway or middleware.
OAuth 2.1 posture
oauth.net/2.1PKCE for all clients, exact redirect-URI matching, no implicit or password grants: OAuth 2.1's requirements, enforced today.
OAuth Security BCP
RFC 9700The IETF's current security best practice for OAuth deployments, and the hardening baseline the endpoints follow.
CIBA
OpenID CIBA CoreYour server starts sign-in with a user hint, the user approves on their phone, and your server collects the tokens. No browser, no redirect.
SAML 2.0
OASIS StandardSigned assertions, SP- and IdP-initiated SSO, and attribute mapping. Any SP connects from pasted metadata.
SCIM 2.0
RFC 7644Standard user and group provisioning: create, update, deprovision. Built to match the request shapes real Okta and Entra connectors send.
Inside the token
What the token says
Each card below is checkable. Decode one token and the evidence is in the claims your app already validates.
Signed and verifiable
Every ID and access token is an ES256 JWT signed with the tenant's own keys. Your app verifies the signature against the tenant's published JWKS, selecting the key by kid.
MFA recorded in the token
The amr claim reads face, mfa, and pop: a fresh on-device face match, multi-factor, and a device-bound key proof of possession. The token records how the user signed in.
Step-up on demand
Send the OIDC max_age parameter to require a fresh face ceremony for a sensitive action. The check runs at the token exchange, and auth_time records when the ceremony happened.
Lifecycle fails closed
Access is re-evaluated on every refresh, so a suspended or removed user fails closed before the access token expires. Reuse of a spent refresh token revokes its whole family.
Adoption
Familiar concepts, your deployment
Feels familiar from day one
If your team has integrated Auth0, Okta, or Entra ID, SenseCrypt will feel familiar: applications, scopes, RBAC, and SCIM provisioning behave the way you expect, and any standard OIDC or SAML library works unmodified. Quickstarts for Next.js, React, Express, and FastAPI cover the first integration end to end.
Read the docsHosted SaaS or self-managed
Run on our hosted platform, or deploy the same identity provider inside your own infrastructure: a standard Python service behind your TLS proxy, backed by PostgreSQL, serving OIDC, SAML, SCIM, and the admin console from a single process.
Self-hosting guideStand up your identity provider in an afternoon
Point a standard OIDC library at your tenant's discovery URL and validate the token. The quickstarts show every step.