Read the full docs at: authentication-as-a-service.
This is a simple identity provider service, responsible for managing the lifecycle of:
- users
- roles
- resources and operations It provides an API to easily create users, creates roles that grant specific operations to resources, and the allows the assignment of roles to users.
The project is created to be used as part of a set of microservices, that achieve authentication & authorization in a larger system (detailed explanations can be found in the full docs).
FastAPI: for the api creationPoetry: for dependency management- Dependency Injector for dependency injection, singleton pattern implementation, and project structure.
Alembic, andSqlAlchemyfor migrations and orm, respectively.DockerandDockerComposerfor containerization.
- Add the following line to your
/etc/hosts:
172.30.0.5 identity-provider.local
- Clone the local-stack and start a MySQL server by running:
make start-databases
-
Run
./start.shto start the project (along with the db) and./stop.shto stop it -
Find the openapi spec at http://identity-provider.local/docs