Este artículo te guiará sobre cómo conectar a tus usuarios con SSO a nuestra plataforma utilizando SAML 2.0. Esta función sólo está disponible para clientes empresariales.
Este artículo cubre la integración SSO con nuestra plataforma basada en un ejemplo con Okta.
Este post contiene detalles técnicos para administradores IAM o para tu departamento de TI que gestione el IDP. Por favor, ponte en contacto con un experto en TI para que te ayude a configurar la conexión SSO.
¿Qué es el SSO?
SSO significa Inicio de sesión único. Es un proceso de autenticación que permite a un usuario acceder a varios servicios, como nuestra plataforma de Código QR, con un conjunto de credenciales de inicio de sesión (como nombre de usuario y contraseña). Con el SSO, los usuarios no tienen que recordar contraseñas diferentes para cada aplicación que utilicen, lo que agiliza el proceso de inicio de sesión y mejora la seguridad al reducir la necesidad de múltiples credenciales. Una vez autenticado, el usuario puede navegar entre varias aplicaciones o servicios sin necesidad de volver a iniciar sesión.
¿Qué es SAML 2.0?
SAML son las siglas de Security Assertion Markup Language. Es un marco de trabajo basado en XML que se utiliza para intercambiar datos de autenticación y autorización entre las partes, en particular entre un proveedor de identidad (IDP) y un proveedor de servicios (SP).
Cómo funciona la Integración
En esta configuración de SSO, tu empresa actúa como Proveedor de Identidad (IDP) que nos proporciona los datos de los usuarios. Nuestra Plataforma de Marca Blanca actúa como Proveedor de Servicios (PS) que recibe los datos de los usuarios y les da acceso a nuestro sistema.
En tu sistema IDP vas a añadir nuestra Plataforma de Marca Blanca como un Cliente
La información básica sobre tu IDP y nuestro SP se intercambiará a través de las llamadas URL descriptoras. Detrás de estas URL hay archivos que describen el IDP o el SP con detalles para que la otra parte los procese automáticamente y ayuden en la configuración.
La información del usuario se va a enviar a través de un mensaje SAML 2.0. En este mensaje los datos se codifican en Atributos. Al enviar la información desde tu IDP, un Mapeador de salida está mapeando los campos internos de tu IDP, como nombre, apellidos, correo electrónico, etc. a Atributos SAML 2.0.
Cuando recibimos tu mensaje SAML 2.0 nuestro Mapeador de entrada transforma el Atributo SAML 2.0 de nuevo a nuestro formato interno e iniciaremos la sesión del usuario en nuestra plataforma.
1. Entra en tu cuenta
Ve a nuestro sitio web e inicia sesión en tu cuenta de marca blanca. Una vez iniciada la sesión, ve a la configuración de tu Cuenta y selecciona la pestaña SSO
2. Elige el tipo de SSO
Cuando te registras con un usuario de tu empresa en nuestra plataforma puedes elegir cómo puede acceder este usuario a la plataforma. Hay 2 escenarios diferentes posibles:
- El usuario inicia sesión como usuario de marca blanca 1:1
- El usuario puede iniciar sesión bajo diferentes usuarios de marca blanca 1:n
Para continuar con la configuración de la conexión SSO debes elegir primero un Tipo SSO
Para que entiendas los conceptos lo más rápidamente posible, utilizaremos un ejemplo durante este artículo. Hagamos las siguientes suposiciones:
- Los usuarios Adam, Eve y Steve trabajan en tu empresa y necesitan acceder a la Plataforma Marca Blanca.
- Estás utilizando Okta como Proveedor de Identidad (IDP) en tu empresa. Si no tienes Okta sino otro IDP no tienes por qué preocuparte. Aunque los pasos no sean completamente iguales, serán bastante similares.
Crear Usuario (1:1)
Selecciona Usuario si quieres que a un usuario de tu Proveedor de Identidad (="Usuario IDP") se le asigne exactamente un (1:1) usuario marca blanca individual.
Cuando un Usuario IDP inicie sesión por primera vez, se creará el correspondiente Usuario Marca Blanca. En el ejemplo anterior, el Usuario PDI Adán se creará como Usuario Marca Blanca Adán cuando se registre por primera vez.
Crear Subcuenta (1:n)
En este escenario, supongamos como ejemplo que la plataforma de Marca Blanca tiene un usuario para el departamento de Marketing y otro para el departamento de Servicio al cliente.
Selecciona Subcuenta si quieres que un usuario de tu Proveedor de Identidad (="Usuario IDP") se mapee a uno o más (1:n) usuarios de marca blanca.
En el ejemplo anterior, los usuarios IDP Adam y Eve pueden utilizar los Usuarios Marca Blanca Marketing y Servicio al Cliente. El Usuario IDP Steve sólo puede utilizar el Usuario Marca Blanca Servicio al Cliente
Antes de que se puedan utilizar a través de SSO asegúrate de que estos dos usuarios están creados en la Plataforma de Marca Blanca creándolos a través del menú Usuarios en la parte izquierda y luego Crear Usuario.
Después de la creación, la lista de Usuarios debería tener este aspecto:
Inspiración: Los Usuarios de Marca Blanca no tienen por qué estar basados en un departamento como Marketing o Atención al Cliente. Sólo usamos esto aquí
como ejemplo.
También es bastante común que haya un Usuario Marca Blanca distinto para cada
- País (Austria, España, Italia, Brasil, etc.) y/o
- Marca (MarcaA, MarcaB, MarcaC, etc.) y/o
- Línea de productos (Zapatos, Camisas, Chaquetas, etc.)
El caso de uso puede ser diferente para cada empresa. Por tanto, piensa en cómo tendría más sentido para tu empresa.
Un Usuario IDP actuará entonces como un líder de equipo y podrá elegir bajo qué usuario de marca blanca quiere registrarse. Así, Adán y Eva pueden elegir si quieren registrarse como usuario de marca blanca Marketing o Servicio al cliente
3. Introduce la URL del Descriptor IDP SAML 2.0
Después de haber elegido el Tipo SSO, tienes que introducir la URL del Descriptor IDP SSO de tu Proveedor de Identidades. Esto es necesario para que podamos obtener información básica sobre cómo conectar y autenticar a tus usuarios con SAML 2.0.
4. Configura las URL del Servicio de Proveedor de Identidad
Una vez que hayas introducido la URL del Descriptor IDP OSSO, las URL de los servicios se extraen de la URL del Descriptor y los campos de la URL del Servicio de Inicio de Sesión OSSO y la URL del Servicio de Cierre de Sesión OSSO se rellenan previamente.
Si no se muestra ninguna URL, introdúcela manualmente. La URL del Servicio de Cierre de Sesión SSSO es opcional. Si se establece la URL, el usuario será redirigido a esta URL cuando cierre sesión en la plataforma del Código QR. Opcionalmente, también podrá cerrar sesión desde su IDP.
5. Comprueba el mapeo de entrada SSO IDP
Después de definir la URL del Descriptor IDP SSSO y las URL del Servicio del Proveedor SSSO es necesario especificar en qué formato se nos transfiere el Usuario IDP en el mensaje SAML.
Ya te proporcionamos valores estándar para los Nombres de Atributos de nombre, apellidos, correo electrónico y teléfono. Sin embargo, comprueba cómo exporta los campos tu IDP (Mapeo de salida), ya que puede que sea necesario cambiar estos valores.
Por favor, comprueba cómo exporta los campos tu IDP (Mapeo de salida)
Vamos a evaluar cómo funciona el mapeo en un sistema Okta IDP.
Como puedes ver en la captura de pantalla anterior, los campos IDP de la derecha se asignan al atributo de mensaje SAML de la izquierda de la siguiente forma:
- nombre: el campo de perfil IDP usuario.firstName se envía en el mensaje SAML como atributo firstname
- last name: el campo de perfil IDP user.lastName se envía en el mensaje SAML como atributo lastname
- email: el campo de perfil IDP user.email se envía en el mensaje SAML como atributo email
Comparemos esos valores con la configuración del portal de marca blanca en el conjunto de campos SSO IDP Inbound Mapping
Como puedes ver en la siguiente tabla comparativa, todos los campos tienen el mismo nombre (firstname=nombre, lastname=apellido, email=correo electrónico) y no necesitas cambiar los nombres de los atributos en el área Mapeo de entrada IDP de OSSO
I IDP profile field name | II SAML message attribute name (Outbound Mapping)
| III White LabelSSO IDP Inbound Mapping
|
---|
user.email
| email
| email
|
user.firstName | firstname | firstname |
user.lastName | lastname | lastname |
Si los valores de la columna II y III son diferentes, tienes que cambiar la entrada del Portal en la sección Mapeo de entrada IDP OSOS por el valor de la columna II.
6. Inicializar conexión
Por último, haz clic en el botón Conectar de la parte inferior para inicializar la conexión con tu IDP.
Conectar
Entonces se te presentará la URL del Descriptor del Proveedor de Servicios. Esta URL puede ser utilizada por tu administrador IAM/departamento de TI para finalizar la configuración por su parte.
Puedes copiar esta URL mediante el icono de copia situado en el extremo derecho del campo.
En Okta, ve a Aplicación > Tu aplicación > General > Configuración SAML > Editar y pega la URL del descriptor del proveedor de servicios al final en URL de inicio de sesión único y URI del público (ID de la entidad SP) en la pestaña Configurar SAML como se muestra en la captura de pantalla siguiente.
Ahora haz clic en Siguiente, y en el botón Finalizar.
7. Prueba el inicio de sesión SSO
Una vez que hayas configurado la conexión, verás un nuevo botón de inicio de sesión Inicio de sesión SSo en la pantalla de inicio de sesión. Haz clic en el botón para ver si el flujo de inicio de sesión funciona.
También puedes marcar el punto final de inicio de sesión SSO directo que se muestra en la configuración SSO en la parte inferior.
Mapeo de Roles en el Proveedor de Identidades
Si has seleccionado el tipo de SSO Subcuenta (1:n) necesitas proporcionar la información de qué Usuario IDP debe tener acceso a qué Usuario Marca Blanca.
Por lo general, los Nombres de Usuario de Marca Blanca permitidos se almacenan de una de las dos formas posibles en el Proveedor de Identidades:
Nombres de Usuario de Marca Blanca permitidos
A. Almacenando los Nombres de Usuario de Marca Blanca permitidos como un Rol normal en el IDP
En ese caso, crea un Rol adicional para cada Usuario Marca Blanca. El nombre del rol debe ser idéntico al nombre del usuario Marca Blanca.
Para seguir nuestro ejemplo anterior, tienes que crear los dos roles Comercialización y Servicio al cliente.
Servicio al cliente
Ahora asigna el rol Marketing a Adam, Eve y Steve. El rol ServicioCliente se acaba de asignar a Adam y Eve ya que Steve no debe poder acceder al usuario ServicioCliente.
Debes establecer el Nombre de Atributo correcto que contenga esta información en el campo Nombres de Usuario de la Etiqueta Blanca en las Asignaciones de Entrada IDP OSOS. En este caso sueles introducir "Rol". Dependiendo de tu sistema IDP o de tu configuración, el nombre podría ser diferente.
B. Almacenando los Nombres de Usuario de Marca Blanca permitidos en un campo personalizado en el perfil de usuario en el IDP
En ese caso, crea un campo personalizado, por ejemplo AllowedWhiteLabelUsers, en el perfil de usuario en el Proveedor de Identidades.
Perfiles de usuario permitidos
De nuevo, utilizamos el IDP Okta como ejemplo. Ve a Directorio > Editor de Perfiles > Usuario (por defecto) y haz clic en Añadir Atributo
Como tipo de campo elige "desplegable", "matriz de cadenas" o cualquier otro tipo que proporcione una lista de valores posibles. Cada valor debe coincidir con un nombre de usuario que hayas creado en la plataforma Marca Blanca.
En nuestro ejemplo, esto significaría que creas los posibles valores Marketing y Servicio al cliente para el campo personalizado Usuarios de Marca Blanca permitidos.
Ahora elige para cada Usuario IPD que deba poder acceder a la plataforma Marca Blanca el nombre correspondiente del Usuario Marca Blanca del desplegable Usuarios de Marca Blanca permitidos.
En nuestro ejemplo, por tanto, elegiríamos los valores Marketing y Servicio al cliente para los usuarios IDP Adam y Eve. Para el usuario IDP Steve sólo elegiríamos el valor Servicio al cliente
Debes establecer el Nombre de Atributo correcto que contenga esta información en el campo Nombre de Atributo de los Nombres de Usuario de la Marca Blanca en las Mapas de IDP de OSSO.
En nuestro ejemplo hemos utilizado "AllowedWhiteLabelUsers".
Tu usuario administrador puede iniciar sesión en nuestra plataforma de marca blanca directamente mediante nombre de usuario y contraseña por defecto. Sin embargo, también es posible utilizar SSO para iniciar sesión como administrador o gestor.
Para ese caso hay 2 Roles especiales disponibles: whitelabel_admin y whitelabel_manager
Por lo general, la información sobre si un usuario IDP es un administrador de marca blanca o un gestor de marca blanca se almacena de una de las dos formas posibles en el Proveedor de Identidades:
A. Almacenando los derechos de acceso de Administrador/Gerente como un Rol normal en el IDP
En ese caso creas dos Roles adicionales llamados whitelabel_admin y whitelabel_manager.
Ahora asigna el rol whitelabel_admin a los usuarios de IDP que deban ser admin, y whitelabel_manager a los usuarios de IDP que deban ser manager.
Debes establecer el Nombre de Atributo correcto que contenga esta información en el campo Nombres de Usuario de la Etiqueta Blanca en las Mapas de Entrada IDP OSSO. En este caso sueles introducir "Role". Dependiendo de tu sistema IDP o de tu configuración, el nombre podría ser diferente.
B. Almacenando los derechos de acceso de administrador/gestor en un campo personalizado del perfil de usuario en el IDP
En ese caso, crea un campo personalizado, por ejemplo AllowedWhiteLabelUsers, en el perfil de usuario en el Proveedor de Identidades.
De nuevo, utilizamos el IDP Okta como ejemplo. Ve a Directorio > Editor de Perfiles > Usuario (por defecto) y haz clic en Añadir Atributo
Caso Especial: si ya has creado el campo PermitidoEtiquetarBlancoUsuarios debido al tipo de SSO Subcuenta (1.:n) entonces en su lugar sólo tienes que desplazarte hacia abajo en la lista de atributos hasta que encuentres el campo PermitidoUsuariosEtiquetaBlanca y hacer clic en editar (icono del lápiz).
Como tipo de campo elige "desplegable", "array de cadenas", o cualquier otro tipo que proporcione una lista de posibles valores. Introduce los dos valores posibles whitelabel_admin y whitelabel_manager.
Ahora elige para cada UsuarioIDP que deba ser un administrador o un gestor de la plataforma de Marca Blanca el valor correspondiente whitelabel_admin o whitelabel_manager del desplegable AllowedWhiteLabelUsers.
En nuestro ejemplo daríamos al usuario IDP Juan los derechos de administrador.
Debes establecer el Nombre de Atributo correcto que contenga esta información en el campo Nombre de Atributo de los Nombres de Usuario de la Etiqueta Blanca en las Mapas de IDP de OSSO
En nuestro ejemplo utilizamos "AllowedWhiteLabelUsers".
Primer inicio de sesión de un usuario SSO
En esta sección verás cómo queda la cuenta de marca blanca tras el primer inicio de sesión de los usuarios para los 2 tipos diferentes de SSO.
SSO Tipo Usuario (1:1)
Cuando un usuario IDP se conecta por primera vez mediante SSO, se crea un usuario Marca Blanca con el mismo nombre. En el siguiente ejemplo puedes ver a los 3 usuarios IDP Adam, Eve y Steve creados como usuarios Marca Blanca en la sección Usuario.
SSO Tipo Subcuenta (1:n)
Si un usuario IDP inicia sesión en nuestra plataforma por primera vez, se crea una subcuenta con el rol SSO y se asignan los usuarios Marca Blanca correspondientes a esa subcuenta. Puedes ver las subcuentas en la sección Cuentas de la pestaña Subcuentas.
La siguiente captura de pantalla muestra al usuario IDP Adam asignado a los usuarios Marca Blanca Marketing y Servicio al Cliente.
SSO Depuración
Para depurar la comunicación SAML 2.0 entre tu proveedor de identidades (IDP) y nuestro proveedor de servicios (SP) puedes instalar el complemento de navegador SAML-tracer.
Después de abrir la ventana emergente SAML-tracer...
- Comienza con un proceso de inicio de sesión SSO
- Verás que la lista de la parte superior de la ventana emergente se llena de peticiones HTTP.
- Haz clic en la solicitud que esté marcada como solicitud SAML en color naranja.
- Elige la pestaña Resumen (o SAML para ver todos los detalles en formato XML). Puedes comprobar si los datos (por ejemplo, el rol) se han transferido correctamente. En este caso se ha transferido el rol whitelabel_admin. Esto es exactamente lo que necesitamos para que este usuario inicie sesión como administrador del portal de etiqueta blanca.