v1.0.0 · Open Source · MIT LicenseSpring Boot 3 · Java 21

Open-Source
Identity & Access
Management

Self-hosted IAM with Spring Boot 3 microservices. OAuth 2.1, OIDC, PKCE, MFA, RBAC, and multi-realm tenancy — the Keycloak alternative you own completely.

Spring Boot 3.3Spring Auth Server 1.3Java 21Next.js 14TypeScriptPostgreSQL 16Redis 7KafkaOAuth 2.1PKCEOIDCJWT / RSA-2048

11

Microservices

OAuth 2.1

Standard

MIT

License

Java 21

Runtime

System design

Architecture Overview

11 independently deployable microservices. Hover a node to highlight connections.

OpenGate IAM — Service Architecture
gatewaycoresecondaryinfrasecrets
Browser · Mobile · CLIopengate-gateway:9080 · routing · CORSauth-service:9081 · OAuth2/OIDCuser-service:9082 · Usersrealm-service:9083 · Multi-tenantadmin-api:9089 · RESTrbac-service:9084client-service:9085mfa-service:9086session-service:9087notification:9088 · Kafka→SMTPPostgreSQL 16Primary DBRedis 7Cache · SessionsApache KafkaEvent StreamingHashiCorp VaultSecretsCLIENTSGATEWAYCORE SERVICESSECONDARYINFRASTRUCTURE
API Gateway
Core Services
Secondary
Infrastructure
Vault / Secrets
● Animated flow

Everything you need

Enterprise-grade IAM

Identity management as 11 independent microservices.

🛡️

OAuth 2.1 / OIDC

Auth Code + PKCE, Client Credentials, Refresh Token, Device Flow.

🌍

Multi-Realm Tenancy

Fully isolated users, roles, clients, and sessions per realm.

🔑

MFA & Passwordless

TOTP, Email OTP, SMS OTP, backup codes.

👥

RBAC & Groups

Fine-grained roles, composite roles, groups, user-role mappings.

Event Streaming

Kafka-powered audit events for every authentication action.

📦

Microservice Native

11 independent Spring Boot 3 services — scale each separately.

📊

Full Observability

Prometheus, OpenTelemetry, structured JSON logs, Grafana.

🔒

Spring Auth 1.3

RSA-2048 JWT, JWKS endpoint, issuer discovery, OIDC userinfo.

60-second setup

Up and running fast

Run the complete stack with Docker Compose.

Terminal
# Clone the repository
git clone https://github.com/MuyleangIng/opengate-iam.git
cd opengate-iam

# Start the full stack (PostgreSQL · Redis · Kafka · 11 services)
docker compose up -d

# Admin Console  →  http://localhost:3002
# Sample App     →  http://localhost:3003
# Auth Endpoint  →  http://localhost:9080

Microservices

11 Independent Services

Each service is independently deployable, scalable, and observable.

ServicePortResponsibility
opengate-gateway
:9080API gateway — routing, CORS, rate limiting
opengate-auth-service
:9081OAuth2/OIDC authorization server (Spring Auth Server 1.3)
opengate-user-service
:9082User lifecycle — CRUD, passwords, email verification
opengate-realm-service
:9083Multi-tenant realm configuration and management
opengate-rbac-service
:9084Roles, composite roles, groups, and policy evaluation
opengate-client-service
:9085OAuth2 client registry — secrets, redirect URIs, PKCE
opengate-mfa-service
:9086TOTP, email/SMS OTP, backup codes, and MFA enrollment
opengate-session-service
:9087Redis-backed sessions, revocation, and device tracking
opengate-notification
:9088Email templates via Kafka events and SMTP delivery
opengate-admin-api
:9089Aggregated admin REST API (WebFlux reactive)
opengate-sample-app
:8090Demo REST API protected by OpenGate (reference integration)

Community

Open Source & Community

Report issues, submit PRs, and shape the future of OpenGate IAM.

❤️ Sponsor this project

OpenGate IAM is built by a solo developer. Your sponsorship keeps the project alive and funds new features.

❤️ Become a Sponsor