Python utility package for verifying & decoding OKTA tokens
Project description
oktagon-python
This python package is a tiny utility for verifying & decoding OKTA tokens in python backend services.
Installation
pip install oktagon-python
Getting Started
Let's say you have /consignments REST API endpoint which you'd like to make accessible only by logistics OKTA group. Then you would write something like this:
import os
from oktagon_python.authorisation import AuthorisationManager
from starlette.requests import Request
auth_manager = AuthorisationManager(
service_name="your_service_name",
okta_issuer=os.environ.get("OKTAGON_OKTA_ISSUER"),
okta_audience=os.environ.get("OKTAGON_OKTA_AUDIENCE"),
)
async def is_authorised(request: Request):
return await auth_manager.is_user_authorised(
allowed_groups=["logistics"],
resource_name="consignments",
cookies=request.cookies
)
This will create an AuthorisationManager instance that will check user's
authorisation.
Getting user's email
There is get_user_email async method on AuthorisationManager to retrieve user's email. Usage:
from starlette.requests import Request
cookies: Request.cookies = request.cookies
email = await auth_manager.get_user_email(cookies)
Contributing
git clone https://github.com/madedotcom/oktagon-python.git
cd oktagon-python
make install
make tests
This will install all the dependencies (including dev ones) and run the tests.
Run the formatters/linters
make pretty
Will run all the formatters and linters (black, isort and pylint) in write mode.
make pretty-check
Will run the formatters and linters in check mode.
You can also run them separtly with make black, make isort, make pylint.
Realeses
Merging a PR into the main branch will trigger the GitHub release workflow.
The following GitHub actions will be triggered:
- github-tag-action will bump a new
tag with
patchversion by default. Add#majoror#minorto the merge commit message to bump a different tag; - gh-action-pypi-publish will push the newly built package on PyPI;
- action-automatic-releases
will create the GitHub release and tag it with
latestas well.
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 oktagon-python-0.0.18.tar.gz.
File metadata
- Download URL: oktagon-python-0.0.18.tar.gz
- Upload date:
- Size: 22.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d62639021f1eabf7aaf38e313e5207fe1a830e0e3029cf36f04d64b52e8f786
|
|
| MD5 |
fe1e006512002e39047ee7749a32f600
|
|
| BLAKE2b-256 |
3949a803c696970e4ae2502fb53d9d32db79d5db00c854fe43e372232d20c2b6
|
File details
Details for the file oktagon_python-0.0.18-py3-none-any.whl.
File metadata
- Download URL: oktagon_python-0.0.18-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0095c010e703d0b6d6b4c727dfb3d4f2b49cf052b1365ea23d3cdabd8257eed
|
|
| MD5 |
f199c2c35c1b836573bb18999e70d581
|
|
| BLAKE2b-256 |
9949ae22aa342268a87a4fc158116d988e0f257db5dcbf43c4126b852b84ce35
|