https://github.com/tanguilp/asteroid
An OAuth2 and OpenID Connect server written in Elixir
https://github.com/tanguilp/asteroid
Last synced: about 1 month ago
JSON representation
An OAuth2 and OpenID Connect server written in Elixir
- Host: GitHub
- URL: https://github.com/tanguilp/asteroid
- Owner: tanguilp
- License: apache-2.0
- Created: 2018-11-17T18:36:30.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T01:36:55.000Z (over 2 years ago)
- Last Synced: 2025-03-29T09:21:42.980Z (2 months ago)
- Language: Elixir
- Homepage:
- Size: 2.42 MB
- Stars: 39
- Watchers: 2
- Forks: 2
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Asteroid
Authorization Server on sTEROIDs.
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:
- OAuth2:
- The OAuth 2.0 Authorization Framework ([RFC6749](https://tools.ietf.org/html/rfc6749))
- The OAuth 2.0 Authorization Framework: Bearer Token Usage ([RFC6750](https://www.rfc-editor.org/rfc/rfc6750.html))
with [`APIacAuthBearer`](https://github.com/tanguilp/apiac_auth_bearer)
- OAuth 2.0 Token Introspection ([RFC7662](https://tools.ietf.org/html/rfc7662))
- OAuth 2.0 Token Revocation ([RFC7009](https://tools.ietf.org/html/rfc7009))
- Proof Key for Code Exchange by OAuth Public Clients ([RFC7636](https://tools.ietf.org/html/rfc7636))
- OAuth 2.0 Dynamic Client Registration Protocol ([RFC7591](https://tools.ietf.org/html/rfc7591))
- OAuth 2.0 Authorization Server Metadata ([RFC8414](https://tools.ietf.org/html/rfc8414))
- OAuth 2.0 Device Authorization Grant ([RFC8628](https://www.rfc-editor.org/rfc/rfc8628.html))
- JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens ([draft-ietf-oauth-access-token-jwt-00](https://tools.ietf.org/html/draft-ietf-oauth-access-token-jwt-00))
- OpenID Connect:
- [OpenID Connect Core 1.0 incorporating errata set 1](https://openid.net/specs/openid-connect-core-1_0.html)
- [OpenID Connect Dynamic Client Registration 1.0 incorporating errata set 1](https://openid.net/specs/openid-connect-registration-1_0.html)
- [OAuth 2.0 Multiple Response Type Encoding Practices](https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html)
- [OAuth 2.0 Form Post Response Mode](https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html)
- [OpenID Connect Discovery 1.0 incorporating errata set 1](https://openid.net/specs/openid-connect-discovery-1_0.html)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
[](https://vimeo.com/356037657)
### OpenID Connect flow
[](https://vimeo.com/356037941)
## Install from source
First,
[install Elixir](https://www.google.com/search?client=ubuntu&channel=fs&q=install+elixir&ie=utf-8&oe=utf-8). Then clone this repository and launch Asteroid:```bash
git clone https://github.com/tanguilp/asteroid.gitcd asteroid/
mix deps.get
iex -S mix phx.server
```## Documentation
You can build documentation using mix:
```bash
mix docs
```The documentation is generated in the `doc/` folder.
It is also published [here](http://svground.fr/asteroid/doc/).
It contains information related to the use of the test application in the "Running the demo app"
section.