Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

HTTP server managing identities

Project description

Kisee — Identity Provider Server

Documentation Status Package on PyPI Build status

Name

The name "Kisee", inspired from "KISS" ("Keep it simple, stupid.") is spoken as the french phrase "Qui c'est ?", [kis‿ɛ].

Overview

Kisee is an API giving JWTs in exchange for valid usernames/password pairs. That's it.

Kisee is better used as a backend of the Pasee identity manager: Pasee handle groups and can handle multiple identity backends (one or many Kisee instances, twitter, facebook, ...).

Kisee can use your existing database (or use a dedicated one) to query the username and passwrds if you're willing to implement a simple Python class to query it, so Kisee can query anything: LDAP, a flat file, a PostgreSQL database with a strange schema, whatever.

Quick start

$ pip install kisee
$ kisee --settings example-settings.toml

This starts Kisee with an in-memory demo backend, just so you can play. The demo backend will print the admin credentials at startup:

$ kisee --settings example-settings.toml

Admin credentials for this session is:
username: root
password: UGINenIU

======== Running on http://0.0.0.0:8140 ========
(Press CTRL+C to quit)

So we can start by getting a JWT for the admin user (beware, your password is different):

$ curl 0:8140/jwt/ -XPOST -d '{"username": "root", "password": "UGINenIU"}'
{
    "_type": "document",
    "_meta": {
        "url": "/jwt/",
        "title": "JSON Web Tokens"
    },
    "tokens": [
        "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJleGFtcGxlLmNvbSIsInN1YiI6IkpvaG4iLCJleHAiOjE1NTMyNzQyNjEsImp0aSI6IjlXb0piV1g2OGpmQVo5N1dNRWRjNDQifQ.iYAgA-018VHQo9tWLfk7XIxtrDKYk_CTWhHXo7bMBGDz9HGKRIwV_mh0Wla6tf6z-_JH5KRTQRnQl5DLLlIelg"
    ],
    "add_token": {
        "_type": "link",
        "action": "post",
        "title": "Create a new JWT",
        "description": "POSTing to this endpoint create JWT tokens.",
        "fields": [
            {
                "name": "username",
                "required": true
            },
            {
                "name": "password",
                "required": true
            }
        ]
    }
}

It's possible for a new user to "self-register" by posting on /users/:

$ curl -i 0:8140/users/ -XPOST -d '{"username": "JohnDoe", "password": "sdfswlwl", "email": "john@example.com"}'
HTTP/1.1 201 Created
Location: /users/JohnDoe/

Read the docs: https://kisee.readthedocs.io

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for kisee, version 20.2.0
Filename, size File type Python version Upload date Hashes
Filename, size kisee-20.2.0-py3-none-any.whl (19.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size kisee-20.2.0.tar.gz (16.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page