Guía de Configuración de Autenticación SAML entre Fracttal y Keycloak

Este documento describe el procedimiento para configurar la autenticación mediante SAML (Security Assertion Markup Language) entre la plataforma Fracttal y Keycloak (versión 16.1.1) como Identity Provider (IdP). El objetivo es permitir el inicio de sesión único (SSO) para los usuarios corporativos a través de Keycloak.

Requisitos Previos

  • Acceso administrativo a Keycloak (versión 16.1.1 o superior).
  • Acceso administrativo a Fracttal.
  • URL base de Fracttal: https://app.fracttal.com
  • Nombre clave de configuración SAML (por ejemplo, en este documento uso: fracttalkeykloak). Este valor debe ser único y coincidir con el configurado en Keycloak.

Creación del Cliente en Keycloak

  1. Inicie sesión en la consola de administración de Keycloak.
  2. En el menú lateral, seleccione: Configure → Clients.
  3. Haga clic en el botón 'Create'.

  1. En el campo 'Client ID', ingrese el identificador del cliente: fracttal-app. (es el valor que uso para el ejemplo, pero es a criterio de quien configure. Lo importante es que coincida con el issuer configurado en Fracttal).
  2. Seleccione 'saml' como Client Protocol.
  3. Presione 'Save' para continuar.

Configuración del Cliente SAML

Una vez creado el cliente, configure los parámetros en la pestaña 'Settings' de la siguiente manera

ParámetroValorDescripción
Client IDfracttal-appIdentificador único del cliente
EnabledONActiva el cliente
Client ProtocolsamlDefine el protocolo SAML.
Sign AssertionsONEste parámetro indica si Keycloak debe firmar las aserciones SAML
Signature AlgorithmRSA_SHA256Define el algoritmo criptográfico utilizado para generar la firma digital en los mensajes SAML
SAML Signature Key NameKEYIDEspecifica cómo Keycloak identifica la clave usada para firmar el mensaje SAML dentro del XML
Canonicalization MethodEXCLUSIVEDefine el método de canonicalización XML, que es la forma en la que se normaliza el documento antes de aplicar la firma digital
Force POST BindingONFuerza el método POST para respuestas SAML.
Front Channel LogoutONHabilita el cierre de sesión coordinado.
Name ID FormatemailEnvía el identificador de usuario como correo electrónico.
Valid Redirect URIshttps://app.fracttal.com/rpc/auth/samlcallback?codesaml=fracttalkeykloak&id_server=AMERICANURI de retorno hacia Fracttal.
Base URLhttps://app.fracttal.comURL base del servicio SP.
Assertion Consumer Service POST Binding URLhttps://app.fracttal.com/rpc/auth/samlcallback?codesaml=fracttalkeykloakEndpoint donde Fracttal recibe las respuestas SAML.

Tampoco es requerido realizar mapeos personalizados de campos, sólo con indicar que el NameID Format es email debe funcionar.

Configuración en Fracttal

Para registrar el Identity Provider (Keycloak) en Fracttal:

  1. Ingrese a Fracttal con un usuario administrador.
  2. Vaya a Configuración → Seguridad → SAML 2.0.
  3. Complete los campos de acuerdo con la siguiente tabla.
CampoValor
Conexión/Nicknamefracttalkeykloak
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 desde Keycloak)

El campo 'Issuer' debe tener el mismo valor que el Client ID del cliente configurado en Keycloak.

Los campos de URLs (SSO y Logout) se obtienen desde el metadata del Identity Provider en Keycloak, accesible desde 'Realm Settings → General → SAML 2.0 Identity Provider Metadata'.


Exportar Metadatos del IdP

  1. En la vista del Realm, abra la pestaña 'General'.

  1. Haga clic en 'SAML 2.0 Identity Provider Metadata'.
  2. Copie o descargue el contenido XML.
  3. Extraiga el certificado y las URLs (SingleSignOnService y SingleLogoutService) del XML.
  4. Estos valores deben coincidir con los configurados en Fracttal.

Pruebas y Validación

  1. Acceda a Fracttal e intente iniciar sesión con el método SAML configurado.
  2. Verifique que se redirija al login de Keycloak.
  3. Inicie sesión con las credenciales del IdP.
  4. Si la autenticación es exitosa, el usuario ingresará automáticamente a Fracttal.