Authz: A Powerful Authorization Backend
Authz is a versatile backend server designed to manage authorizations efficiently. Whether you need Role-Based Access Control (RBAC) or Attribute-Based Access Control (ABAC), Authz has you covered.
Key Features
- Centralized Management: Authz acts as a central hub for all application authorizations, ensuring streamlined access control.
- Supports RBAC and ABAC: Users can opt for role-based or attribute-based control according to their needs.
- Multiple Language SDKs: Offers SDKs in Go, Python, PHP, and NodeJS, making it accessible across different programming environments.
- Reliability and Security: Authz uses itself for handling internal authorizations, providing reliability and robustness.
- Audit and Logging: Every authorization decision is logged, aiding transparency and audit.
- Single Sign-On Integration: Compatible with enterprise SSO via OpenID Connect, ensuring seamless login experiences.
- Observable Metrics: Offers metrics and tracing data for better observability through preferred tools.
How It Works
The authorization process is straightforward: a principal
(user) wants to perform an action
on a resource
. Authz centralizes all these authorizations in one application. Hosting the backend is simple and involves deploying a Go single binary. Data storage is managed through a SQL database, with support for PostgreSQL, MySQL, and SQLite.
SDKs
Authz provides SDKs for various languages, facilitating communication with its backend via gRPC. These SDKs ensure easy integration and usage across different applications. The project is continually expanding its list of supported SDKs.
Getting Started
To quickly get started, you can use the standalone Docker image. Simply run the following command to set up a basic environment using SQLite:
$ docker run --rm \
-e database_driver=sqlite \
-e database_name=:memory: \
-p 8080:8080 \
-p 8081:8081 \
-p 3000:80 \
ekofr/authz:v0.8.4-standalone
The frontend can be accessed at http://localhost:3000 with the default credentials: admin
/ changeme
.
For more advanced setups, separate Docker images for backend and frontend are available, providing flexibility in deployment.
Documentation
For detailed technical instructions, users are encouraged to visit the official documentation site at https://docs.authz.fr.
Community Involvement
Authz is an open-source project welcoming contributions. Users are encouraged to participate by opening issues for discussion on new features or improvements, further enhancing the project through community-driven innovation.