[![Build](https://github.com/Neoteroi/guardpost/workflows/Build/badge.svg)](https://github.com/Neoteroi/guardpost/actions?query=workflow%3ABuild)
[![pypi](https://img.shields.io/pypi/v/neoteroi-auth.svg?color=blue)](https://pypi.org/project/neoteroi-auth/)
[![versions](https://img.shields.io/pypi/pyversions/neoteroi-auth.svg)](https://github.com/Neoteroi/guardpost)
[![license](https://img.shields.io/github/license/Neoteroi/guardpost.svg)](https://github.com/Neoteroi/guardpost/blob/main/LICENSE)
[![codecov](https://codecov.io/gh/Neoteroi/guardpost/branch/main/graph/badge.svg?token=sBKZG2D1bZ)](https://codecov.io/gh/Neoteroi/guardpost)
# Authentication and authorization framework for Python apps
Basic framework to handle authentication and authorization in asynchronous
Python applications.
**Features:**
- strategy to implement authentication (who or what is using a service?)
- strategy to implement authorization (is the acting identity authorized to do a certain action?)
- support for dependency injection for classes handling authentication and
authorization requirements
- built-in support for JSON Web Tokens (JWTs) authentication
This library is freely inspired by [authorization in ASP.NET
Core](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-2.2);
although its implementation is extremely different.
## Installation
```bash
pip install neoteroi-auth
```
To install with support for `JSON Web Tokens (JWTs)` validation:
```
pip install neoteroi-auth[jwt]
```
### Examples
For examples, refer to the [examples folder](./examples).
## If you have doubts about authentication vs authorization...
`Authentication` answers the question: _Who is the user who is initiating the
action?_, or more in general: _Who is the user, or what is the service, that is
initiating the action?_.
`Authorization` answers the question: _Is the user, or service, authorized to
do something?_.
Usually, to implement authorization, is necessary to have the context of the
entity that is executing the action.
## Usage in BlackSheep
`neoteroi-auth` is used in the second version of the
[BlackSheep](https://www.neoteroi.dev/blacksheep/) web framework, to implement
[authentication and authorization
strategies](https://www.neoteroi.dev/blacksheep/authentication/) for request
handlers.
To see how `neoteroi-auth` is used in `blacksheep` web framework, read:
* [Authentication](https://www.neoteroi.dev/blacksheep/authentication/)
* [Authorization](https://www.neoteroi.dev/blacksheep/authorization/)
# Documentation
Under construction. 🚧
Raw data
{
"_id": null,
"home_page": "",
"name": "neoteroi-auth",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "authentication,authorization,claims,identity,strategy",
"author": "",
"author_email": "Roberto Prevato <roberto.prevato@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/dd/76/51b3880f6111248b472bbf09737fedf5f17b3083bd04942c1630c57615bc/neoteroi_auth-0.0.3.tar.gz",
"platform": null,
"description": "[![Build](https://github.com/Neoteroi/guardpost/workflows/Build/badge.svg)](https://github.com/Neoteroi/guardpost/actions?query=workflow%3ABuild)\n[![pypi](https://img.shields.io/pypi/v/neoteroi-auth.svg?color=blue)](https://pypi.org/project/neoteroi-auth/)\n[![versions](https://img.shields.io/pypi/pyversions/neoteroi-auth.svg)](https://github.com/Neoteroi/guardpost)\n[![license](https://img.shields.io/github/license/Neoteroi/guardpost.svg)](https://github.com/Neoteroi/guardpost/blob/main/LICENSE)\n[![codecov](https://codecov.io/gh/Neoteroi/guardpost/branch/main/graph/badge.svg?token=sBKZG2D1bZ)](https://codecov.io/gh/Neoteroi/guardpost)\n\n# Authentication and authorization framework for Python apps\nBasic framework to handle authentication and authorization in asynchronous\nPython applications.\n\n**Features:**\n\n- strategy to implement authentication (who or what is using a service?)\n- strategy to implement authorization (is the acting identity authorized to do a certain action?)\n- support for dependency injection for classes handling authentication and\n authorization requirements\n- built-in support for JSON Web Tokens (JWTs) authentication\n\nThis library is freely inspired by [authorization in ASP.NET\nCore](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-2.2);\nalthough its implementation is extremely different.\n\n## Installation\n\n```bash\npip install neoteroi-auth\n```\n\nTo install with support for `JSON Web Tokens (JWTs)` validation:\n\n```\npip install neoteroi-auth[jwt]\n```\n\n### Examples\n\nFor examples, refer to the [examples folder](./examples).\n\n## If you have doubts about authentication vs authorization...\n`Authentication` answers the question: _Who is the user who is initiating the\naction?_, or more in general: _Who is the user, or what is the service, that is\ninitiating the action?_.\n\n`Authorization` answers the question: _Is the user, or service, authorized to\ndo something?_.\n\nUsually, to implement authorization, is necessary to have the context of the\nentity that is executing the action.\n\n## Usage in BlackSheep\n`neoteroi-auth` is used in the second version of the\n[BlackSheep](https://www.neoteroi.dev/blacksheep/) web framework, to implement\n[authentication and authorization\nstrategies](https://www.neoteroi.dev/blacksheep/authentication/) for request\nhandlers.\n\nTo see how `neoteroi-auth` is used in `blacksheep` web framework, read:\n\n* [Authentication](https://www.neoteroi.dev/blacksheep/authentication/)\n* [Authorization](https://www.neoteroi.dev/blacksheep/authorization/)\n\n# Documentation\n\nUnder construction. \ud83d\udea7\n",
"bugtrack_url": null,
"license": "",
"summary": "Framework to handle authentication and authorization.",
"version": "0.0.3",
"split_keywords": [
"authentication",
"authorization",
"claims",
"identity",
"strategy"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "eefcb49940ce0f675f4d59a4fc1ce3f5",
"sha256": "4970c67d21580480e86d14656bf0e408d2bde8214a5db21249620a04252c9bdb"
},
"downloads": -1,
"filename": "neoteroi_auth-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "eefcb49940ce0f675f4d59a4fc1ce3f5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 15521,
"upload_time": "2022-12-29T11:47:30",
"upload_time_iso_8601": "2022-12-29T11:47:30.813844Z",
"url": "https://files.pythonhosted.org/packages/e3/a7/1eae7b2f1113ec8ff6a9b3e864cc8f2cde62645e706c07a8595645f4982c/neoteroi_auth-0.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "f53a61708497d3dd08b181b99f1e299b",
"sha256": "6925f52d5a6465cd1b998b5c0d591ba8f88b03948da45fb40411faf5581a9f7d"
},
"downloads": -1,
"filename": "neoteroi_auth-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "f53a61708497d3dd08b181b99f1e299b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 12877,
"upload_time": "2022-12-29T11:47:32",
"upload_time_iso_8601": "2022-12-29T11:47:32.266727Z",
"url": "https://files.pythonhosted.org/packages/dd/76/51b3880f6111248b472bbf09737fedf5f17b3083bd04942c1630c57615bc/neoteroi_auth-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-29 11:47:32",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "neoteroi-auth"
}