HCL Commerce Version 9.1.5.0 or later

Habilitar el inicio de sesión único

La habilitación del inicio de sesión único (SSO) mantiene la autenticación de usuario entre HCL Commerce y otras aplicaciones web. Al utilizar un inicio de sesión único HTTP, no se solicitan varias veces al usuario las credenciales de seguridad en un dominio de confianza.

Se proporcionan las siguientes instrucciones para habilitar el inicio de sesión único cuando HCL Commerce está configurado para utilizar LDAP y la aplicación web para la que está habilitando el inicio de sesión único está compartiendo el mismo servidor LDAP.

Antes de empezar

Procedimiento

  1. Habilite el sistema SSO en el despliegue de HCL Commerce.
    MétodoProcedimiento
    HCL Commerce Version 9.1.5.0 or laterUso de comandos Run Engine
    1. Añada el mandato enable SSO a custConfiguration.sh.
      Por ejemplo:
      #!/bin/bash
      run enable-sso domainName true
      run set-system-property SingleSignOnEnabled true

      Donde un ejemplo de es domainName es mydomain.com.

    2. En el archivo Docker, copie custConfiguration.sh en /SETUP/bin/custConfiguration.sh y cambie los permisos del archivo a 755.
      Por ejemplo:
      COPY custConfiguration.sh /SETUP/bin
      RUN chmod 755 /SETUP/bin/custConfiguration.sh
      
    3. Cree la imagen de Docker personalizada ts-app.
    HCL Commerce Version 9.1.12.0 or laterUso de las configuraciones de Vault Establezca los siguientes valores de SSO en Vault.
    Tenant/EnvName/EnvType/ssoEnable:true 
    Tenant/EnvName/EnvType/ssoDomainName: domainName 
    Tenant/EnvName/EnvType/ssoSSL: boolean

    Para obtener más información sobre estos valores, consulte Configuraciones relacionadas con SSO dentro de la referencia Datos de entorno en Vault.

  2. Opcional: Si HCL Commerce es el maestro de la configuración de SSO, genere y exporte el archivo de claves para HCL Commerce.
    • HCL Commerce Developer
      1. Asegúrese de que WebSphere Application Server se ha iniciado.
      2. Abra la WebSphere Application Server Administrative Console.
      3. Expanda el nodo Seguridad y pulse Seguridad global.
      4. En la sección Autenticación, pulse en LTPA.
      5. En la sección Conexión única entre sitios, escriba y verifique la contraseña que se exporta para la señal LTPA.
      6. Entre el Nombre de archivo de claves totalmente cualificado. Este nombre es la ubicación de directorio y el nombre de archivo para el archivo de claves que se debe importar al servidor para la otra aplicación.
      7. Haga clic en Export.
      8. Pulse Aplicar > Guardar directamente en la configuración maestra.
      9. Vaya al directorio que ha especificado para el archivo de claves y verifique que se haya generado la clave.
      10. Copie este archivo de claves exportado del sistema de archivos de HCL Commerce e importe la clave al sistema de archivos del servidor para la otra aplicación.
    • Linux
      1. Desde dentro del contenedor ts-app, ejecute el comando siguiente para exportar el token LTPA.
        export-ltpa-keys ltpaKeyFile password
        Por ejemplo:
        export-ltpa-keys /SETUP/ltpa.key passw0rd
      2. Copie y guarde el archivo ltpa.key localmente.
        docker cp bvt_txn_1:/SETUP/ltpa.key ltpa.key
  3. Opcional: Si otra aplicación es el maestro de SSO, importe el archivo de claves de la otra aplicación a HCL Commerce.
    1. Copie la clave de archivo generada del sistema de archivos del servidor para la otra aplicación en el sistema de archivos de HCL Commerce.
    2. Abra la Consola de administración de WebSphere Application Server.
    3. Expanda el nodo Seguridad y pulse Seguridad global.
    4. En la sección Autenticación, seleccione LTPA.
    5. En la sección Conexión única entre sitios, entre y verifique la contraseña para la señal LTPA que se importa.
    6. Entre el Nombre del archivo de claves totalmente calificado para el archivo de claves que ha copiado del sistema de archivos de la otra aplicación.
    7. Pulse Importar claves.
    8. Pulse Aplicar > Guardar directamente en la configuración maestra.
    9. Reinicie los servidores para HCL Commerce y para la otra aplicación.
  4. Opcional: Configure los roles que se asignan automáticamente a los usuarios que usan el inicio de sesión único (SSO) para iniciar sesión en HCL Commerce desde otra aplicación.
    1. Edite MemberRegistrationAttributes.xml.

      Cuando un usuario inicia sesión en HCL Commerce mediante el inicio de sesión único, se asigna al usuario un rol en HCL Commerce desde el archivo MemberRegistrationAttributes.xml con registrationType = "SSO". Para obtener más información, consulte Archivos MemberRegistrationAttributes XML y DTD.

      En HCL Commerce, los roles de seguridad se asignan como parte del proceso de registro. Con el ID de conexión único, el cliente puede ignorar el paso de registro en el sitio si ya se ha autenticado correctamente con un sistema colaborativo. La posibilidad de autenticarse implícitamente en un sitio de HCL Commerce tiene poco valor cuando a un usuario se le niega el acceso a los recursos que desea utilizar, por ejemplo comprar en una tienda. Por lo tanto, las mismas funciones que se llevan a cabo en la asignación automática de roles se producen durante el registro de usuarios en el código de gestión de sesiones. En este caso, configure los roles para los compradores SSO utilizando el tipo de registro "SSO". De este modo, cuando un cliente se autentica en el sistema, HCL Commerce proporciona automáticamente todos los roles que aquél necesita para el sitio. Recuerde que la asignación de roles SSO ocurre a nivel de sitio y no a nivel de tienda (como sucede en el registro de usuarios típico). Por lo tanto, asegúrese de que el atributo storeAncestor especificado sea realmente un predecesor del sitio (tienda 0).

      El siguiente ejemplo proporciona cuatro roles a cualquier cliente que entre en el sistema desde SSO. Este ejemplo proporciona un rol a los clientes que existen en el servidor LDAP en algún lugar bajo la 'organización predeterminada' (porque se ha especificado el memberAncestor).

      Example:
      <User registrationType="SSO" memberAncestor="o=Default Organization,o=Root Organization" storeAncestor="o=Root Organization">
        <Role name="Registered Customer" roleContext="explicit" DN="o=Reseller Organization,o=Root Organization"/>
        <Role name="Registered Customer" roleContext="explicit" DN="o=Seller Organization,o=Root Organization"/>
        <Role name="Registered Customer" roleContext="explicit" DN="o=Supplier Organization,o=Root Organization"/>
        <Role name="Registered Customer" roleContext="explicit" DN="ou=Supplier Hub Organization,o=Business Indirect Supplier Organization, o=Root Organization"/>
      </User>
      
    2. Linux Copie el archivo personalizado en la siguiente ubicación en el Docker de ts-app y cree una imagen personalizada: /opt/WebSphere/AppServer/profiles/default/installedApps/localhost/ts.ear/xml/member
  5. Opcional: Si se están utilizado señales LTPA, es posible admitirlas para mantener una sesión activa más allá del tiempo de espera de sesión de HCL Commerce estándar. La señal LTPA solamente se comprueba cuando la sesión caduca. Si es válida, se renueva la sesión.
    1. Vaya al directorio siguiente:
      • Linux<workspace_dir>/WC/xml/config/
    2. Abra el archivo wc-server.xml para editarlo.
    3. Cambie el valor de keepAliveSession por true, tal como se resalta en el siguiente código:
      
      <MemberSubSystem AuthenticationMode="LDAP" ProfileDataStorage="LDAP">
      <Directory EntryFileName="ldap/ldapentry.xml" MigrateUsersFromWCSdb="ON" 
      SingleSignOn="1" display="false" keepAliveSession="true"/>
      <SyncOrganizationWxclusionList display="false"/>
      <ResetPassword resetNullPasswordEnabled="true"/>
    4. Guarde y cierre el archivo.
    5. Linux Cree una imagen personalizada con este cambio.
  6. HCL Commerce Developer Reinicie el WebSphere Application Server.

Qué hacer a continuación

Por motivos de seguridad, cuando se habilita el inicio de sesión único, los usuarios deben cerrar todos los navegadores web después de finalizar la sesión del Management Center.