This repository houses the authorization server for a Single Sign-On (SSO) service.
Users authenticate by logging into the authorization server using their credentials. Note that this server does not integrate with any third-party identity providers (e.g., Google, GitHub), meaning authentication and identity are solely managed through the provided credentials.
Additionally, this repository includes an example SSO client, which can be found in the /example_client directory.
In development: Not all functionality you might expect will work at this point.
The research branches serve for research only and will NOT be merged with the main branch:
research/auth-flow-stub: SSO without the use ofmix phx.gen.auth.research/openid-connect: SSO based on OpenID Connect.
In order to demo the SSO service, you need to serve the authorization server and the example client at the same time.
- Run
mix setupto install and set up dependencies. - Start the Phoenix endpoint with either
mix phx.serveror inside IEx withiex -S mix phx.server. - The authorization server will be available on http://localhost:4000.
- In your CLI, navigate to the
/example_clientdirectory. - Run
mix setupto install and set up dependencies. - Start the Phoenix endpoint with either
mix phx.serveror inside IEx withiex -S mix phx.server. - The example client server will be available on http://localhost:4001. Open a browser and go to
http://localhost:4001to find further instructions on how to use the example client.
- A Mix task for Phoenix clients for generating SSO client code.
- A Mix task for Phoenix authorization servers for generating SSO server code.
- A package that allows to easily set up an Assent strategy.