Autenticação e Gestão de Identidade
Um subdomínio genérico e crítico, mas não diferencial
Autenticação e autorização são capacidades essenciais em qualquer plataforma digital. No entanto, sob a ótica de Domain-Driven Design, tratam-se de um subdomínio genérico: fundamentais para operação, mas não responsáveis por diferenciação competitiva.
A implicação prática é direta:
- Não vale a pena reinventar.
- Deve-se priorizar soluções maduras, testadas e amplamente adotadas.
- O foco interno deve permanecer no core do negócio.
Abordagem Recomendada
A estratégia mais eficiente para subdomínios genéricos é:
- Adotar uma solução pronta
- Evitar lock-in desnecessário
- Garantir flexibilidade arquitetural
Nesse contexto, uma das opções mais robustas disponíveis é o Keycloak.
Keycloak como Plataforma de IAM
O Keycloak é uma solução open source de Identity and Access Management (IAM) que permite centralizar autenticação, autorização e gestão de usuários.
Capacidades principais
- Single Sign-On (SSO) e Single Sign-Out
- Suporte a OpenID Connect, OAuth 2.0 e SAML 2.0
- Federação com LDAP e Active Directory
- Controle de acesso baseado em papéis (RBAC) e políticas
- Autenticação multifator (2FA)
- Console administrativo centralizado
- Customização de temas e fluxos de autenticação
- Escalabilidade via clustering
Estratégia de Segmentação com Realms
Uma prática recomendada ao utilizar Keycloak é a separação por Realms, isolando contextos de autenticação com diferentes requisitos de segurança.
Realm Externo
Destinado a:
- Aplicações públicas
- Dashboards de lojas
- Usuários finais
Características:
- Políticas de senha equilibradas (usabilidade vs segurança)
- Integração com provedores externos (ex: social login)
- Maior tolerância a escala e volume
Realm Interno (Back-office)
Destinado a:
- Equipes internas
- Operações e administração
- Sistemas críticos
Características:
- Políticas de senha mais rigorosas
- Obrigatoriedade de 2FA
- Controle de acesso mais restritivo
- Auditoria mais detalhada
Restrição de Acesso ao Back-office
O Keycloak permite reforçar a segurança do ambiente interno com restrições de rede:
- Acesso ao Realm interno limitado a:
- Rede corporativa
- VPN
- Possibilidade de integração com proxies e gateways de segurança
- Redução significativa da superfície de ataque
Trade-offs
Vantagens
- Solução madura e amplamente adotada
- Independência de fornecedores (open source)
- Alta flexibilidade e extensibilidade
- Aderência a padrões de mercado
Desvantagens
- Curva inicial de configuração elevada
- Complexidade operacional em ambientes maiores
- Requer governança clara de identidade
Posicionamento Arquitetural
- Keycloak deve ser tratado como infraestrutura compartilhada
- Não deve conter lógica de negócio
- Deve ser integrado via padrões (OIDC/OAuth2)
- Serviços devem permanecer desacoplados da implementação específica
Resumo
Para autenticação e autorização:
- Trate como subdomínio genérico
- Evite desenvolvimento interno
- Prefira soluções open source maduras
O Keycloak oferece um equilíbrio consistente entre controle, flexibilidade e independência desde que acompanhado de uma estratégia clara de segmentação e governança.
Referência
KEYCLOAK TEAM. Keycloak: Open Source Identity and Access Management. Disponível em: https://www.keycloak.org/