Es posible utilizar el área de trabajo Autenticación para configurar el inicio de sesión único (Single Sign-On, SSO) en SaltStack Config de modo que funcione con un sistema de autenticación compatible con el protocolo del lenguaje de marcado de aserción de seguridad (Security Assertion Markup Language, SAML).

El inicio de sesión único de SAML es una funcionalidad que muchas organizaciones configuran durante la implementación SaltStack Config a fin de:

  • Se reduce el tiempo que los usuarios dedican a iniciar sesión en los servicios con la misma identidad. Una vez que los usuarios inician sesión en uno de los servicios de una institución, se autentican automáticamente en cualquier otro servicio que utilice SSO.
  • Se reduce el agotamiento de contraseñas. El usuario solo debe recordar un conjunto de credenciales en lugar de varios.

Muchos servicios proporcionan implementaciones del protocolo SSO de SAML, incluidos ADFS, OneLogin, Okta, Shibboleth, SimpleSAMLPHP, Google Suite y más.

Nota: Se puede utilizar más de un sistema a la vez para autenticar usuarios en SaltStack Config si es necesario. Por ejemplo, puede utilizar un servicio IdP basado en SAML o uno basado en LDAP para almacenar al mismo tiempo algunas credenciales de usuario de forma nativa en el servidor RaaS. Sin embargo, SaltStack Config no permite configurar más de dos proveedores SAML o dos proveedores LDAP al mismo tiempo.

Funcionamiento de SSO para SAML con SaltStack Config

Cuando SaltStack Config recibe una aserción de identidad correcta de alguna de sus integraciones de autenticación admitidas, busca un inicio de sesión de usuario que coincida con el valor de la identidad afirmada. Si encuentra un inicio de sesión que coincide, inicia sesión en la cuenta de usuario asociada.

Por ejemplo, si SaltStack Config recibe una aserción de ADFS para un usuario y el valor del atributo de identidad configurado es “fred”, SSE buscará un inicio de sesión con un nombre de usuario “fred”. Si se encuentra uno, el usuario asociado inicia sesión. De lo contrario, se produce un error en el inicio de sesión.

Terminología de autenticación de SAML

Acrónimo Definición
SAML

Lenguaje de marcado de aserción de seguridad (SAML, SAM-el)

SAML es un protocolo abierto (también conocido como estándar) para intercambiar datos de autenticación y autorización entre partes. En particular, se utiliza para intercambiar datos entre un proveedor de identidades y un proveedor de servicios.

SAML es un inicio de sesión único (Single Sign-On, SSO) basado en navegador. Todas las comunicaciones se realizan a través del agente de usuario (el navegador). No existe comunicación entre un proveedor de servicios (como SaltStack Config) y un proveedor de identidad (como Azure AD). Esta separación permite que la autenticación se realice en dominios de seguridad en los que un proveedor de servicios puede estar en un dominio (posiblemente público) y el proveedor de identidad en un segmento de red protegido separado.

IdP

Proveedor de identidad

El trabajo del IdP es identificar los usuarios en función de las credenciales. Un proveedor de identidad es un software mediante el cual se proporciona un servicio que cumple con la parte de proveedor de identidad de la especificación SAML. El IdP generalmente proporciona la interfaz de pantalla de inicio de sesión y presenta información sobre el usuario autenticado a los proveedores de servicios después de la autenticación correcta.

Proveedores de identidad de muestra:

  • ADFS
  • Azure AD
  • Google SAML
  • Shibboleth
  • Okta*
  • OneLogin
  • PingFederated
  • SimpleSAMLPHP

* Consulte más detalles después de esta tabla.

SP

Proveedor de servicios o usuario de confianza

Generalmente, un proveedor de servicios (Service Provider, SP) es un sitio web que proporciona información, herramientas, informes, etc. al usuario final. Un proveedor de servicios es un software mediante el cual se proporciona un servicio que cumple con la parte de proveedor de servicios de la especificación SAML de SaltStack Config. Los productos de Microsoft (como Azure AD y ADFS) llaman usuario de confianza al SP.

En este escenario, SaltStack Config es el proveedor de servicios. SaltStack Config acepta las aserciones de autenticación del IdP y permite que los usuarios inicien sesión.

Un SP no puede autenticarse con un IdP a menos que se incluya en la lista de servicios aprobados. La configuración de un SP con una lista de IdP aprobados es parte del proceso de configuración.

SSO

Inicio de sesión único

El inicio de sesión único es un sistema de autenticación en el que no es necesario que un usuario inicie sesión en un segundo servicio, ya que la información del usuario autenticado se transmite al servicio.

SLO

Cierre de sesión único

Cuando un usuario cierra sesión en un servicio, algunos IdP pueden cerrar posteriormente la sesión de usuario en todos los demás servicios en los que se autenticó el usuario.

Actualmente, SaltStack Config no es compatible con SLO.

RBAC

Control de acceso basado en funciones

El control de acceso basado en funciones, también conocido como seguridad basada en funciones, es una medida de control de acceso avanzado que restringe el acceso a la red según la función de una persona dentro de una organización. Las funciones en RBAC hacen referencia a los niveles de acceso que los empleados tienen a la red.

Solo se permite que los empleados accedan a los recursos de red o realicen las tareas necesarias para ejecutar de forma efectiva sus deberes laborales. Por ejemplo, los empleados de menor nivel generalmente no tienen acceso a datos confidenciales ni recursos de red si no los necesitan para cumplir con sus responsabilidades.

SaltStack Config admite la configuración de RBAC con SAML mediante el área de trabajo Funciones. Sin embargo, el usuario primero debe iniciar sesión en SaltStack Config para ser agregado como usuario a la base de datos de usuarios local y ser administrado mediante el área de trabajo Funciones.

Requisitos de Okta

Algunas advertencias y aspectos que se deben tener en cuenta al configurar Okta para SSO:
  • El campo URL de inicio de sesión único durante la configuración requiere la URL del servicio de cliente de aserción (Assertion Customer Service, ACS) de SAML. Esta es la URL de SSC con /autho/complete/saml al final. Por ejemplo, http://xxx.x.x.x:8080/auth/complete/saml.
  • La integración de SAML requiere que SSC atienda la interfaz de usuario. Se produce un error en la integración si la interfaz de usuario está siendo atendida por una CDN o cualquier otro sitio web además de SSC.
  • Todas las respuestas de SAML deben estar firmadas. En Okta, puede habilitar este ajuste en Configuración avanzada.
  • Todos los atributos de SAML configurados en SSC deben existir y pasarse en la respuesta SAML.

Requisitos previos

Antes de configurar SAML en SaltStack Config:

  • Instale el proveedor de identidad (Identity Provider, IdP) de SAML y asegúrese de que esté en ejecución.
  • Asegúrese de tener acceso a las credenciales y los datos de configuración que proporciona el IdP.
  • Debe generar un certificado para agregar SaltStack Config como un proveedor de servicios aprobado con su IdP. El proveedor de servicios de SaltStack Config necesita un par de claves RSA. Introduzca los valores de clave privada y pública en varios lugares al configurar SAML para SaltStack Config.
    Nota: Este par de claves se puede generar en cualquier sistema. No es necesario crearlo en el servidor SSE. Estos comandos se ejecutan en cualquier sistema con utilidades openssl instaladas. Como alternativa, se puede utilizar Salt para generar el certificado autofirmado. Para más información, consulte Certificados autofirmados con el módulo Salt de TLS.
    Para crear el certificado, genere una clave privada, denominada cert.perm, mediante openssl genrsa -out cert.pem 2048. A continuación, cree la clave pública asociada con la clave privada mediante el comando openssl req -new -x509 -key cert.pem -out cert.pub -days 1825 y siguiendo las indicaciones. Registre los pares de claves pública y privada para acceder a estos fácilmente al resolver el resto del proceso de configuración.

Establecer una configuración de SAML

  1. Haga clic en Administración > Autenticación en el menú lateral.
  2. Haga clic en Crear.
  3. En el menú Tipo de configuración, seleccione SAML.

    El área de trabajo mostrará los ajustes admitidos para el tipo de configuración SAML.

  4. En la pestaña Configuración, configure estos campos con la información de su instalación de SaltStack Config:
    • Nombre
    • URI base
    • Identificador de entidad
    • Nombre de empresa
    • Nombre para mostrar
    • Sitio web
  5. En el campo Clave privada, copie la clave privada que generó cuando creó el certificado de proveedor de servicios para SaltStack Config.
  6. En el campo Clave pública, copie la clave pública que generó cuando creó el certificado de proveedor de servicios para SaltStack Config.
  7. Rellene los campos con la información de contacto relevante de su:
    • Contacto técnico
    • Contacto de soporte
  8. En la sección Información del proveedor, complete los siguientes campos con los metadatos de su proveedor de identidad (IdP):
    • Identificador de entidad
    • Identificador de usuario: es el nombre del atributo que SAML recibe del IDP y que representa la identificación de usuario utilizada en SSC.
    • Correo electrónico: es el nombre del atributo que SAML recibe del IDP y que representa la dirección de correo electrónico del usuario. SSC requiere una dirección de correo electrónico válida para el usuario.
    • Nombre de usuario: es el nombre del atributo que SAML recibe del IDP y que representa el nombre de usuario del usuario. Para que pueda reconocer fácilmente al usuario que representa, debe ser diferente del Identificador de usuario.
    • URL
    • Certificado x509
    Nota: ADFS, Azure AD y SAML de Google son ejemplos de proveedores de identidad comunes. Esta información la proporciona su IdP.
  9. (Opcional) Active la casilla Comprobación de instrucciones de atributos si desea que SaltStack Config verifique las instrucciones de atributos de SAML para los perfiles de usuario. Esta opción está activada de forma predeterminada.
  10. Haga clic en Guardar.

Qué hacer a continuación

Después de configurar el inicio de sesión único de SAML, puede hacer lo siguiente:
  • Proporcionar la URL de AssertionCustomerService (por ejemplo: https://<your-sse-hostname>/auth/complete/saml) y el certificado público (x509) y la clave que generó para SaltStack Config a su IdP.
  • Crear asignaciones de atributos para los usuarios específicamente para el identificador de usuario, el correo electrónico y el nombre de usuario. Muchas organizaciones asignan estos tres valores a la dirección de correo electrónico del usuario como un atributo único, ya que suele ser único en toda la organización. El proceso para asignar estos atributos es específico de cada proveedor de identidad SAML. Para obtener ayuda con la creación de asignaciones de estos atributos, consulte la documentación del IdP o póngase en contacto con el administrador.
  • Agregue usuarios a SaltStack Config. De forma predeterminada, los usuarios nuevos se registran en SaltStack Config únicamente después de que un usuario inicia sesión correctamente por primera vez con SAML. Como alternativa, puede agregar usuarios manualmente para registrar de forma previa estos usuarios en SaltStack Config. Para agregar usuarios manualmente desde el área de trabajo Autenticación, seleccione la configuración de SAML en la lista de Configuraciones de autenticación y haga clic en la pestaña Usuario en los ajustes de configuración. Haga clic en Crear e introduzca las credenciales de usuario y seleccione Funciones.
    Nota: Asegúrese de que este nombre de usuario sea preciso. Una vez creado el usuario, no se puede cambiar ni modificar su nombre de usuario. Una vez que se crea manualmente un usuario, solo se podrá eliminar antes de su primer inicio de sesión. Después de que el usuario inicia sesión por primera vez, el botón Eliminar sigue disponible en esta área de trabajo, pero ya no funciona.
  • Valide su configuración de SAML iniciando sesión como un usuario típico para asegurarse de que el proceso de inicio de sesión funcione según lo esperado, y que las funciones y los permisos sean correctos. Solucione los posibles errores mediante la herramienta de seguimiento SAML, que está disponible para los navegadores web Firefox y Chrome, y consulte los mensajes de registro de /var/log/raas/raas.
    Nota: No se pueden eliminar usuarios mediante la interfaz de usuario de SaltStack Config ni la API después del aprovisionamiento inicial con una autenticación SAML correcta.