This is the SURF Oauth2 module that interfaces with the oauth2 setup.
Project description
OAuth2-lib
This project contains a number of classes to perform authentication (AuthN) and authorization (AuthZ) in a FastAPI application.
They can be found in oauth2_lib/fastapi.py. Most notable are:
OIDCAuth: AuthN implementation that authenticates a user against a OIDC backend. You can subclass and implementdef userinfo()as needed.- To use a different AuthN method, subclass the
Authenticationbase class.
- To use a different AuthN method, subclass the
OIDCUserModel: model of the data returned byOIDCAuth. You can subclass this to rename and/or add fields.OPAAuthorization: AuthZ implementation that authorizes a user's HTTP request against an Open Policy Agent (OPA) instance.- To use a different AuthZ method, subclass the
Authorizationbase class.
- To use a different AuthZ method, subclass the
GraphQLOPAAuthorization: AuthZ implementation that authorizes a user's GraphQL query against an Open Policy Agent (OPA) instance.- To use a different AuthZ method, subclass the
GraphqlAuthorizationbase class.
- To use a different AuthZ method, subclass the
OPAResult: model of the data returned byOPAAuthorizationandGraphQLOPAAuthorization.
The orchestrator-core documentation has a section on Authentication and Authorization that describes how to use/override these classes.
Installation
To install the package from PyPI:
pip install oauth2-lib
Development
Virtual Environment
Steps to setup a virtual environment.
Step 1:
Create and activate a python3 virtualenv.
Step 2:
Install flit to enable you to develop on this repository:
pip install flit
Step 3:
To install all development dependencies:
flit install --deps develop
All steps combined into 1 command:
python -m venv .venv && source .venv/bin/activate && pip install -U pip && pip install flit && flit install --deps develop
Unit tests
Activate the virtualenv and run the unit tests with:
pytest
Pre-commit
This project uses pre-commit to automatically run a number of checks before making a git commit. The same checks will be performed in the CI pipeline so this can save you some time.
First ensure you have pre-commit installed. It is recommended to install it outside the virtualenv. On Linux and Mac, pre-commit is available in most package managers. Alternatively you can install it globally with pipx.
Once pre-commit is installed, go into the project root and enable it:
pre-commit install
This should output pre-commit installed at .git/hooks/pre-commit. The next time you run git commit the pre-commit hooks will validate your changes.
Bump version
Depending on the feature type, run bumpversion (patch|minor|major) to increment the version you are working on. For example to update the increment the patch version use
bumpversion patch
Supported Python versions
oauth2-lib must support the same python versions as orchestrator-core.
Exceptions to this rule are:
- A new python version is released: oauth2-lib should support the new version before orchestrator-core does
- Support for an old python version is dropped: oauth2-lib should drop the python version after orchestrator-core does
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oauth2_lib-2.6.0.tar.gz.
File metadata
- Download URL: oauth2_lib-2.6.0.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bdd6a0e88a7ab8be436f7f71e5948e4f3993d29fdf1d12f593fb049ca53e066
|
|
| MD5 |
4d7b26a24b3394739eaf39f40e63c4c9
|
|
| BLAKE2b-256 |
a440e466a4090c2773d12488bb60a28f69f39081965f0e8c0add56d97f8e9526
|
File details
Details for the file oauth2_lib-2.6.0-py3-none-any.whl.
File metadata
- Download URL: oauth2_lib-2.6.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0db40ff0c93f8b10923023447bf494a30b3738a5e66eedafbcdd6d53a80563e5
|
|
| MD5 |
958a849008586d45e480ccfadb62907f
|
|
| BLAKE2b-256 |
b4defe58b2c67d9c8e7175cb92b343f3f3a5951fcfaab7a11afd427454e7e4a3
|