What you get.
An identity provider, an administration console, a licensing service and a secure-sharing tool — all in the same deployment, all under the same audit trail.
Standards
OAuth 2.1 and OpenID Connect, done properly.
Authorisation code with mandatory PKCE (S256), refresh tokens that are single-use with token-family revocation, and ID tokens carrying at_hash, auth_time and enforced max_age reauthentication.
- Discovery, JWKS, UserInfo
- Revocation (RFC 7009), introspection (RFC 7662)
- RS256 signing, with pluggable KMS-backed keys
Authentication
Passkeys, verified server-side.
CBOR and COSE attestation parsed and checked in-process, ES256 and RS256 supported, platform authenticators, roaming security keys and synced passkeys all welcome.
- One-time enrolment links, hashed at rest
- Sign-counter regression rejected
- No password path exists to fall back to
Claims
Say what your applications need to hear.
Custom OIDC claims merged at four layers — organisation, project, user, and user within a project — landing in every ID token and UserInfo response without a bespoke integration.
- Typed values: numbers, booleans, JSON, strings
- Reserved claim names blocked at write and again at signing
- Provenance shows which layer supplied each value
Administration
A console that assumes people make mistakes.
Organisations, projects, privilege ladders and per-user assignments, with super-admin, operator and auditor roles — and an approval workflow standing between an operator and anything sensitive.
- Status changes, credential deletions and client settings gated
- Request, review and decision end-to-end audited
- Scope debugger, error-trace decoder, in-app reference
Licensing
Sell software and keep control of it.
Ed25519-signed licence envelopes bound to an exact hostname, issued to a person or a business, carrying feature and instance claims — with online verification, revocation and key rotation built in.
- Public-key registry published for offline checking
- Renewal reminders at 30, 14, 7, 2 and 1 days
- Exact hostnames instead of ambiguous wildcards
CryptBin
Share a secret without handing it over.
End-to-end encrypted blob storage: payloads are encrypted in the browser with AES-256-GCM, and the server only ever holds ciphertext and a wrapped key it cannot use alone.
- XChaCha20-Poly1305 key wrapping, bound to the blob ID
- Optional per-item passkey binding
- No more secrets pasted into chat threads
Federation
For the systems that cannot speak OIDC.
A SAML 2.0 identity provider for legacy applications, SCIM 2.0 provisioning from your HRIS, and outbound webhooks with exponential backoff for everything that needs to react.
- Workday, Okta and Entra ID as provisioning sources
- Event-driven integration without polling
- One user record behind all of it
Operations
Runs quietly, tells you everything.
Prometheus-compatible metrics, optional outbound push of every audit event, server-backed sessions, scheduled maintenance jobs and documented backup and recovery.
- Tamper-evident chain checkpoints
- Signed CSV audit exports
- Vulnerability-scan provenance shown to admins, findings withheld
Automation
Configure it the way you configure everything else.
A JSON admin API with bearer-token authentication, a Terraform provider, and CI/CD patterns for keeping identity configuration in the same repository as the applications that depend on it.
- Declarative upsert and delete
- Per-project feature flags
- Branding and custom domains per organisation
Self-service
A portal, so support does not become the bottleneck.
End users manage their own passkeys — add a second device, retire a lost one, see what is enrolled — without an administrator touching a credential or an approval queue filling up with routine work.
- Enrolment by one-time link
- Authentication sandbox for developers testing a flow
- Worked integrations for Node, Python, PHP, Go and SPAs
Standards posture, without the hand-waving
Blackwall documents what it implements today, what the known gaps are, and how to run the OIDC conformance suite against your own deployment. We would rather tell you where the edges are than let you discover them during an integration.