Nauthilus is an authentication and identity platform written in Go. It combines classic authentication for mail and web workloads with an integrated identity provider for OIDC and SAML, plus MFA, WebAuthn, LDAP, Lua-based policy logic, and Redis-backed state handling.
- Overview
- Core Features
- Architecture at a Glance
- Project Layout
- Build and Test
- Documentation
- Community
- Commercial Support
- License
Nauthilus can be used as a central authentication service for infrastructure components such as mail servers, reverse proxies, and web applications. At the same time, it can act as a full identity provider with browser-based login and consent flows.
Typical use cases include:
- Central authentication for IMAP, SMTP, and HTTP-facing services
- LDAP-backed or Lua-driven authentication and authorization decisions
- OIDC and SAML identity provider flows for modern applications
- MFA enforcement with TOTP, WebAuthn, and recovery codes
- Token, session, and flow state management with Redis
- Integrated IdP with OIDC and SAML 2.0 support
- OIDC discovery, JWKS, userinfo, introspection, logout, device authorization, and consent flows
- SAML SSO and SLO support
- MFA with TOTP, WebAuthn, and recovery codes
- LDAP integration for identity and credential lookups
- Lua extensibility for custom backends, hooks, filters, and actions
- Redis-backed flow, session, and token storage
- Prometheus metrics and OpenTelemetry instrumentation
- Bundled test clients and contrib tooling for OIDC, SAML, IMAP, SMTP, LDAP, and Grafana
server/contains the main Nauthilus serviceclient/contains a CSV-driven test and load clientcontrib/oidctestclient/andcontrib/saml2testclient/provide protocol-specific test clientsserver/lua-plugins.d/contains reusable Lua modules and plugin entry pointsIDP.mddocuments the integrated identity provider in more detail
.
├── server/ Main server
├── client/ CSV-driven test/load client
├── contrib/ Additional tools, demos, and integrations
├── static/ Static UI assets
├── testdata/ Test fixtures
├── IDP.md Integrated IdP documentation
├── Makefile Common build and test targets
└── README.md Project overview
Requirement: Go 1.26
Build the main binaries:
make build
make build-clientRun tests:
GOEXPERIMENT=runtimesecret make test
GOEXPERIMENT=runtimesecret make raceRun the local guardrails:
make guardrails- Project website: https://nauthilus.org
- Website/documentation repository: https://github.com/croessner/nauthilus-website
- Integrated IdP manual: IDP.md
- Test client documentation: client/README.md
- Lua plugin notes: server/lua-plugins.d/README.md
Mailing lists are available at:
Commercial support for Nauthilus is available for integration, customization, and troubleshooting.
Further information is available at https://nauthilus.org.
This project is licensed under the GPLv3 License. See the LICENSE file for details.
