Configuración de ONLYOFFICE SP e IdP AD FS
Introducción
Inicio de sesión único (SSO) es una tecnología que permite a los usuarios iniciar sesión solo una vez y luego obtener acceso a múltiples aplicaciones/servicios sin necesidad de autenticarse nuevamente.
Si un portal web incluye varias secciones grandes e independientes (foro, chat, blogs, etc.), un usuario puede realizar el procedimiento de autenticación en uno de los servicios y automáticamente obtener acceso a todos los demás servicios sin ingresar credenciales varias veces.
El SSO siempre se garantiza mediante la operación conjunta de dos aplicaciones: un Proveedor de Identidad y un Proveedor de Servicios (en adelante denominados "IdP" y "SP"). ONLYOFFICE SSO implementa solo el SP. Muchos proveedores diferentes pueden actuar como IdP, pero este artículo considera la implementación de Active Directory Federation Services (AD FS).
Si deseas usar SSO al conectar ONLYOFFICE Desktop Editors a tu ONLYOFFICE Workspace, desactiva Salas Privadas en el Panel de Control.
Requisitos del sistema
Los requisitos del sistema incluyen el siguiente software que ha sido probado y se ha demostrado que funciona correctamente con ONLYOFFICE SSO:
- Windows Server 2008 R2, Windows Server 2016;
- AD FS versión 3.0 o posterior.
Preparación de ONLYOFFICE Workspace para la configuración de SSO
- Instala ONLYOFFICE Workspace para Docker o cualquier versión posterior con soporte para SSO (AD FS es compatible a partir de Community Server v9.5).
- Agrega un nombre de dominio, por ejemplo,
myportal-address.com. - En tu portal, ve al Panel de Control > HTTPS, crea y aplica el certificado letsencrypt para el cifrado del tráfico (para habilitar HTTPS en tu portal).
Preparación de AD FS para la configuración de SSO
-
Instala la última versión de AD DS (Servicio de Dominio de Active Directory) con todas las actualizaciones y parches oficiales.
-
Instala la última versión de AD FS con todas las actualizaciones y parches oficiales.
Para implementar AD FS desde cero, puedes usar las siguientes instrucciones.
-
Verifica que el enlace a los metadatos de AD FS esté públicamente disponible. Para hacerlo,
-
En el Administrador del Servidor, abre Herramientas > Administración de AD FS,
-
Ve a AD FS \ Servicio \ Puntos de conexión,
-
Encuentra la fila con el tipo Metadatos de Federación en la tabla. El enlace a los metadatos de IdP se construye bajo el siguiente esquema:
https://{ad-fs-domain}/{path-to-FederationMetadata.xml}
Alternativamente, puedes usar el siguiente comando de PowerShell:
PS C:\Users\Administrator> (Get-ADFSEndpoint | Where {$_.Protocol -eq "FederationMetadata" -or $_.Protocol -eq "Federation Metadata"}).FullUrl.ToString()Como resultado, deberías obtener un enlace que se vea así:
https://onlyofficevm.northeurope.cloudapp.azure.com/FederationMetadata/2007-06/FederationMetadata.xml -
Para verificar que AD FS se haya iniciado correctamente, abre el enlace recibido en un navegador web. El xml debería mostrarse o descargarse. Copia el enlace al xml de metadatos: se requerirá en el siguiente paso.
-
Configuración de ONLYOFFICE SP
-
Asegúrate de haber iniciado sesión como Administrador en tu Panel de Control de ONLYOFFICE y haz clic en la pestaña SSO en la sección CONFIGURACIÓN DEL PORTAL en la barra lateral izquierda.
notaSolo puedes registrar un proveedor de identidad empresarial para tu organización en el portal de ONLYOFFICE.

-
Habilita SSO usando el interruptor Habilitar autenticación de inicio de sesión único y pega el enlace copiado de AD FS en el campo URL al XML de metadatos de IdP.

Presiona el botón con la flecha hacia arriba para cargar los metadatos de IdP. El formulario de Configuración de ONLYOFFICE SP se completará automáticamente con tus datos del IdP de AD FS.
-
En el campo Título del botón de inicio de sesión personalizado, puedes ingresar cualquier texto en lugar del predeterminado (Inicio de sesión único). Este texto se mostrará en el botón utilizado para iniciar sesión en el portal con el servicio de inicio de sesión único en la página de autenticación de ONLYOFFICE.
-
En el selector Formato de NameID, elige el siguiente valor: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress.
-
En la sección Certificados Públicos de IdP \ Configuración avanzada, desmarca la opción Verificar firma de respuesta de cierre de sesión, ya que AD FS no lo requiere por defecto.

-
Ahora necesitas agregar certificados a la sección Certificados de SP. Puedes generar certificados autofirmados o agregar cualquier otro certificado.
notaEn la ventana Nuevo Certificado, cambia el selector Usar para a la opción firmar y cifrar, ya que el IdP de AD FS está configurado automáticamente para verificar firmas digitales y cifrar datos.

Deberías obtener un resultado casi idéntico:

-
En Certificados SP \ Configuración avanzada, desmarca la opción Firmar respuestas de cierre de sesión, ya que AD FS no lo requiere por defecto.
notaNo es necesario ajustar el formulario de Mapeo de Atributos, ya que configuraremos estos parámetros en el AD FS IdP más adelante. En la sección de Configuración Avanzada, puedes marcar la opción Ocultar página de autenticación para ocultar la página de autenticación predeterminada y redirigir automáticamente al servicio SSO.
ImportanteSi necesitas restaurar la página de autenticación predeterminada (para poder acceder al portal si tu servidor IDP falla), puedes añadir la clave
/Auth.aspx?skipssoredirect=truedespués del nombre de dominio de tu portal en la barra de direcciones del navegador. -
Haz clic en el botón Guardar. Se debería abrir la sección de Metadatos de ONLYOFFICE SP.

Verifica que nuestras configuraciones estén públicamente disponibles haciendo clic en el botón Descargar XML de Metadatos SP. Debería mostrarse el contenido del archivo XML.
-
Copia el enlace a los metadatos de ONLYOFFICE SP desde el campo ID de Entidad SP (enlace al XML de metadatos) y dirígete a la máquina donde está instalado AD FS.

Configuración de AD FS IdP
-
Habilita la autenticación fuerte para aplicaciones .NET.
Las aplicaciones del .NET Framework 3.5/4.0/4.5.x pueden cambiar el protocolo predeterminado a TLS 1.2 habilitando la clave de registro
SchUseStrongCrypto. Esta clave de registro obligará a las aplicaciones .NET a usar TLS 1.2.notaPara AD FS en Windows Server 2016 y Windows Server 2012 R2 necesitas usar la clave del .NET Framework 4.0/4.5.x: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319
Para el .NET Framework 3.5 utiliza la siguiente clave de registro:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SchUseStrongCrypto"=dword:00000001Para el .NET Framework 4.0/4.5.x utiliza la siguiente clave de registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 "SchUseStrongCrypto"=dword:00000001
Alternativamente, puedes usar el siguiente comando de PowerShell:
New-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-NullPara más detalles, por favor consulta este artículo.
-
En el Administrador del Servidor, abre Herramientas > Administración de AD FS,

-
En el panel de Administración de AD FS, selecciona Relaciones de Confianza > Confianzas de Terceros de Confianza. Haz clic en la opción Agregar Tercero de Confianza... a la derecha. Se abrirá el Asistente para Agregar Tercero de Confianza,

-
En la ventana del asistente, selecciona el botón de opción Importar datos sobre el tercero de confianza publicados en línea o en una red local, pega el enlace previamente copiado a los metadatos de ONLYOFFICE SP en el campo Dirección de metadatos de federación (nombre de host o URL) y haz clic en el botón Siguiente,

-
En el campo Nombre para mostrar, especifica cualquier nombre y haz clic en el botón Siguiente,

-
Selecciona la opción No quiero configurar configuraciones de autenticación multifactor para este tercero de confianza en este momento y haz clic en el botón Siguiente,

-
Selecciona la opción Permitir a todos los usuarios acceder a este tercero de confianza y haz clic en el botón Siguiente,

-
Verifica la configuración resultante y haz clic en el botón Siguiente,

-
Deja la opción predeterminada sin cambios y haz clic en el botón Cerrar,

-
Se abre una nueva ventana. En la pestaña Reglas de Transformación de Emisión, haz clic en el botón Agregar Regla...,

-
Selecciona la opción Enviar Atributos LDAP como Reclamaciones de la lista Plantilla de regla de reclamación y haz clic en el botón Siguiente,

-
Escribe cualquier nombre en el campo Nombre de la regla de reclamación. Selecciona la opción Active Directory de la lista Almacén de atributos y completa el formulario Mapeo de atributos LDAP a tipos de reclamación salientes según la tabla a continuación. Cuando esté listo, haz clic en Finalizar.
Atributo LDAP (Seleccione o escriba para agregar más) Tipo de Reclamación Saliente (Seleccione o escriba para agregar más) Given-Name givenName Surname sn E-Mail-Addresses mail Telephone-Number mobile Title title physicalDeliveryOfficeName l 
-
En la ventana Editar Reglas de Reclamación, haz clic nuevamente en el botón Agregar Regla..., selecciona la opción Transformar una Reclamación Entrante de la lista Plantilla de regla de reclamación y haz clic en el botón Siguiente,

-
Escribe cualquier nombre en el campo Nombre de la regla de reclamación y selecciona las siguientes opciones de las listas:
- Tipo de reclamación entrante: mail,
- Tipo de reclamación saliente: Name ID,
- Formato de nombre ID saliente: Email

Cuando esté listo, haz clic en el botón Finalizar.
Deberías obtener un resultado casi idéntico:

Si el cierre de sesión de AD FS no funciona, se recomienda agregar una Regla de Reclamación Personalizada reemplazando
{portal-domain}con tu dominio SP y cambiando{ad-fs-domain}a tu dominio IdP:c:[Type == "mail"]=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/namequalifier"] = "http://{ad-fs-domain}/adfs/services/trust", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/spnamequalifier"] = "https://{portal-domain}/sso/metadata");
-
Haz clic en el botón OK.
-
Para que el SSO funcione desde la intranet, necesitas habilitar la opción Autenticación de formularios en la Editar política de autenticación global (menú contextual AD FS / Políticas de autenticación),

-
Abre las propiedades de la relación de confianza creada y cambia a la pestaña Avanzado,

Selecciona la opción SHA-1 en la lista de Algoritmo de hash seguro.

Comprobando el funcionamiento de ONLYOFFICE SP con AD FS IdP
Iniciar sesión en ONLYOFFICE desde el lado SP
-
Ve a la página de Autenticación de ONLYOFFICE (por ejemplo,
https://myportal-address.com/auth.aspx). -
Haz clic en el botón Inicio de sesión único (el texto puede variar si especificaste tu propio texto al configurar ONLYOFFICE SP). Si el botón no está presente, significa que el SSO no está habilitado.

-
Si todos los parámetros de SP e IdP están configurados correctamente, serás redirigido al formulario de inicio de sesión de AD FS IdP:

-
Introduce el usuario y la contraseña de la cuenta de AD FS IdP y haz clic en el botón Iniciar sesión.
-
Si las credenciales son correctas, serás redirigido a la página principal del portal. El usuario se creará automáticamente si no existe, o los datos se actualizarán si han cambiado en el IdP.
Perfiles para usuarios añadidos con autenticación SSO
La posibilidad de editar perfiles de usuario creados mediante autenticación SSO está restringida. Los campos del perfil de usuario recibidos del IdP están deshabilitados para edición (es decir, Nombre, Apellido, Email, Título y Ubicación). Puedes editar estos campos solo desde tu cuenta IdP.
La figura a continuación muestra el menú de Acciones para un usuario SSO:

La siguiente figura muestra un perfil de usuario SSO abierto para edición:

Los usuarios creados mediante autenticación SSO están marcados con el icono SSO en la lista de usuarios para los administradores del portal:
