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
patch
version by default. Add#major
or#minor
to 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
latest
as 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
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 |