Catalog PyPI
Back to packageRELEASE DETAILS

1.0.1

PyPI

aicp-auth-python

Biblioteca de autenticação e autorização para Keycloak com suporte a permissões contextuais - Python

aicpauthenticationauthorizationjwtkeycloakoauth2openid-connectpermissionsrbac
Published6 Jan 2026
Direct dependencies13
Transitive dependenciesNot calculated

README

Version 1.0.1 documentation

aicp-auth-python

Biblioteca de autenticação e autorização para Keycloak - Python

Instalação

Instalação Básica

pip install aicp-auth-python

Isso instala apenas as dependências básicas. Para usar com Flask ou FastAPI, instale as dependências extras:

Com Flask

pip install aicp-auth-python[flask]

Com FastAPI

pip install aicp-auth-python[fastapi]

Uso

Importação Básica

# Funciona sempre, mesmo sem Flask/FastAPI
from aicp_auth import KeycloakClient, AuthConfig, User

Flask

# Certifique-se de ter instalado: pip install aicp-auth-python[flask]
from aicp_auth import flask_auth_middleware, AuthConfig

config = AuthConfig(
    url="https://keycloak.example.com",
    realm="my-realm",
    client_id="my-client"
)

@app.route('/api/protected')
@flask_auth_middleware(config)
def protected_route():
    return {'user': g.user.__dict__}

FastAPI

# Certifique-se de ter instalado: pip install aicp-auth-python[fastapi]
from aicp_auth import fastapi_auth_middleware, AuthConfig, User

config = AuthConfig(
    url="https://keycloak.example.com",
    realm="my-realm",
    client_id="my-client"
)

get_current_user = fastapi_auth_middleware(config)

@app.get('/api/protected')
def protected_route(user: User = Depends(get_current_user)):
    return {'user': user.__dict__}

Documentação Completa

Veja a documentação principal para mais detalhes.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 13

Native requirements
13 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
requests
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
requests>=2.25.0runtime
PyJWT
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
PyJWT>=2.0.0runtime
cryptography
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
cryptography>=3.0.0runtime
python-keycloak
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
python-keycloak>=3.0.0runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
pytest>=6.0.0; extra == "dev"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov>=2.0.0; extra == "dev"runtime
black
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
black>=21.0.0; extra == "dev"runtime
flake8
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
flake8>=3.8.0; extra == "dev"runtime
mypy
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
mypy>=0.800; extra == "dev"runtime
pre-commit
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
pre-commit>=2.15.0; extra == "dev"runtime
flask
Environment
{
  "extras": "",
  "marker": "extra == \"flask\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
flask>=2.0.0; extra == "flask"runtime
fastapi
Environment
{
  "extras": "",
  "marker": "extra == \"fastapi\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
fastapi>=0.68.0; extra == "fastapi"runtime
uvicorn
Environment
{
  "extras": "",
  "marker": "extra == \"fastapi\"",
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
uvicorn>=0.15.0; extra == "fastapi"runtime

Distribution files

2 collected
aicp_auth_python-1.0.1-py3-none-any.whl

bdist_wheel · 10.52 KB · Python py3

Source file
aicp_auth_python-1.0.1.tar.gz

sdist · 11 KB · Python source

Source file

Repository

PENDING
ai-cockpit/auth-lib

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:20 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:a2ec9f0fe639dc3620cb91908a7907bcbbce70286607228017331ae4fee48e30

Other collected versions

View all collected versions →