• Stars
    star
    158
  • Rank 237,131 (Top 5 %)
  • Language
    Go
  • License
    MIT License
  • Created about 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🛡️ Authorization backend that comes with a UI for RBAC and ABAC permissions

Backend Cucumber badge Go Report Card

🛡️ Authz - Authorization backend

Authz

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?

🌍 A centralized backend for all your applications authorizations

🙋‍♂️ Supports Role-Based Access Control (RBAC)

📌 Supports Attribute-Based Access Control (ABAC)

⚙️ Multiple language SDKs available

Reliable: Authz uses Authz itself for managing its own internal authorizations

🔍 Audit: We log each check decisions and which policy matched

🔐 Single Sign-On: Use your enterprise SSO to log into the web UI, using OpenID Connect

🕵️‍♂️ Observability: Retrieve metrics and tracing data into your prefered tools

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.

Text changing depending on mode. Light: 'So light!' Dark: 'So dark!'

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.

More Repositories

1

gocache

☔️ A complete Go cache library that brings you multiple ways of managing your caches
Go
1,803
star
2

monday

⚡️ A dev tool for microservice developers to run local applications and/or forward others from/to Kubernetes SSH or TCP
Go
1,315
star
3

docker-symfony

Run a Symfony application using Docker & docker-compose
Dockerfile
1,299
star
4

pihole-exporter

A Prometheus exporter for PI-Hole's Raspberry PI ad blocker
Go
729
star
5

FeedBundle

A Symfony bundle to build RSS feeds from your entities
PHP
138
star
6

monday-app

A GUI application for Monday original CLI application: https://github.com/eko/monday
JavaScript
51
star
7

tado-exporter

A Prometheus exporter for tado smart heating solution
Rust
48
star
8

GoogleTranslateBundle

A Symfony bundle to deals with Google Translate API
PHP
44
star
9

gofast

A simple micro-framework written in Go
Go
39
star
10

graphql-go-structure

An example of a graphql-go based structured project.
Go
28
star
11

graphql-go-upload

A middleware for GraphQL-Go to allow file upload and field data using multipart/form-data in mutations
Go
19
star
12

slackbot

This is a Slack Robot written in Go.
Go
15
star
13

book

A simple pandoc and markdown template repository for writing a book
Makefile
12
star
14

dotfiles

My personal configuration files
Vim Script
11
star
15

InstagramBundle

A Symfony bundle to interact with Instagram API
PHP
9
star
16

foREST

RESTful PHP 5.3 API Light Framework
PHP
8
star
17

git-notifier

A Golang Git notifier for Mac OS X.
Go
5
star
18

flowbot

A Flowdock robot library written in Go
Go
3
star
19

vagrant-vm

Puppet
2
star
20

python-websocket

A Python WebSocket server
Python
2
star
21

atom-pull-request

This package allows you to quickly prepare your pull request by driving you directly on your pull request creation page of your current Git project and by pre-defining source/target branches.
JavaScript
2
star
22

SonataDatagridBundle

This is a development repository
PHP
1
star
23

authz-php-sdk

Authz PHP SDK
PHP
1
star