Skip to main content

Autenticación de Dos Factores (2FA)

Actualmente, se recomienda la autenticación de dos factores para asegurar el inicio de sesión en los servicios de Internet y proteger contra los ataques de phishing y el robo de credenciales. Esta autenticación genera códigos de verificación en dos pasos para los usuarios en sus dispositivos, por lo que aumenta la seguridad de su cuenta al requerir un segundo paso de verificación en el momento del acceso.

La autenticación de dos factores dificulta que los piratas informáticos accedan a las cuentas en línea y a los dispositivos de las personas debido a su avanzado nivel de seguridad. No es suficiente reconocer la contraseña de la víctima para pasar la verificación de autenticación. Para evitar que los datos de sus usuarios provengan de hackers, los servicios en línea están introduciendo progresivamente 2FA. La autenticación de dos factores es responsable de acceder y controlar los datos y sistemas sensibles.

LogicalDOC admite la autenticación de dos factores que integra el uso más común de las tecnologías 2FA como Goole Authenticator, Yubikey o Duo.

Una vez que se habilita la autenticación de dos factores, después de completar las credenciales, puede aparecer un segundo panel de login que le pedirá ingresar la clave del segundo factor:

1   2

 

Active esta función en Administración > Seguridad > Autenticación de Dos Factores y también habilite los autenticadores que desea soportar.

Una vez hecho esto, cada usuario puede habilitar el 2FA utilizando el menú Cuenta > Seguridad > Autenticación de Dos Factores.

En cualquier caso, el administrador puede forzar el 2FA en usuarios específicos. Para hacerlo, ingrese Administración > Seguridad > Usuarios y haga clic derecho en un usuario, luego elija Autenticación de Dos Factores.

En la ventana emergente, elija un autenticador y siga las indicaciones. Tenga en cuenta que, en general, los autenticadores requieren la presencia física del dispositivo de autenticación.

Autenticación de dos factores con Duo

Si elige Duo como su autenticación de dos factores, debe configurar la conexión a la API de Duo. Una guía detallada de Duo está disponible aquí: https://duo.com/docs/protecting-applications

En primer lugar entra en el panel de administración de Duo, ve a Applications y haz clic en Protect an Application.

Duo admin panel

En la página siguiente, seleccione Duo Auth API:

Duo protect and application
 

Ahora obtienes las configuraciones que debes copiar y pegar en el panel de configuración de Duo en la administración de LogicalDOC:

API security

También puede dar un nombre a la aplicación en Duo, sugerimos usar LogicalDOC:

API settings

Al final, haga clic en Save para confirmar todo.

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.

Autenticación externa

La aplicación es capaz de manejar la autenticación de los usuarios interactuando con sistemas externos, además de la autenticación estándar. Podemos autenticar a sus usuarios de los sistemas de ActiveDirectory y LDAP.
Por favor ingrese la sección Administración > Seguridad > Autenticación externa

Aquí puede configurar la conexión a un conjunto de servidores LDAP y/o AD:

  • URL: URL completa de conexión con el servidor de autenticación externo, incluyendo el número de puerto (para ActiveDirectory es 389)
  • Usuario: nombre del usuario que puede realizar búsquedas dentro de su LDAP/ActiveDirectory (para ActiveDirectory tiene que poner el nombre canónico del usuario)
  • Contraseña: contraseña para conectarse
  • Nodo raíz de los usuarios: nombre canónico del nodo raíz donde se encuentran los usuarios (que puede definir más nodos separados por punto y coma ';')
  • Nodo raíz de los grupos: nombre canónico del nodo raíz donde se encuentran los grupos (que puede definir más nodos separados por punto y coma ';')
  • Filtros inclusión / exclusión Usuarios: listas separadas por comas de expresiones para restringir los nombres de usuarios para permitir, es: inclusión: usr*,user* exclusión: sysem*,Administrator,Sysadmin
  • Filtros inclusión / exclusión Grupos: listas separadas por comas de expresiones para restringir los nombres de grupo para permitir, es: inclusión: grp*,group*,staff    exclusión: Admin*,Power*
  • Mantener la membresía en grupos locales: si está habilitada, las membresías que defina en LogicalDOC se retendrán; de lo contrario, serán sobrescritas por las especificadas en el servidor LDAP o AD
  • Fuera de tiempo: tiempo máximo para esperar una respuesta del servidor de autenticación
  • Sincronizar si es mayor de: número de horas después de las cuales el perfil del usuario local se actualiza con los datos actuales del directorio (0 significa sincronizar siempre, -1 significa nunca sincronizar)
  • Validación: una rutina de automatización que se invoca cada vez que un usuario está a punto de ser autenticado a través del LDAP para decidir si debe autenticarse o no, o para realizar más elaboraciones sobre el propio usuario. La rutina de automatización recibirá la variable ldapUser, use la bandera booleana ldapUser.valid para marcar al usuario como autorizado o no.

Diccionario disponible para la Automatización en este contexto.

CONTEXTO DE AUTOMATIZACIÓN: AUTENTICACIÓN EXTERNA
VariableClase JavaDescripción
ldapUser

LDAPUser

el usuario siendo autenticado

Lea el manual de la Automatización para más información.

Para comprobar si los parámetros de conexión son correctos, haga clic en Test de conexión.

Una vez que haya conectado el directorio externo, haga clic en Guardar para hacer persistentes los cambios.

Autenticación en la linea

La próxima vez que un usuario intenta iniciar sesión en LogicalDOC, será autenticado en su LDAP/ActiveDirectory primero y si el proceso finaliza correctamente, el perfil del usuario (pero no la contraseña) también se importa automáticamente en LogicalDOC.

Los usuarios importar manualmente

De vez en cuando es posible que desee importar manualmente un nuevo usuario del LDAP/ActiveDirectory, en este cas  abra la ficha Navegador y aquí abajo, haga clic en Buscar para encontrar todos los usuarios ubicados en cualquier nivel por debajo del nodo raíz configurado.

Haga clic derecho sobre el usuario que desea importar y seleccione Importar. Cuando se importa el usuario, los grupos que el integra (y que están por debajo del nodo raíz de los grupos que configuró antes) se importan también.

Políticas de seguridad

Cuando el usuario se importa la primera vez, tendrá que configurar los permisos suyos y/o sus grupos en LogicalDOC. Por defecto, el usuario importado tiene los mismos permisos concedidos al grupo guest.

Implicaciones de seguridad

LogicalDOC necesita recuperar la información del perfil del usuario de LDAP (correo electrónico, teléfono, etc.), por lo que requiere la serialización. Utilice únicamente servidores LDAP de confianza y, en cualquier caso, conéctese a ellos con credenciales de permiso de solo lectura.

Active Directory

Haga clic en Active Directory para iniciar un pequeño asistente que aplica algunos parámetros estándar adecuadas para conectar a un servidor de dominio de AD.

Single Sign-on

El Servicio de Autenticación Central (CAS) es el protocolo de inicio de sesión único más utilizado en la web. Está destinado a proporcionar a los usuarios acceso a múltiples aplicaciones a la vez que les proporciona sus credenciales (como usuario y contraseña) solo una vez. También permite que las aplicaciones web autentiquen usuarios sin tener acceso a las credenciales de seguridad de un usuario, como una contraseña. El nombre CAS también se refiere a un paquete de software que implementa este protocolo.

Antes que nada deberías leer sobre cómo funciona CAS:  A detailed walk through a CAS authentication

De acuerdo con la documentación de CAS, solo funciona en conexiones HTTPS seguras. Por este motivo, debe utilizar LogicalDOC a través de HTTPS. Acceda a https://localhost:8443 para comprobar que funciona bien.

Si no tiene un servidor CAS ya instalado para su empresa, le sugerimos que descargue e instale esta implementación: https://www.apereo.org/projects/cas

Para configurar el single sign-on en LogicalDOC eter la sección Administración > Seguridad > Single Sign-on

En el siguiente formulario, debe habilitar la función y conectar LogicalDOC a su servicio CAS:

  • Url de la aplicación: la URL que utilizará el servidor CAS para llegar a LogicalDOC
  • Url CAS: la URL que utilizará el servidor LogicalDOC para llegar al servidor CAS
  • URL de inicio de sesión de CAS: la URL del formulario de inicio de sesión alojado por el servidor CAS
  • Grupo: grupo asignado a usuarios nuevos autenticados a través del CAS
  • Idioma: idioma asignado a usuarios nuevos autenticados a través del CAS

Una vez que se active el inicio de sesión único, debe acceder a LogicalDOC en esta url: https://localhost:8443/frontend

Si aún no está autenticado, será enrutado a la página de inicio de sesión del servidor CAS.

Info

Incluso si habilita el single sign-on, la página de inicio de sesión estándar en https://localhost:8443/login continúa disponible y funciona de la forma habitual.