Keycloak IdP
Introducción
Single Sign-On (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 someterse al procedimiento de autenticación en uno de los servicios y automáticamente obtener acceso a todos los demás servicios sin ingresar las 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 (también llamados 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 Keycloak.
Creando un IdP en Keycloak
-
Inicia sesión en Keycloak como administrador.
-
Ve a Gestionar dominios y selecciona el dominio donde se configurará la conexión.
-
Ve a Clientes y haz clic en el botón Crear cliente.
-
En la página que se abre, establece lo siguiente: En el campo Tipo de cliente, selecciona SAML. En el campo ID del cliente, ingresa
https://myportal-address.com/sso/metadata, reemplazando myportal-address.com con el nombre de dominio de tu espacio de trabajo. En los campos Nombre y Descripción, ingresa cualquier nombre y descripción para el cliente.
-
Haz clic en el botón Siguiente.
-
Completa los siguientes campos:
notaReemplaza
myportal-address.comcon el nombre de dominio de tu espacio de trabajo.Detalles de la aplicación URL raíz https://myportal-address.com/ssoURL de inicio https://myportal-address.com/ssoURIs de redirección válidos https://myportal-address.com/sso/slo/callbackhttps://myportal-address.com/sso/acsURIs de redirección válidos después de cerrar sesión https://myportal-address.com/sso/slo/callbackURL de procesamiento SAML principal https://myportal-address.com/sso/acs
Completa los siguientes campos en la pestaña Avanzado:
URL de enlace POST del servicio de consumidor de aserciones https://myportal-address.com/sso/acsURL de enlace de redirección del servicio de consumidor de aserciones https://myportal-address.com/sso/acsURL de enlace POST del servicio de cierre de sesión https://myportal-address.com/sso/slo/callbackURL de enlace de redirección del servicio de cierre de sesión https://myportal-address.com/sso/slo/callback
-
Haz clic en el botón Guardar.
-
En la sección Capacidades SAML, establece Formato de ID de nombre en correo electrónico.
-
En la sección Firma y Cifrado, habilita la opción Firmar Aserciones y selecciona un algoritmo de firma: RSA_SHA1, RSA_SHA256 o RSA_SHA512.
-
Haz clic en el botón Guardar.
-
Ve a la sección Ámbitos del cliente y haz clic en el enlace con el nombre de tu espacio de trabajo
https://myportal-address.com/sso/metadata-dedicated.Haz clic en el botón Agregar mapeadores predefinidos, y en la ventana emergente, selecciona los siguientes mapeadores:
- X500 email
- X500 givenName
- X500 surname
Luego haz clic en el botón Agregar.

Configurando ONLYOFFICE SP
-
Asegúrate de haber iniciado sesión como Administrador en tu espacio de trabajo de ONLYOFFICE Apps y ve al menú Configuración, selecciona la sección Integración y abre la pestaña Single Sign-On.
-
Habilita SSO usando el interruptor Habilitar autenticación de Single Sign-on y pega
https://<keycloakurl>/realms/<realm_name>/protocol/saml/descriptoren el campo URL para el XML de metadatos de IdP. Reemplaza<keycloakurl>y<realm_name>con la dirección de tu servidor Keycloak y el nombre del dominio donde se creó la conexión. El enlace final debe ser accesible desde un navegador.
-
Presiona el botón con la flecha hacia arriba para cargar los metadatos de IdP. El formulario de configuración del proveedor de servicios de ONLYOFFICE se completará automáticamente con tus datos del IdP de Keycloak.
-
Selecciona el mismo Algoritmo de Verificación de Firma Predeterminado que el especificado en Keycloak.
-
Cambia el Formato de NameId a emailAddress.
-
Ahora necesitas crear un certificado en la sección Certificados SP. Para hacerlo, haz clic en el botón Agregar certificado.
-
En la ventana modal que se abre, haz clic en el enlace Generar nuevo certificado autofirmado, y elige la opción firmar y cifrar en la lista Usar para. Antes de guardar el certificado, copia el texto del Certificado Público al portapapeles y guárdalo en un archivo (será necesario para Keycloak), luego haz clic en el botón OK.

-
Ve a la sección Mapeo de Atributos y asigna los siguientes valores a los atributos:
- Nombre: urn:oid:2.5.4.42
- Apellido: urn:oid:2.5.4.4
- Email: urn:oid:1.2.840.113549.1.9.1
En la sección 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.
Si necesitas restaurar la página de autenticación predeterminada (para poder acceder al espacio de trabajo si tu servidor IdP falla), puedes agregar la clave /login?skipssoredirect=true después del nombre de dominio de tu espacio de trabajo en la barra de direcciones del navegador.
-
Haz clic en el botón Guardar.
-
Regresa a Keycloak para configurar el cifrado, abre tu cliente y ve a la sección Claves. Desactiva la opción Firma de cliente requerida y activa Cifrar afirmaciones. En la ventana emergente, selecciona Importar, establece el Formato de archivo en Certificado PEM y haz clic en el botón Examinar. Especifica la ruta al archivo de certificado desde el paso 7 y haz clic en Confirmar.
Comprobando el funcionamiento del ONLYOFFICE SP con el IdP de Keycloak
-
Ve a la página de autenticación de ONLYOFFICE Apps (por ejemplo,
https://myportal-address.com/login). -
Haz clic en el botón Inicio de sesión único. Si el botón no está, 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 IdP de Keycloak:

-
Introduce el usuario y la contraseña del usuario de Keycloak y haz clic en el botón Iniciar sesión.
-
Si las credenciales son correctas, serás redirigido a la página principal del espacio de trabajo (el usuario se creará automáticamente si falta, o los datos se actualizarán si han cambiado en el IdP).
