goauthentik / goauthentik/client-python

Configuration.api_key* are not really used

Abierto
#10 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Mustache
Estrellas
2
Forks
1
Merge medio
15 h 5 min
PR fusionados (30 d)
2

Descripción

I got tempted to pass `api_key = 'my-super-duper-secret-key'` to the Configuration object, as one has an API key at hand, and all I got was a 403 Error ~~(t-shirt material right there)~~.

```python
import os
import sys
import authentik_client

def main():
host = os.environ.get("AUTHENTIK_HOST") # I passed here a URL ending in "/api/v3" even though is called "host", see #9
token = os.environ.get("AUTHENTIK_TOKEN")
if not token:
print("AUTHENTIK_TOKEN unset")
sys.exit(1)

if not host:
print("AUTHENTIK_URL unset")
sys.exit(1)

configuration = authentik_client.Configuration(
host=host,
api_key=token
)

with authentik_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = authentik_client.AdminApi(api_client)
try:
api_response = api_instance.admin_apps_list()
print("The response of AdminApi->admin_apps_list:\n")
print(api_response)
except authentik_client.ApiException as e:
print("Exception when calling AdminApi->admin_apps_list: %s\n" % e)

if __name__ == "__main__":
main()
```

When invoking it I got:

```
python move-okta-app-to-authentik.py
Exception when calling AdminApi->admin_apps_list: (403)
Reason: Forbidden
HTTP response headers: HTTPHeaderDict({'date': 'Thu, 30 Oct 2025 20:47:20 GMT', 'content-type': 'application/json; charset=utf-8', 'content-length': '58', 'allow': 'GET, HEAD, OPTIONS', 'referrer-policy': 'same-origin', 'vary': 'Accept-Encoding, Cookie', 'x-authentik-id': 'af8d40bf08934e5cb8e602be325694f6', 'x-content-type-options': 'nosniff', 'x-frame-options': 'DENY', 'x-powered-by': 'authentik', 'strict-transport-security': 'max-age=31536000; includeSubDomains'})
HTTP response body: detail='Authentication credentials were not provided.' code=None
```

In fairness the example in the REAMDE.md points out the usage of `access_token`, however it doesn't really align with the nomenclature.

```
# Configure Bearer authorization: authentik
configuration = authentik_client.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
```

But your API Credential to interact with the server is a "Bootstrap _token_", and for users you can create "_Token_"'s, (notice the lack of "Access").

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.