🛡️ Authz - Authorization backend
This project brings a backend server with its frontend for managing authorizations.
You can use both Role-Based Acccess Control (RBAC) and Attribute-Based Access Control (ABAC).
Why use it?
More information on authz.fr
How it works?
Authorization is simple: a principal
wants to make an action
on a resource
. That's it.
Authz allows you to manage all the authorizations you want to manage. All of them, centralized in a single application.
All you need to do is to host the backend server (a Go single binary), the frontend (static files) if you want it and use our SDKs.
All data are stored in a SQL database. We currently support:
You can run a development environment using our docker-compose.mysql.yaml
and docker-compose.postgres.yaml
files. Or, you can see below to run an example using SQLite.
SDKs
In order to help you, we have the following available SDKs:
Please check their documentations for detailled usage. They all use gRPC
for communicating with the Authz backend (server-to-server).
More SDKs are coming soon.
Getting started
The best way to start trying Authz is to use the following standalone Docker image:
$ docker run --rm \
-e database_driver=sqlite \
-e database_name=:memory: \
-p 8080:8080 \
-p 8081:8081 \
-p 3000:80 \
ekofr/authz:v0.8.3-standalone
Here, we use SQLite in-memory as database.
Frontend will be available under http://localhost:3000 with default credentials: admin
/ changeme
.
Alternatively, we also have separated backend
and frontend
Docker images available here: https://hub.docker.com/repository/docker/ekofr/authz.
Documentation
More technical documentations are available at https://docs.authz.fr.
Backend
For more information about backend, please refer to the Backend README file.
Frontend
For more information about frontend, please refer to the Frontend README file.
Community
Please feel free to contribute on this project and do not hesitate to open an issue if you want to discuss about a feature.