Skip to main content

Highly configurable authentication and authorization package wrapping Keycloak

Project description

authflow - Backend Package

Python/FastAPI backend for authflow-stack.

Installation

pip install authflow

Quick Start

from fastapi import FastAPI, Depends
from authflow import AuthFlow, setup_auth
from authflow.dependencies import get_current_user, require_permission

app = FastAPI()

# Initialize from config file
auth = AuthFlow.from_config("authflow.config.yaml")
setup_auth(app, auth, prefix="/api/v1/auth")

# Protected route
@app.get("/api/data")
async def get_data(user = Depends(get_current_user)):
    return {"message": f"Hello {user.username}"}

# Permission-protected route
@app.post("/api/contracts")
@require_permission("contracts:write")
async def create_contract(user = Depends(get_current_user)):
    return {"status": "created"}

Configuration

Create authflow.config.yaml:

provider:
  type: keycloak
  keycloak:
    url: https://keycloak.example.com
    realm: my-realm
    client_id: authflow-client
    client_secret: ${KEYCLOAK_SECRET}

features:
  organizations: true
  teams: true
  email_verification: true

rbac:
  model: role-based
  scopes: [global, organization, team]

Development

pip install -e ".[dev]"
pytest

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

authflow-0.1.3.tar.gz (40.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

authflow-0.1.3-py3-none-any.whl (48.7 kB view details)

Uploaded Python 3

File details

Details for the file authflow-0.1.3.tar.gz.

File metadata

  • Download URL: authflow-0.1.3.tar.gz
  • Upload date:
  • Size: 40.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for authflow-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a4f0acb40c9bbac7e8a74b06b0e0d72ce1e1943b1b92781fa7d68936c09fcdd4
MD5 bfeb7dcac057b0246f19a54cffecc8c8
BLAKE2b-256 8944cb13bdf8d3e23076b828dfe74ff54a662e7af55b2f958aa894a464f1434b

See more details on using hashes here.

File details

Details for the file authflow-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: authflow-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 48.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for authflow-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4a348d370707031829ccfac1afd14b0e44b9e27de7a12d5fa26e3525f3ec3c74
MD5 eecfc342afde1618712fc99f3c6011b6
BLAKE2b-256 4321afd292fe3cd323fe672309c55eb666361f4939bf7fd543fe00a58b6feb93

See more details on using hashes here.

Supported by

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