Configurar SAML con Microsoft ADFS

Antes de que empieces

Antes de comenzar, debe generar certificados digitales para cifrar la conexión SAML y cargarlos en LogicalDOC.

  1. Puede utilizar el script Bash del repositorio logicaldoc/scripts en GitHub, o cualquier otro método adecuado.
  2. Guarde los dos archivos que se generan. Son la clave privada y la clave pública. En el panel de configuración de SAML, se los denomina Clave privada del SP y Certificado del SP, respectivamente.

También debe asegurarse de utilizar LogicalDOC sobre HTTPS porque ADFS no aceptará a un Relying Party HTTP.

Preparar LogicalDOC

  1. Habilite el Single Sign-On SAML en Administración > Seguridad > Sign-On SAML.
  2. En el campo Entity ID del SP, coloque un identificador único (puede colocar aquí la misma URL que usa normalmente para conectarse a LogicalDOC, por ejemplo, https://localhost:9443).
  3. Habilite tanto la firma de los mensajes AuthnRequest como el cifrado de las aserciones recibidas.
  4. Elija SHA-256 como Algoritmo de la firma.
  5. Cargue el Certificado del SP y la Clave privada del SP generados antes, en los campos correspondientes.
  6. En el formulario Asignaciones de atributos, prepare las siguientes asignaciones:
    • En Nombre usuario, escriba username
    • En Nombre, escriba firstName
    • En Apellido, escriba lastName
    • En Email, escriba email
    • En Grupos, escriba groups

    Haga clic en Guardar para confirmar toda la configuración.

    SAML Panel
  7. Exporte el archivo de metadatos del Proveedor de Servicios haciendo clic en la URL que se muestra en el campo Metadatos del SP. Luego utilizará este archivo en ADFS más adelante.

Ahora ha completado la configuración de LogicalDOC y puede abordar la configuración de ADFS.

Requisitos previos

  • Una instancia de Active Directory donde todos los usuarios han especificado atributos de correo electrónico y nombre de usuario.
  • Un Microsoft Server ejecutando.
  • Un certificado SSL para firmar su página de Single Sign-On de ADFS.
  • ADFS instalado en su Microsoft Server. Puede encontrar una guía detallada para implementar y configurar ADFS en este artículo.

En su instalación de ADFS, abra la consola de ADFS. Seleccione Service, luego seleccione Endpoints. En la columna Type , busque SAML 2.0/WS-Federation y anote el valor de la columna URL Path. En esta guía, esto también se conoce como SAML SSO URL Endpoint. Si elige los valores predeterminados para la instalación, este será /adfs/ls

Agregar un relying party trust

  1. Abra la administración de ADFS y luego seleccioneAD FS > Relying Party Trusts > Add Relying Party Trust en la barra lateral derecha. También puede hacer clic con el botón derecho en Relying Party Trusts y luego seleccionar Add Relying Party Trust en el menú contextual.

    Relaying party
  2. En la pantalla de bienvenida del asistente de configuración, seleccione Claims aware y luego seleccione Start.

    Relaying party
  3. En la pantalla Select Data Source, seleccione Import data about the relying party from a file. Elija aquí el mismo archivo de metadatos obtenido en el paso 7 de preparación de LogicalDOC.

    Relaying party
  4. En la pantalla Specify Display Name, ingrese un Display Name (por ejemplo, LogicalDOC ).

    Relaying party
  5. En la pantallaChoose Access Control Policy, seleccione la política de control de acceso adecuada para su entorno. Esta guía asume los valores predeterminados Permit everyone.

    Relaying party
  6. En la pantalla Ready to Add Trus, revise su configuración.

    Relaying party
  7. En la pantalla Finish , seleccione Configure claims issuance policy for this application y luego seleccione Close.

    Relaying party

Crear claim rules

  1. En la pestaña Issuance Transform Rules, seleccione Add Rule….

    Claim rules
  2. En la pantalla Choose Rule Type, seleccione Send LDAP Attributes as Claim en el menú desplegable y luego seleccione Next.

    Claim rules
  3. En la pantalla Configure Claim Rule, ingrese el Claim Rule Name de su elección (p. ej.: logicaldoc), seleccione Active Directory como Attribute Store y luego agregue la siguiente asignación:

    • En la columna LDAP Attribute, seleccione E-Mail-Addresses. En Outgoing Claim Type, escriba email
    • En la columna LDAP Attribute, seleccione Given-Name. En Outgoing Claim Type, escriba fistName
    • En la columna LDAP Attribute, seleccione Surname. En Outgoing Claim Type, escriba lastName
    • En la columna LDAP Attribute, seleccione SAM-Account-Name. En Outgoing Claim Type, escriba username
    • En la columna LDAP Attribute, seleccione Token-Groups - Unqualified Names. En Outgoing Claim Type, escriba groups

    Seleccione Finish para agregar la regla.

    Las entradas en la columna Outgoing Claim Type se pueden modificar. Las entradas pueden contener guiones pero no espacios. Se utilizan para asignar los campos correspondientes en LogicalDOC.

    Claim rules
  4. Seleccione Add Rule para crear otra regla nueva.

  5. En la pantalla Choose Rule Type, seleccione Transform an Incoming Clai en el menú desplegable y luego seleccione Next.

    Claim rules
  6. En la pantalla Configure Claim, ingrese un Claim Rule Name de su elección y luego:

    • Seleccione UPN para el Incoming claim type
    • Seleccione Name ID para el Outgoing claim type
    • Seleccione Email para el Outgoing name ID format

    Seleccione Pass through all claim values y luego seleccione Finish.

    Claim rules
  7. Seleccione Finish para crear la regla de notificación y luego seleccione OK para terminar de crear las reglas.

  8. Abra Windows PowerShell como administrador y luego ejecute el siguiente comando:

    Set-ADFSRelyingPartyTrust -TargetName LogicalDOC -SamlResponseSignature "MessageAndAssertion"
    donde LogicalDOC es el nombre que especificó en el paso 4 cuando agregó el relaying party trust.

    Esta acción agrega la firma a los mensajes SAML, lo que hace que la verificación sea exitosa.

Exportar metadatos del proveedor de identidad

A continuación, exporte los metadatos del proveedor de identidad, que luego se cargarán en LogicalDOC para finalizar la configuración de SAML.

  1. En el panel de navegación izquierdo, expanda AD FS > Servicey luego haga clic en Endpoints.

  2. En el panel derecho, en Endpoints > Metadata, en la fila Federation Metadata, copie la ruta URL.

    Por ejemplo, copiar FederationMetadata/2007-06/FederationMetadata.xml

    Claim rules
  3. Agregue el nombre de host del servidor AD FS a la ruta URL que copió de la siguiente manera:

    https://nombre_host/FederationMetadata/2007-06/FederationMetadata.xml

  4. Para recuperar los metadatos del IdP(proveedor de identidad), en un navegador, pegue la URL completa.

  5. Vaya a LogicalDOC en Administración > Seguridad > Single Sign-On SAML y cargue el archivo de metadatos del proveedor de identidad en el campo Metadatos del IdP.

    Haga clic en el botón Guardar para confirmar todo.

Pruebe el login

Para comprobar si todo estaba configurado correctamente, puede intentar iniciar sesión desde LogicalDOC actuando como proveedor de servicios.

  1. Vaya a LogicalDOC en Administración > Seguridad > Single Sign-On SAML y copie el enlace del campo Ingresar (es la URL base de LogicalDOC seguida de /saml/login).
  2. Abra un navegador diferente y pegue la URL y será redirigido a la página de inicio de sesión de ADFS.
  3. Aquí ingrese las credenciales de un usuario en su Active Directory y debería iniciar sesión directamente en LogicalDOC.