Now with WebAuthn Passkey support →

The Identity Platform
Built for Developers

Multi-tenant OAuth2 / OIDC server with MFA, SAML federation, passkeys, and full SCIM provisioning. Self-host or deploy to cloud โ€” you own the data.

Quick Start โ€” docker-compose.yml
# Start your CIAM stack in one command
docker compose up -d

# OIDC Discovery
https://dev.auth.platform.com/.well-known/openid-configuration

# Token & Authorization endpoints
https://dev.auth.platform.com/oauth2/token
https://dev.auth.platform.com/oauth2/authorize

# Per-tenant JWKS (auto-rotated RSA-2048)
https://{tenant}.auth.platform.com/oauth2/jwks

# Admin REST API
https://dev.auth.platform.com/admin/tenants
OAuth2 / OIDC compliant
Multi-tenant isolation
Per-tenant RSA key pairs
SAML 2.0 & Federation
Spring Boot 3 / Java 21
๐Ÿ”
Zero-Trust MFA
TOTP ยท SMS ยท Email ยท Passkey
๐Ÿข
Multi-Tenant
Tenant per subdomain or header
๐Ÿ”‘
Per-Tenant Keys
Isolated RSA-2048 signing pairs
โšก
Virtual Threads
Java 21 โ€” massive concurrency

Integrates with your existing stack

โ˜• Spring Boot
๐Ÿ˜ PostgreSQL
๐Ÿ“ฆ Docker
โš™๏ธ Kubernetes
๐Ÿ”ด Redis / Valkey
๐Ÿ“จ Kafka
๐ŸŒ React
๐Ÿ” OpenSearch
โ˜๏ธ AWS / GCP / Azure
โ˜• Spring Boot
๐Ÿ˜ PostgreSQL
๐Ÿ“ฆ Docker
โš™๏ธ Kubernetes
๐Ÿ”ด Redis / Valkey
๐Ÿ“จ Kafka
๐ŸŒ React
๐Ÿ” OpenSearch
โ˜๏ธ AWS / GCP / Azure
Core Features

Everything your app needs to authenticate users

From a simple login page to enterprise federation โ€” CIAM Platform has it covered out of the box.

๐Ÿ”

OAuth2 / OIDC

Full Spring Authorization Server. Authorization Code + PKCE, Client Credentials, Device Flow, Refresh Tokens, Introspection.

๐Ÿข

Multi-Tenancy

Subdomain or X-Tenant-ID header routing. Full data isolation with PostgreSQL Row-Level Security.

๐Ÿ“ฑ

Multi-Factor Auth

TOTP (RFC 6238), Email OTP, SMS OTP, and WebAuthn Passkeys. Per-tenant MFA policy enforcement.

๐Ÿ”—

SAML 2.0

Act as SAML IdP or SP. Integrate with Okta, Azure AD, and enterprise IdPs via metadata import.

๐Ÿ”‘

Per-Tenant Signing Keys

Auto-generated RSA-2048 key pairs per tenant. Redis-cached with lazy rotation. Unique JWK Set per tenant.

๐Ÿ›ก๏ธ

Rate Limiting & Risk

Valkey-backed brute-force protection (5 attempts / 15-min window, 30-min lockout) plus risk evaluation.

๐Ÿ—๏ธ

Organizations & SCIM

Hierarchical organizations, memberships, and SCIM 2.0 user provisioning for enterprise directory sync.

๐Ÿ“ฌ

Notification Providers

Pluggable email and SMS providers. Send MFA codes, invitations, and password-reset links.

๐ŸŽ›๏ธ

Admin UI & REST API

Full-featured React admin dashboard. Every operation available via REST API for programmatic management.

View all features โ†’
How It Works

Secure by design, from request to token

1

Tenant Resolution

Every request passes through TenantContextFilter. Tenant is resolved from subdomain, header, or default slug โ€” giving each customer a fully isolated identity store.

2

Authentication

Credentials verified by CiamUserDetailsService using Argon2id. Rate-limiting checked atomically via Redis.

3

MFA Challenge

If tenant policy requires MFA, session is stashed and user completes a TOTP, passkey, SMS, or email challenge before the OAuth2 flow resumes.

4

Token Issuance

JWTs signed with the tenant's RSA key pair. Tokens carry tenant_id, org_id, roles, and permissions โ€” ready to consume in any microservice.

โˆž
Tenants supported
4+
MFA methods built-in
<1ms
JWKS key cache lookup
Java 21
Virtual-thread concurrency
Trusted by Developers

What teams are saying

"Setting up a multi-tenant OIDC provider used to take weeks. CIAM Platform had us live in a day โ€” including MFA and per-tenant JWT signing."
JL
Jordan Lee
Principal Engineer, FinTech Scale-up
"The rate-limiting and breached-password detection was a surprise. We didn't have to build any of that โ€” it's just there, backed by Redis."
PM
Priya Mehta
Staff Security Engineer, SaaS Platform
"Passkey support and SAML federation in the same open-source package? We evaluated four vendors before finding this."
TK
Tom Kowalski
CTO, B2B Platform
Get Started

Ship identity in minutes, not months

One docker compose up command and your full CIAM stack is running.

Read the Docs View Pricing