Inicio de sesión único

El inicio de sesión único HTTP mantiene la autenticación de usuario en diferentes aplicaciones web. Al utilizar el inicio de sesión único (SSO) HTTP, no se le solicita al usuario varias veces las credenciales de seguridad dentro de un dominio de confianza.

El dominio de confianza incluye las aplicaciones y servidores siguientes:
  • Servidores WebSphere Application Server cooperadores pero diferentes.
  • Aplicaciones cooperadoras, por ejemplo IBM Security Directory Server.

En un escenario de SSO, se utiliza una cookie HTTP para propagar la información de autenticación de un usuario a servidores web diferentes. Esta propagación evita al usuario tener que entrar la información de autenticación para cada nueva sesión de cliente-servidor (presuponiendo una autenticación básica).

De forma predeterminada, HCL Commerce puede leer y generar el cookie Lightweight Third Party Authentication (LTPA), que se utiliza para pasar credenciales SSO entre aplicaciones de WebSphere Application Server. El mecanismo predeterminado para dar soporte al inicio de sesión único (SSO) requiere que se utilice HCL Commerce como depósito de usuarios común compartido por todas las aplicaciones que necesitan SSO y que el nombre distinguido de usuario en el cookie LTPA coincida con el valor de USERS.DN en la base de datos de HCL Commerce. Si el usuario no existe en la base de datos, el usuario se crea durante la primera solicitud de SSO.

Como alternativa, si LDAP no se utiliza o el cookie LTPA no contiene USERS.DN, o se utiliza una señal de SSO distinta, deberá personalizar la clase LDAPIntegrationCmdImpl para dar soporte a SSO en HCL Commerce. Para obtener más información, consulte 1.

Cuando LDAP se utiliza en tiendas locales migradas, un módulo de inicio de sesión JAAS que se denomina WCLogin se crea y utiliza durante la autenticación con el fin de habilitar HCL Commerce para generar el cookie LTPA. El módulo de inicio de sesión se invoca durante el proceso, donde LogonCmd se correlaciona con la acción de Struts com.ibm.commerce.struts.v2.LTPATokenGenerationEnabledBaseAction. Continúa autenticándose en el módulo de inicio de sesión WCLogin JAAS para crear los cookies LTPA si el usuario se autentica correctamente.
Nota: El mandato AjaxLogon no puede utilizarse en lugar de LogonCmd porque no da soporte a la generación de señales LTPA.

Si una aplicación que no es WebSphere Application Server debe participar en SSO con HCL Commerce, se puede utilizar un producto de IBM como Tivoli Access Manager WebSEAL para lograr SSO en las diferentes aplicaciones. WebSEAL es un proxy inverso que intercepta solicitudes protegidas y genera una señal LTPA tras la autenticación correcta. De forma alternativa, si elige utilizar un producto proxy inverso no de IBM, por ejemplo CA SiteMinder, debe incorporar un Trust Association Interceptor (TAI). Un TAI convierte la señal de SSO personalizada en una señal LTPA que HCL Commerce puede comprender.

Si está utilizando un producto de proxy inverso no IBM y no desea utilizar LTPA como señal SSO, HCL Commerce se puede personalizar para leer (pero no generar) la señal SSO personalizada alterando lo siguiente:
  1. Para solicitudes SSO a través de HTTP, el método siguiente de com.ibm.commerce.member.syncbeans.commands.LDAPIntegrationCmd debe devolver el valor de USERS.DN del usuario de HCL Commerce que se basa en la identidad en la señal SSO personalizada:
    public String getLDAPDNFromSingleSignOnTokenForWeb(HttpServletRequest request) 
  2. Para solicitudes SSO a través de servicios web, suponiendo que se llame primero a MemberFacadeClient.authenticateLTPA(Map), si se pasa el valor de String de la señal SSO personalizada utilizando el nombre de parámetro "LTPAToken". A continuación, el método siguiente de com.ibm.commerce.member.syncbeans.commands.LDAPIntegrationCmd debe devolver el valor USERS.DN del usuario de HCL Commerce que se basa en la identidad en la señal SSO personalizada:
    public String getLDAPDNFromSingleSignOnTokenForWebServices(String ssoToken) 
Nota:
  • Si HCL Commerce no está configurado con LDAP y está utilizando un servidor de autenticación de terceros y un token de SSO personalizado, puede habilitar SSO en HCL Commerce completando los pasos siguientes.
    • HCL Commerce Developer
      1. Abra WebSphere Application Server Administrative Console dentro de la imagen de Docker Transaction server (ts-app).
      2. Vaya a Servidores de aplicaciones > server 1 > Java y gestión de procesos > Definición del proceso > Máquina virtual de Java > Propiedades personalizadas.
      3. Establezca la propiedad SingleSignOnEnabled en true.
    • LinuxEn este caso, el perfil de usuario (excepto la contraseña) debe existir en la base de datos de HCL Commerce antes de que se pueda producir el inicio de sesión o SSO en HCL Commerce. Para configurar HCL Commerce para utilizar la autenticación de terceros, consulte HCL Commerce : modelo de autenticación.

    Ahora, cuando los usuarios se registran en HCL Commerce, se crea el perfil de usuario en la base de datos de HCL Commerce y la contraseña se almacena en el servidor de autenticación de terceros.

  • Para la integración SAML, puede utilizar la característica SAML de WebSphere Application Server. Para obtener información sobre la implementación de WebSphere Application Server, consulte la documentación de Enabling your system to use the SAML web single sign-on (SSO) feature en WebSphere Application Server. En este método, HCL Commerce es el proveedor de servicios. Debe personalizar los métodos LDAPIntegrationCmd que figuran en los pasos 1 y 2 para procesar la señal LTPA, recuperar los atributos SAML correspondiente que identifican al usuario y, a continuación, devolver el valor USERS.DN que corresponde a dicho usuario en la base de datos de HCL Commerce.
  • Para llevar a cabo una integración de OpenID Connect (OIDC), puede utilizar la característica WebSphere Application Server usuario de confianza de OIDC. En este enfoque, HCL Commerce es el usuario de confianza. Debe personalizar los métodos LDAPIntegrationCmd que figuran en los pasos 1 y 2 para procesar la señal LTPA y, a continuación, devolver el valor USERS.DN que corresponde a dicho usuario en la base de datos de HCL Commerce. Para obtener información sobre la implementación de WebSphere Application Server, consulte la documentación de WebSphere Application Server en Configuración de un usuario de condfianza en OpenID Connect
Atención: Revise las siguientes limitaciones clave de inicio de sesión único cuando se utiliza con HCL Commerce:
  • Los cookies LTPA pueden fluir a través de puertos de servidor web diferentes.
  • Se da soporte a las aplicaciones que pueden leer y emitir la señal LTPA de WebSphere Application Server.
  • Los navegadores web que aceptan cookies se soportan para que se puedan escribir los cookies LTPA.