FastAPI Keycloack
Keycloack plugin for FastApi.
Your aplication receives the claims decoded from the access token.
Usage
Run keycloak on port 8080 and configure your keycloack server:
docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:15.0.2
Install dependencies
pip install fastapi fastapi-keycloack uvicorn
Create the main.py module
from fastapi import Depends, FastAPI, Security
from fastapi_keycloack import JwtDecodeOptions, FastApiKeycloack, GrantType
app = FastAPI()
decode_options = JwtDecodeOptions(verify_aud=False)
allowed_grant_types = [
GrantType.IMPLICIT,
GrantType.PASSWORD,
GrantType.AUTHORIZATION_CODE,
GrantType.CLIENT_CREDENTIALS,
]
auth_scheme = FastApiKeycloack(
url="http://localhost:8080/auth/realms/master",
scheme_name="Keycloak",
jwt_decode_options=decode_options,
allowed_grant_types=allowed_grant_types,
)
def get_current_user(claims: dict = Security(auth_scheme)):
return claims
@app.get("/users/me")
def read_current_user(claims: dict = Depends(get_current_user)):
return claims
Run the application
uvicorn main:app
Release files for fastapi-keycloack 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastapi-keycloack-0.2.1.tar.gz | 3.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastapi_keycloack-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.1 kB
Release files / fastapi-keycloack-0.2.1.tar.gz
| Download URL | fastapi-keycloack-0.2.1.tar.gz |
|---|---|
| Size | 3.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7c8d7eb438f4b8ae62e8472851a0a4b48a6dbc19f9041bf08e5c88692fc0d2f3
|
|
BLAKE2b-256 checksum How to use checksums |
68a7013cdbbbe29f31b12f0aea0d4d3d4b4a8df410d4d48f5421f9fd264c1b6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.12 CPython/3.9.5 Linux/5.14.16-arch1-1
|
Release files / fastapi_keycloack-0.2.1-py3-none-any.whl
| Download URL | fastapi_keycloack-0.2.1-py3-none-any.whl |
|---|---|
| Size | 4.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
022553a23f61206c709c71aca9aed0e380de17e5843327c966cbdece1983e9b7
|
|
BLAKE2b-256 checksum How to use checksums |
0a42fc280b587a2e4eaba1291ecb9c25fcb193a8ee1097b6e89a6cd4e73b9b77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.12 CPython/3.9.5 Linux/5.14.16-arch1-1
|