Skip to main content

OIDC auth in fastapi using a decorator

Project description

OpenID Connect for FastAPI

prokie-fastapi-oidc-auth is an extension to FastAPI that allows you to add OpenID Connect based authentication for your endpoints within minutes.

Installation

pip install prokie-fastapi-oidc-auth

Keycloak settings

Admin

admin_username = "admin"
admin_password = "admin"
host = "http://localhost:8080"

Realm

realm = "myrealm"

Client

Set the Access Type to confidential and Standard Flow Enabled to ON. Make sure that Valid Redirect URIs contain the URI of your app or * if you want to allow all URIs. Make sure Client Protocol is set to openid-connect.

client = "myclient"
secret = "xZEIb4wGoWseNumHJ4Vb7pYvdX3SIQeg"

User

user_username = "myuser"
user_password = "myuser"

How to use

See test.py for a complete example.

Testing

To start a Keycloak instance for testing, run the following command:

docker run -d -p 8080:8080 \
            -e KEYCLOAK_USER=admin \
            -e KEYCLOAK_PASSWORD=admin \
            -e KEYCLOAK_IMPORT=/opt/jboss/keycloak/imports/realm-export-16.1.1.json \
            -v $(pwd)/realm-export-16.1.1.json:/opt/jboss/keycloak/imports/realm-export-16.1.1.json \
            --name keycloak \
            jboss/keycloak:16.1.1
docker run -d -p 8080:8080 `
            -e KEYCLOAK_USER=admin `
            -e KEYCLOAK_PASSWORD=admin `
            -e KEYCLOAK_IMPORT=/opt/jboss/keycloak/imports/realm-export-16.1.1.json `
            -v ${PWD}\realm-export-16.1.1.json:/opt/jboss/keycloak/imports/realm-export-16.1.1.json `
            --name keycloak `
            jboss/keycloak:16.1.1

To export the realm configuration, run the following command:

docker exec -it keycloak /opt/jboss/keycloak/bin/standalone.sh \
-Djboss.socket.binding.port-offset=100 -Dkeycloak.migration.action=export \
-Dkeycloak.migration.provider=singleFile \
-Dkeycloak.migration.realmName=myrealm \
-Dkeycloak.migration.usersExportStrategy=REALM_FILE \
-Dkeycloak.migration.file=/tmp/realm-export-16.1.1.json
docker exec -it keycloak /opt/jboss/keycloak/bin/standalone.sh `
  -Djboss.socket.binding.port-offset=100 `
  -Dkeycloak.migration.action=export `
  -Dkeycloak.migration.provider=singleFile `
  -Dkeycloak.migration.realmName=myrealm `
  -Dkeycloak.migration.usersExportStrategy=REALM_FILE `
  -Dkeycloak.migration.file=/tmp/realm-export-16.1.1.json

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prokie-fastapi-oidc-auth-0.2.0.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

prokie_fastapi_oidc_auth-0.2.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file prokie-fastapi-oidc-auth-0.2.0.tar.gz.

File metadata

File hashes

Hashes for prokie-fastapi-oidc-auth-0.2.0.tar.gz
Algorithm Hash digest
SHA256 621f08a7da0bdca0342883e9bf4c06032606e32233d13fb0557b867a59fd042c
MD5 3e37b2c0816ad38c860498add83ee324
BLAKE2b-256 75aa50dab1d21c9a2eaed71410222457fb5a5611ef59b70bf0ded4ef3a564a65

See more details on using hashes here.

File details

Details for the file prokie_fastapi_oidc_auth-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for prokie_fastapi_oidc_auth-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bbe28d083b2c2b820865fd5ba6f172c9a5b6ab4eb32e59938fb5fdeb60250714
MD5 ddc52ff66ad470c3dfa00ed50f4b75a4
BLAKE2b-256 1499b8ebba305fac66056a26d098c14873888358a4bc99d6f10db23b6175bc73

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page