asteroid icon indicating copy to clipboard operation
asteroid copied to clipboard

An OAuth2 and OpenID Connect server written in Elixir

Asteroid

Authorization Server on sTEROIDs.

Asteroid

Asteroid is an OAuth2 server designed for performance, extensibility and maintenability. It benefits from the high performances and reliability of the Erlang Virtual Machine.

Project status

This project is no longer maintained and is not suitable for use in production. In particular, the identity backend (AttributeRepository) is buggy, does not support SQL databases and needs a major rewrite. Other components (such as object stores, crypto backend, ...) and the whole application would need some rewriting too.

It is unlikely the author will find time to work on this project in the future.

Protocol support

Asteroid supports the following specifications:

Asteroid strives to fully implement the specifications. For specifics about support, refer to the documentation.

Demo flows

The demo_auth_workflow branch implements two flows. Refer to the documentation for more information.

OAuth2 flow

OAuth2 demo flow

OpenID Connect flow

OpenID Connect demo flow

Install from source

First, install Elixir. Then clone this repository and launch Asteroid:

git clone https://github.com/tanguilp/asteroid.git

cd asteroid/

mix deps.get

iex -S mix phx.server

Documentation

You can build documentation using mix:

mix docs

The documentation is generated in the doc/ folder.

It is also published here.

It contains information related to the use of the test application in the "Running the demo app" section.