Configuração SAML - Keycloak e Fracttal

Guia completo para configurar autenticação SAML entre Keycloak e Fracttal, incluindo criação de cliente, configuração de parâmetros e validação da integração.

Pré-requisitos

  • Acesso administrativo ao Keycloak (versão 16.1.1 ou superior).
  • Acesso administrativo ao Fracttal.
  • URL base do Fracttal: https://app.fracttal.com
  • Nome chave de configuração SAML (por exemplo, neste documento uso: fracttalkeykloak). Este valor deve ser único e coincidir com o configurado no Keycloak.

Criação do Cliente no Keycloak

  1. Faça login no console de administração do Keycloak.
  2. No menu lateral, selecione: Configure → Clients.
  3. Clique no botão 'Create'.
  1. No campo 'Client ID', insira o identificador do cliente: fracttal-app. (é o valor que uso para o exemplo, mas fica a critério de quem configurar. O importante é que coincida com o issuer configurado no Fracttal).
  2. Selecione 'saml' como Client Protocol.
  3. Pressione 'Save' para continuar.

Configuração do Cliente SAML

Uma vez criado o cliente, configure os parâmetros na aba 'Settings' da seguinte forma

ParâmetroValorDescrição
Client IDfracttal-appIdentificador único do cliente
EnabledONAtiva o cliente
Client ProtocolsamlDefine o protocolo SAML.
Sign AssertionsONEste parâmetro indica se o Keycloak deve assinar as asserções SAML
Signature AlgorithmRSA_SHA256Define o algoritmo criptográfico utilizado para gerar a assinatura digital nas mensagens SAML
SAML Signature Key NameKEYIDEspecifica como o Keycloak identifica a chave usada para assinar a mensagem SAML dentro do XML
Canonicalization MethodEXCLUSIVEDefine o método de canonicalização XML, que é a forma pela qual o documento é normalizado antes de aplicar a assinatura digital
Force POST BindingONForça o método POST para respostas SAML.
Front Channel LogoutONHabilita o encerramento de sessão coordenado.
Name ID FormatemailEnvia o identificador de usuário como e-mail.
Valid Redirect URIshttps://app.fracttal.com/rpc/auth/samlcallback?codesaml=fracttalkeykloak&id_server=AMERICANURI de retorno para o Fracttal.
Base URLhttps://app.fracttal.comURL base do serviço SP.
Assertion Consumer Service POST Binding URLhttps://app.fracttal.com/rpc/auth/samlcallback?codesaml=fracttalkeycloakEndpoint onde o Fracttal recebe as respostas SAML.

Também não é necessário realizar mapeamentos personalizados de campos, apenas indicando que o NameID Format é email já deve funcionar.

Configuração no Fracttal

Para registrar o Identity Provider (Keycloak) no Fracttal:

  1. Acesse o Fracttal com um usuário administrador.
  2. Vá para Configuração → Segurança → SAML 2.0.
  3. Complete os campos de acordo com a seguinte tabela.
CampoValor
Conexão/Nicknamefracttalkeycloak
Issuerfracttal-app
Single Sign-On URLhttp://localhost:8080/auth/realms/master/protocol/saml
Single Logout URLhttp://localhost:8080/auth/realms/master/protocol/saml
Certificate(Certificado X.509 exportado do Keycloak)

O campo 'Issuer' deve ter o mesmo valor que o Client ID do cliente configurado no Keycloak.

Os campos de URLs (SSO e Logout) são obtidos dos metadados do Identity Provider no Keycloak, acessíveis em 'Realm Settings → General → SAML 2.0 Identity Provider Metadata'.

Exportar Metadados do IdP

  1. Na visualização do Realm, abra a aba 'General'.
  1. Clique em 'SAML 2.0 Identity Provider Metadata'.
  2. Copie ou baixe o conteúdo XML.
  3. Extraia o certificado e as URLs (SingleSignOnService e SingleLogoutService) do XML.
  4. Estes valores devem coincidir com os configurados no Fracttal.

Testes e Validação

  1. Acesse o Fracttal e tente fazer login com o método SAML configurado.
  2. Verifique se é redirecionado para o login do Keycloak.
  3. Faça login com as credenciais do IdP.
  4. Se a autenticação for bem-sucedida, o usuário entrará automaticamente no Fracttal.