Skip to content

curveball/a12n-server

Repository files navigation

@curveball/a12n-server: A simple authentication server

a12n is short for "authentication".

a12n-server is a simple authentication server that implements the OAuth2 and OpenID Connect standards. It's goals is to create a fast, lightweight server that can be quickly deployed on both dev machines and in production.

a12n-server home screenshot

Requirements

  • Node.js > 18.x
  • MySQL, Postgres or Sqlite

Try it out!

Get a test server by running:

mkdir a12n-server && cd a12n-server
npx @curveball/a12n-server

This will automatically create a configuration file and sqlite database in the current directory.

Then, just open http://localhost:8531/ to create your admin account. See Getting started for more ways to run the server.

Contributing or just curious about the code?

Run from source or run the codebase with Docker

🍭 Features

This project has been used in production since 2018 and continues to be actively maintained.

Instead of rolling your own authentication system, you get A LOT of features for free πŸͺ„:

Supported Features Details
User Management β€’ Create, update, delete and list users with our User API
β€’ Password reset/recovery flow
Authentication Methods β€’ Username/password login
β€’ Multi-factor authentication (MFA):
β€’ TOTP (Time-based One-Time Passcodes with Google Authenticator)
β€’ Email one-time codes
β€’ WebAuthN hardware keys
Authorization β€’ Role-based access control (RBAC)
β€’ Groups and permissions management
β€’ Fine-grained access policies
OAuth2 Support β€’ Multiple grant types (Authorization code, client credentials, etc)
β€’ Token introspection and revocation
β€’ PKCE for enhanced security
β€’ JWT access tokens (RFC 9068)
OpenID Connect β€’ Standard OIDC configuration endpoints
β€’ Discovery document
β€’ JSON Web Key Sets (JWKS)
β€’ Multiple response types
Developer Experience β€’ Browser-based admin UI
β€’ Browsable REST API with HTML and JSON responses
β€’ Signup and login views included

The server supports OAuth2 and OpenID Connect, with support for the following features and standards:

πŸ“‚ Documentation