Sign inSign up

endlessm/eos-idp

By endlessm

Updated about 1 year ago

Endless OS Identity Provider

Image
Security
Integration & delivery
API management
2

7.1K

endlessm/eos-idp repository overview

Endless OS Identity Provider

eos-idp is an identity provider for Endless OS. It supplies an OpenID Connect provider for authentication in client applications. Authentication to eos-idp can be done with a traditional username and password or via 3rd party authenticators such as Google. eos-idp is built on Django.

Setup

Create a Python 3 virtual environment and install the requirements.

virtualenv -p python3 venv
. venv/bin/activate
pip install -r requirements.txt

Most settings can be controlled by environment variables. Alternatively, a .env file in the checkout can be used to populate the environment variables. See the example.env file for documentation on available variables. Further customization can be accomplished by adding a Django settings file at eosidp/settings/local.py.

For a quick setup, copy example.env to .env and edit it.

cp example.env .env
editor .env

Now create an adminstrator user and initialize the database tables.

./manage.py createsuperuser
./manage.py migrate

Before the OpenID Connect provider can be used, a keypair must be created for signing the tokens.

./manage.py creatersakey

Now you can run the server.

./manage.py runserver

This will start Django's built-in WSGI server, but in a real deployment Gunicorn is suggested.

gunicorn eosidp.wsgi

Clients

In order to use eos-idp as an authenticator, a client application must be registered as an OpenID Connect Relying Party. See the django-oidc-provider documentation on how to register clients.

Deployment

A Dockerfile is provided to build a container image for eos-idp. First, build the image.

docker build -t eos-idp .

Now run it the container.

docker run --rm --env-file .env -p 8000:8000 eos-idp

Tag summary

Content type

Image

Digest

sha256:247a183c1

Size

240.2 MB

Last updated

over 1 year ago

docker pull endlessm/eos-idp