O Authentik é um Identity Provider (IdP) open-source, self-hosted, que em 2026 se consolidou como alternativa flexível ao Keycloak para pequenas e médias empresas portuguesas. Suporta SSO multi-protocolo, fluxos de autenticação visuais e WebAuthn nativo.
Introdução
Authentik é um servidor de identidade construído em Python/Django que fornece Single Sign-On (SSO), gestão de utilizadores e controlo de acesso. Diferentemente do Keycloak (Java), o Authentik oferece um editor visual de fluxos (Flows) que permite desenhar pipelines de autenticação sem código — ideal para equipas sem especialistas em identidade.
Em 2026, a versão 2025.x traz melhorias no desempenho, suporte expandido para passkeys e integração nativa com aplicações populares (Grafana, Proxmox, Nextcloud, BookStack).
Protocolos: SAML, OIDC e LDAP
O Authentik suporta três protocolos principais de federação de identidade, configuráveis por aplicação através de Providers:
- SAML 2.0: IdP-initiated e SP-initiated. Mapeamento de atributos flexível. Ideal para aplicações enterprise legacy.
- OpenID Connect (OIDC): Authorization Code flow com PKCE. Suporta refresh tokens e introspeção. Recomendado para aplicações modernas.
- LDAP: Proxy LDAP que permite autenticação de aplicações que só suportam LDAP bind (ex.: serviços legados, appliances de rede).
Exemplo de configuração OIDC para uma aplicação (docker-compose mínimo):
version: "3.4"
services:
server:
image: ghcr.io/goauthentik/server:2025
command: server
environment:
AUTHENTIK_SECRET_KEY: "changeme-secret-key"
AUTHENTIK_POSTGRESQL__HOST: postgres
AUTHENTIK_POSTGRESQL__USER: authentik
AUTHENTIK_POSTGRESQL__PASSWORD: "changeme-pg-pass"
AUTHENTIK_POSTGRESQL__NAME: authentik
ports: ["9000:9000","9443:9443"]
WebAuthn e Fluxos Visuais
O Authentik foi dos primeiros IdP self-hosted a integrar WebAuthn/FIDO2 de forma nativa. Em 2026, suporta:
- Passkeys: sincronizáveis entre dispositivos (Apple, Google, Microsoft) — o utilizador já não precisa de YubiKey dedicado.
- Autenticadores de plataforma: Windows Hello, Touch ID, Face ID.
- Autenticadores roaming: YubiKey, SoloKey, Feitian.
O motor de Flows permite compor pipelines de autenticação visualmente. Cada Flow é uma sequência de Stages (Password, AuthenticatorValidate, Consent, Email, Deny). Casos práticos:
- MFA obrigatório para administradores; password-only para utilizadores internos.
- Consentimento explícito antes de partilhar atributos com terceiros (RGPD).
- Fluxo de recuperação de conta com verificação por email + WebAuthn re-enrollment.
Comparação com Keycloak
Keycloak continua a ser o IdP self-hosted mais maduro, mas o Authentik ganha terreno em usabilidade e flexibilidade. Comparação para PME em 2026:
| Critério | Authentik | Keycloak |
|---|---|---|
| Linguagem | Python/Django | Java/Quarkus |
| Editor de fluxos | Visual (drag-and-drop) | Símbolos de browser flow |
| WebAuthn/Passkeys | Nativo, simples | Nativo, mais config. |
| UI Admin | Moderna, limpa | Funcional, datada |
| LDAP proxy | Sim (built-in) | Sim (via LDAP federation) |
| Consumo de RAM | ~1–2 GB | ~2–4 GB |
| Comunidade/maturidade | Crescente | Madura (Red Hat) |
| Ideal para | PME, fluxos custom | Enterprise, conformidade |
Erros Comuns
Erros frequentes na implementação do Authentik em PME e resoluções práticas:
| Erro | Causa | Resolução |
|---|---|---|
| “Redirect URI mismatch” | URL da app não coincide com o Provider OIDC | Verificar trailing slash e protocolo (https) |
| SAML “Destination mismatch” | Entity ID ou ACS URL mal configurados no SP | Copiar metadados do Authentik para o SP |
| LDAP bind falha | Base DN incorreta ou TLS não validado | Usar base DN “ou=users,dc=authentik,dc=io” |
| WebAuthn “no credentials” | RP ID não corresponde ao domínio | RP ID = hostname sem protocolo (ex.: auth.exemplo.pt) |
| Fluxo fica em loop | Stage de ordenação incorreta ou falta de Policy | Adicionar Policy de “user is authenticated” no início |
| Email de recuperação não enviado | SMTP não configurado em Settings > Email | Configurar SMTP com TLS na porta 587 |
Para PME que precisam de SSO flexível sem a complexidade do Keycloak, o Authentik em 2026 é uma escolha sólida: comunidade ativa, documentação em melhoria contínua e fluxos visuais que reduzem a barreira de entrada para equipas sem especialistas em identidade.