What is Authup?
Authup is an authentication & authorization system.
It is designed to be easy to use and flexible, with support for multiple authentication strategies.
With Authup, developers can quickly and easily add authentication & authorization to their applications.
Table of Contents
Features
- 🌐 Integration - Easy integration into existing systems and only use the components you need
- 🛡️ Identity- & Access-Management - Manage user identities and control access to resources
- 🏭 Clustering - Cluster and scale authup for high availability and performance with Docker/Kubernetes
- ⚡ Blazing Fast - Fast and reliable system due to microservice architecture
- ️️🕵️♀️ Logging & Monitoring - Logs and monitors activities and transactions to detect potential security issues
- 👤 Single-Sign On - Login once to multiple applications
- 📜 Standard Protocols - LDAP, OAuth2.0 & OpenID Connect
- 👍 Social Login - Easy enable social login (GitHub, Google, Facebook, ...)
- 🤝 Identity Brokering - OpenID Connect
- 🔓 Simple claim based and fully featured subject and attribute based authorization
- 🧩 Isomorphic & declarative permission management. Serialize and share permissions between UI, API & microservices
- 💻 TypeScript and JavaScript support
- 📚 Client libraries
- & much more
Documentation
To read the docs, visit https://authup.org
Usage
How Authup can be configured and set up in detail, you can find out here.
Docker
The recommended and optimal way to set up authup is using docker.
To run the backend application with default settings on http://localhost:3001/, execute the following command:
$ docker run \
-v authup:/usr/src/writable \
-p 3001:3000 \
authup/authup:latest server/core start
To run the frontend application with default settings on http://localhost:3000/, execute the following command:
$ docker run \
-p 3000:3000 \
authup/authup:latest client/web start
Bare Metal
The easiest way to get the framework up and running, is by using the global CLI.
Therefore, execute the following shell command.
$ npx authup@latest start
To find out how to configure and set up the bare metal variant in detail, click here.
This will lunch the following application with default settings:
- Frontend Application:
http://localhost:3000/
- Backend Application:
http://localhost:3001/
Packages
The repository contains the following packages:
Name | Type | Description |
---|
access | Library | A package for evaluating permissions and policies. |
authup | CLI | A command line interface for interacting with various applications and services within the ecosystem. |
client-web | Application | A web application interface for end users. |
client-web-kit | Library | A package containing reusable components, composition aids and utilities for the web application. |
client-web-nuxt | Library | A package for the integration in a nuxt web application. |
core-kit | Library | A package providing functions, interfaces and utilities for the core service. |
core-http-kit | Library | A package providing a http client with different sub api clients for resources and workflows. |
core-realtime-kit | Library | A package for the core socket service. |
errors | Library | A package containing error codes and a basic error class. |
kit | Library | A package containing general (context independent) utilities. |
specs | Library | A package containing constants, interfaces, utils, ... for different specifications. |
server-core | Service | A service that forms the backbone of the server-side ecosystem. |
server-kit | Library | A package containing cryptographic algorithms, reusable abstractions for interacting with services, etc.. |
Contributing
Before starting to work on a pull request, it is important to review the guidelines for
contributing and the code of conduct.
These guidelines will help to ensure that contributions are made effectively and are accepted.
Comparison
| Authup | Keycloak | Authentic | Authelia |
---|
Realm Resources (User, Roles, Permissions, ...) | ✓ | ✓ | ✗ | ✗ |
Global Resources (Roles, Permissions, ...) | ✓ | ✗ | ✓ | ✓ |
Modular System | ✓ | ✗ | ✓ | ✗ |
Client Library | ✓ | ✓ | ✓ | ✗ |
Vue.JS Library | ✓ | ✗ | ✗ | ✗ |
OAuth2 Protocol | ✓ | ✓ | ✓ | ✓ |
OpenID Connect Protocol | ✓ | ✓ | ✓ | ✓ |
LDAP Protocol | ✓ | ✗ | ✓ | ✓ |
License
Made with 💚
Published under Apache 2.0 License.