Registry /
security / fastapi-keycloak-middleware
Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
KeycloakMiddleware
✓ from fastapi_keycloak_middleware import KeycloakMiddleware
✗ from fastapi_keycloak_middleware.middleware import KeycloakMiddleware
Old import path before v1.5.0.
KeycloakConfiguration
✓ from fastapi_keycloak_middleware import KeycloakConfiguration
✗ from fastapi_keycloak_middleware.config import KeycloakConfiguration
Config class moved to top-level in v1.5.0.
Minimal FastAPI app with Keycloak authentication.
import os
from fastapi import FastAPI
from fastapi_keycloak_middleware import KeycloakConfiguration, KeycloakMiddleware
app = FastAPI()
config = KeycloakConfiguration(
url=os.environ.get('KEYCLOAK_URL', 'http://localhost:8080'),
realm=os.environ.get('KEYCLOAK_REALM', 'master'),
client_id=os.environ.get('KEYCLOAK_CLIENT_ID', 'my-client'),
client_secret=os.environ.get('KEYCLOAK_CLIENT_SECRET', ''),
)
middleware = KeycloakMiddleware(app=app, configuration=config)
app.add_middleware(middleware)
@app.get('/')
async def root():
return {'message': 'Hello World'}
Errors
Common errors & fixes
ImportError: cannot import name 'KeycloakMiddleware' from 'fastapi_keycloak_middleware'
Using an outdated import path (e.g., from submodules) that existed before v1.5.0.
fixUpdate import to: from fastapi_keycloak_middleware import KeycloakMiddleware
fastapi_keycloak_middleware.exceptions.ConfigurationError: Missing required configuration: 'url'
The KeycloakConfiguration object was not provided with a 'url' field.
fixEnsure KeycloakConfiguration includes 'url' parameter (e.g., KeycloakConfiguration(url='...', realm='...', client_id='...')).
TypeError: object of type 'KeycloakMiddleware' has no len()
Misusing the middleware object: it should be passed to app.add_middleware(), not used as a decorator or added as a list.
fixUse app.add_middleware(KeycloakMiddleware, configuration=config) instead of app.add_middleware(middleware_instance).
Upgrade
Version history
1.6.0latest on PyPI · released Jan 11, 2026
Audit
Dependencies
No dependency data recorded yet.
Resources
No resource links recorded.