{ "info": { "author": "Julien Palard", "author_email": "julien@python.org", "bugtrack_url": null, "classifiers": [ "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6" ], "description": "# Kisee \u2014 Identity Provider Server\n\n[![Documentation Status](https://readthedocs.org/projects/kisee/badge/?version=latest)](https://kisee.readthedocs.io/en/latest/?badge=latest)\n\n\n## Name\n\nThe name \"Kisee\", inspired from \"KISS\" (\"Keep it simple, stupid.\") is\nspoken as the french phrase \"Qui c'est ?\", `[kis\u203f\u025b]`.\n\n\n## Overview\n\nKisee is an API giving JWTs in exchange for valid usernames/password\npairs. That's it.\n\nKisee is better used as a backend of the\n[Pasee](https://github.com/meltygroup/pasee/) identity manager: Pasee\nhandle groups and can handle multiple identity backends (one or many\nKisee instances, twitter, facebook, ...).\n\nKisee can use your existing database (or use a dedicated one) to query\nthe username and passwrds if you're willing to implement a simple\nPython class to query it, so Kisee can query anything: LDAP, a flat\nfile, a PostgreSQL database with a strange schema, whatever.\n\n\n## Quick start\n\nOnce you've cloned the repo and created a venv, install kisee in it:\n\n```\n$ python3 -m pip install -e .[dev]\n```\n\nStart kisee:\n\n```\n$ kisee --settings example-settings.toml\n```\n\nThis starts Kisee with a very dumb backend, just so you can play.\n\nThe dumb backend works like this:\n - Any user exists.\n - Any password less or equal than 4 characters will be considered wrong.\n - Any other password will pass.\n\nSo now we can query it:\n\n```\n$ curl http://0.0.0.0:8140/jwt/ -XPOST -d '{\"login\": \"John\", \"password\": \"secure\"}'\n{\n \"_type\": \"document\",\n \"_meta\": {\n \"url\": \"/jwt/\",\n \"title\": \"JSON Web Tokens\"\n },\n \"tokens\": [\n \"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJleGFtcGxlLmNvbSIsInN1YiI6IkpvaG4iLCJleHAiOjE1NTMyNzQyNjEsImp0aSI6IjlXb0piV1g2OGpmQVo5N1dNRWRjNDQifQ.iYAgA-018VHQo9tWLfk7XIxtrDKYk_CTWhHXo7bMBGDz9HGKRIwV_mh0Wla6tf6z-_JH5KRTQRnQl5DLLlIelg\"\n ],\n \"add_token\": {\n \"_type\": \"link\",\n \"action\": \"post\",\n \"title\": \"Create a new JWT\",\n \"description\": \"POSTing to this endpoint create JWT tokens.\",\n \"fields\": [\n {\n \"name\": \"login\",\n \"required\": true\n },\n {\n \"name\": \"password\",\n \"required\": true\n }\n ]\n }\n}\n```\n\n## FAQ\n\n\n## Internals\n\nThe `Kisee` daemon does not store `(login, password)` tuples, but uses\na Python class, a `backend` you can configure in `settings.toml` to\nhandle this.\n\n`Kisee` provides some `demo backends` and `test backends` so you can\nplay with it. You can provide your own backend to hit your own\ndatabase, your LDAP server, or another IdP as needed.\n\n\n# TODO\n\n- Admin interface\n- Status page\n- Token invalidation (`DELETE /jwt{/jti}`).\n- Rate-limiting\n- Better error messages (Maybe https://github.com/blongden/vnd.error?)\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/meltygroup/kisee", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "kisee", "package_url": "https://pypi.org/project/kisee/", "platform": "", "project_url": "https://pypi.org/project/kisee/", "project_urls": { "Homepage": "https://github.com/meltygroup/kisee" }, "release_url": "https://pypi.org/project/kisee/19.7.0/", "requires_dist": [ "aiohttp", "aiomysql", "asyncpg", "bcrypt", "coreapi", "cryptography", "psutil", "pyjwt", "sentry-sdk", "shortuuid", "toml", "hypothesis; extra == \"dev\"", "pycalver; extra == \"dev\"", "pytest; extra == \"dev\"", "pytest-cov; extra == \"dev\"", "pytest-aiohttp; extra == \"dev\"", "flake8; extra == \"dev\"", "pylint; extra == \"dev\"", "black; extra == \"dev\"", "bandit; extra == \"dev\"", "mypy; extra == \"dev\"" ], "requires_python": ">=3.6", "summary": "HTTP server managing identities.", "version": "19.7.0" }, "last_serial": 5540621, "releases": { "19.7.0": [ { "comment_text": "", "digests": { "md5": "d246b29675c45f89df86655468e87f1c", "sha256": "5fa91e3e279cbaebb3afbc044606f43b6f7fd142c4ed48329e2eb0f0d48dc15b" }, "downloads": -1, "filename": "kisee-19.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d246b29675c45f89df86655468e87f1c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 30723, "upload_time": "2019-07-16T13:38:57", "url": "https://files.pythonhosted.org/packages/1d/1b/51870b63c29a4079e324ba9dc177f5edc0b99d11e1232091c908077efae6/kisee-19.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33de20c8fb3a919e1c1c71b5a92dac92", "sha256": "0f34a420f4ee4d130745c528129134c5dde41e068b47741dff2b473038d0fdf8" }, "downloads": -1, "filename": "kisee-19.7.0.tar.gz", "has_sig": false, "md5_digest": "33de20c8fb3a919e1c1c71b5a92dac92", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 27973, "upload_time": "2019-07-16T13:38:59", "url": "https://files.pythonhosted.org/packages/03/2d/936d636a08dcaf46b7d641ffc2c94bc89f06d12f6b5ca0035b7b7e888bbb/kisee-19.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d246b29675c45f89df86655468e87f1c", "sha256": "5fa91e3e279cbaebb3afbc044606f43b6f7fd142c4ed48329e2eb0f0d48dc15b" }, "downloads": -1, "filename": "kisee-19.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d246b29675c45f89df86655468e87f1c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 30723, "upload_time": "2019-07-16T13:38:57", "url": "https://files.pythonhosted.org/packages/1d/1b/51870b63c29a4079e324ba9dc177f5edc0b99d11e1232091c908077efae6/kisee-19.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33de20c8fb3a919e1c1c71b5a92dac92", "sha256": "0f34a420f4ee4d130745c528129134c5dde41e068b47741dff2b473038d0fdf8" }, "downloads": -1, "filename": "kisee-19.7.0.tar.gz", "has_sig": false, "md5_digest": "33de20c8fb3a919e1c1c71b5a92dac92", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 27973, "upload_time": "2019-07-16T13:38:59", "url": "https://files.pythonhosted.org/packages/03/2d/936d636a08dcaf46b7d641ffc2c94bc89f06d12f6b5ca0035b7b7e888bbb/kisee-19.7.0.tar.gz" } ] }