Skip to content

Autenticação e SSO via Keycloak

O Keycloak é nosso provedor principal de Identidade (IdP) e Single Sign-On (SSO). Ele permite que dezenas de aplicações que rodam na infraestrutura k8s e em VMs independentes se beneficiem de autenticação centralizada e federação com nosso Active Directory.

Arquitetura e Integração

  • Toda aplicação recém-ativada será integrada como Client (protocolo OIDC preferencialmente ou SAML v2.0) num Realm específico do projeto (como o Realm Principal Corporativo).
  • Federação: Há User Federation habilitada puxando os usuários via LDAPs direto do nosso Active Directory, permitindo autenticação transparente.

Configuração Básica (Referência Técnica para Integração)

json
{
  "realm": "pmdf",
  "auth-server-url": "https://auth2.policia.df.gov.br/auth/",
  "ssl-required": "external",
  "resource": "client-id",
  "public-client": true,
  "confidential-port": 0
}

Ambientes Críticos

Quando estiver criando um Client ID, garanta que as URIs de Redirecionamento Válidas (Valid Redirect URIs) estejam preenchidas apenas com URLs de produção ou staging daquela aplicação. O uso indiscriminado de * compromete a segurança.

Ciclo de Vida do Token (JWT)

O token JWT (access_token) padrão emitido é válido por 5 minutos rotacionáveis via refresh_token de 30 minutos, dependendo da criticidade exigida por serviço.


Guia Passo a Passo: Criação de OIDC Client

  1. Efetue login como Admin no painel do Keycloak.
  2. Certifique-se de estar no Realm correto no canto superior esquerdo.
  3. No menu lateral, acesse Clients.
  4. Clique no botão Create.
  5. Preencha o Client ID informando o nome da aplicação.
  6. Mantenha o Client Protocol como openid-connect.
  7. Clique em Save.
  8. Na aba principal do cliente, cadastre adequadamente os campos Valid Redirect URIs e Web Origins.
  9. Em Access Type, mude para confidential se necessitar autenticação em back-end, salvando para gerar a aba de Credentials (onde fica o Secret).

Tokens e Autorização

Não compartilhe o Client Secret da aplicação com pessoas não autorizadas e nunca dê commit em repositórios de código fonte.