--- name: authentik description: Gestão do Authentik SSO via API v3 — utilizadores, grupos, aplicações, providers, flows e eventos em auth.descomplicar.pt. disable-model-invocation: true layer: wiki --- # /authentik - Gestao Authentik via API v3 Gestao do Authentik SSO (auth.descomplicar.pt) via API REST directa com curl. ## Conexao - **Base URL:** `https://auth.descomplicar.pt/api/v3` - **Auth Header:** `Authorization: Bearer Sa4Zofsdm7UoMXrHRAZ4sIsvNIqCtEQ3uCZrsDg7kx3wDCKQqI0frlFuoUVS` - **Painel Web:** https://auth.descomplicar.pt/if/admin/ ## Template Base Todas as chamadas usam este padrao: ```bash curl -sk "https://auth.descomplicar.pt/api/v3/{ENDPOINT}" \ -H "Authorization: Bearer Sa4Zofsdm7UoMXrHRAZ4sIsvNIqCtEQ3uCZrsDg7kx3wDCKQqI0frlFuoUVS" \ -H "Content-Type: application/json" ``` Para POST/PUT/PATCH, adicionar `-X {METHOD} -d '{JSON}'`. ## Endpoints Principais ### Core - Users | Operacao | Metodo | Endpoint | |----------|--------|----------| | Listar users | GET | `/core/users/` | | Obter user | GET | `/core/users/{id}/` | | Criar user | POST | `/core/users/` | | Actualizar user | PATCH | `/core/users/{id}/` | | Apagar user | DELETE | `/core/users/{id}/` | | Pesquisar user | GET | `/core/users/?search={query}` | | User por username | GET | `/core/users/?username={name}` | | Desactivar user | PATCH | `/core/users/{id}/` com `{"is_active": false}` | | Password user | POST | `/core/users/{id}/set_password/` com `{"password": "..."}` | | Recovery link | POST | `/core/users/{id}/recovery/` | **Campos user (POST/PATCH):** ```json { "username": "nome.apelido", "name": "Nome Completo", "email": "email@dominio.pt", "is_active": true, "groups": ["uuid-grupo"], "attributes": {"chave": "valor"} } ``` ### Core - Groups | Operacao | Metodo | Endpoint | |----------|--------|----------| | Listar groups | GET | `/core/groups/` | | Criar group | POST | `/core/groups/` | | Actualizar group | PATCH | `/core/groups/{id}/` | | Apagar group | DELETE | `/core/groups/{id}/` | | Adicionar user a group | POST | `/core/groups/{id}/add_user/` com `{"pk": user_id}` | | Remover user de group | POST | `/core/groups/{id}/remove_user/` com `{"pk": user_id}` | ### Core - Applications | Operacao | Metodo | Endpoint | |----------|--------|----------| | Listar apps | GET | `/core/applications/` | | Obter app | GET | `/core/applications/{slug}/` | | Criar app | POST | `/core/applications/` | | Actualizar app | PATCH | `/core/applications/{slug}/` | | Apagar app | DELETE | `/core/applications/{slug}/` | **Campos app:** ```json { "name": "Nome App", "slug": "nome-app", "provider": provider_pk, "launch_url": "https://app.dominio.pt", "open_in_new_tab": true, "meta_description": "Descricao" } ``` ### Providers (OAuth2/Proxy/LDAP) | Operacao | Metodo | Endpoint | |----------|--------|----------| | Listar OAuth2 | GET | `/providers/oauth2/` | | Criar OAuth2 | POST | `/providers/oauth2/` | | Listar Proxy | GET | `/providers/proxy/` | | Criar Proxy | POST | `/providers/proxy/` | | Listar LDAP | GET | `/providers/ldap/` | | Listar todos | GET | `/providers/all/` | **OAuth2 provider campos:** ```json { "name": "Nome Provider", "authorization_flow": "flow-uuid", "invalidation_flow": "flow-uuid", "client_type": "confidential", "redirect_uris": "https://app.dominio.pt/callback" } ``` ### Flows | Operacao | Metodo | Endpoint | |----------|--------|----------| | Listar flows | GET | `/flows/instances/` | | Obter flow | GET | `/flows/instances/{slug}/` | | Flow bindings | GET | `/flows/bindings/` | ### Events (Audit) | Operacao | Metodo | Endpoint | |----------|--------|----------| | Listar events | GET | `/events/events/` | | Filtrar por accao | GET | `/events/events/?action={action}` | | Filtrar por user | GET | `/events/events/?username={user}` | | Notifications | GET | `/events/notifications/` | | System tasks | GET | `/events/system_tasks/` | **Accoes comuns:** `login`, `login_failed`, `logout`, `user_write`, `model_created`, `model_updated`, `model_deleted`, `authorize_application` ### Tokens | Operacao | Metodo | Endpoint | |----------|--------|----------| | Listar tokens | GET | `/core/tokens/` | | Criar token | POST | `/core/tokens/` | | Obter token | GET | `/core/tokens/{identifier}/` | | Apagar token | DELETE | `/core/tokens/{identifier}/` | | View key | GET | `/core/tokens/{identifier}/view_key/` | ### Outposts | Operacao | Metodo | Endpoint | |----------|--------|----------| | Listar outposts | GET | `/outposts/instances/` | | Health outpost | GET | `/outposts/instances/{id}/health/` | | Service connections | GET | `/outposts/service_connections/all/` | ### Admin / Sistema | Operacao | Metodo | Endpoint | |----------|--------|----------| | System info | GET | `/admin/system/` | | Version | GET | `/admin/version/` | | Workers | GET | `/admin/workers/` | | Metrics | GET | `/admin/metrics/` | | System tasks | GET | `/admin/system_tasks/` | ## Paginacao Todos os endpoints de lista sup