Définition du mot de passe spiuser dans vos images Docker

Un administrateur doit choisir un mot de passe pour un utilisateur SPI par défaut nommé spiuser, puis définir le mot de passe spiuser dans les conteneurs Docker HCL Commerce.

Ce mot de passe est uniquement utilisé pour l'appel d'API de serveur inter-composant.

Ce mot de passe est stocké pour Store server, Search server et Customization server dans le fichier de configuration WebSphere Application Server V8.5.5 Liberty userregistry.xml. Dans Transaction server, l'utilisateur spiuser est configuré dans la base de données.

Le mot de passe doit être le même sur tous les serveurs, et chaque image Docker doit être configurée avec le mot de passe utilisateur spiuser correct. Si les mots de passe ne correspondent pas ou si un conteneur n'est pas configuré, les serveurs de composants ne peuvent pas effectuer les appels API requis pour fonctionner ensemble.

Les flux d'appels API suivants utilisent les données d'identification spiuser :
  • Le Store server appelle le Search server et le Transaction server.
  • Le Customization server appelle le Transaction server.
  • Transaction server appelle le Customization server.
  • Le Search server appelle le Transaction server, le Customization server et d'autres Search server.
Important :
  • Assurez-vous d'utiliser un mot de passe sécurisé.
  • HCL Commerce Version 9.1.9.0 or laterUne exigence de longueur minimale de 45 caractères a été introduite pour les nouveaux déploiements de HCL Commerce versions 9.1.9.0 ou ultérieures.

Procédure

  1. Connectez-vous au serveur dédié qui héberge le Utility server Docker container.
    Si un Utility server Docker container n'est pas déployé, voir Préparation d'un serveur hôte Docker pour lancer Utility server Docker container.
  2. Entrez le Utility server Docker container.
    Par exemple,
    docker exec -it utility_container_name bash
  3. Accédez au répertoire /opt/WebSphere/CommerceServer90/bin.
  4. Exécutez la commande suivante pour chiffrer le mot de passe spiuser.
    ./wcs_encrypt.sh plain_text_spiuser_password
  5. Copiez et enregistrez le plain_text_spiuser_password dans un fichier texte.

    Vous avez besoin du mot de passe en texte brut pour déployer les conteneurs HCL Commerce.

  6. Générez le mot de passe chiffré merchantKey et stockez-le dans la base de données.
    1. Obtenez la valeur salt pour le mot de passe spiuser.
      1. Ouvrez une invite de ligne de commande de base de données et exécutez la commande suivante sur votre base de données afin d'obtenir la valeur salt.
        select salt from userreg where logonid='spiuser';
      2. Si le résultat renvoyé est NULL, vous devez définir une valeur salt pour le mot de passe spiuser.
        update userreg set salt='salt' where logonid='spiuser';
        salt correspond à 12 caractères alphanumériques aléatoires de l'ensemble suivant :
        abcdefghijklmnoprstuvxyz1234567890

        Par exemple, m83u229zjsrv.

    2. Chiffrez le mot de passe salé avec merchantKey.
      Dans une invite de commande distincte, exécutez l'utilitaire de commande HCL Commerce suivant situé dans le répertoire /opt/WebSphere/CommerceServer90/bin.
      ./wcs_password.sh plain_text_spiuser_password salt unencrypted_merchantKey_value
      Remarque : L'utilitaire wcs_password peut également être utilisé avec le paramètre -k pour chiffrer le mot de passe avec une valeur salt sans avoir à fournir la clé de commerçant non chiffrée. Pour plus d'informations, voir Générez un mot de passe chiffré HCL Commerce (wcs_password).
      Une version chiffrée merchantKey du mot de passe salé est produite au format ASCII et hexadécimal.
    3. Stockez les mots de passe chiffrés dans la base de données.
      Dans une invite de ligne de commande de la base de données, mettez à jour le mot de passe chiffré en fonction de la solution de base de données que vous utilisez.
      • DB2
        update userreg set logonpassword=x'encrypted_hexadecimal_output' where logonid = 'spiuser';
        Remarque : x'encrypted_hex_output' est requis pour stocker la valeur au format hexadécimal.
      • Oracle
        update userreg set logonpassword='encrypted_hexadecimal_output' where logonid = 'spiuser';
  7. Quittez le conteneur Docker.
  8. Partagez le mot de passe spiuser en texte brut avec votre équipe de développement.
    Remarque : Les développeurs doivent utiliser le mot de passe en texte brut lorsqu'ils chargent le schéma HCL Commerce dans la base de données. En particulier, les développeurs doivent fournir le mot de passe spiuser lorsque Chargement du schéma de base de données HCL Commerce.

Résultats

Vos conteneurs Docker HCL Commerce sont maintenant configurés et peuvent désormais communiquer via des appels API.

Que faire ensuite

Définissez le nom d'utilisateur spiuser (facultatif) et le mot de passe de l'utilisateur spiuser (obligatoire) lors du déploiement pour les services HCL Commerce qui en ont besoin. Ces valeurs peuvent être transmises en tant que variables d'environnement ou définies dans Vault. Pour plus d'informations sur le processus de démarrage du déploiement, voir Logique de démarrage du conteneur Docker pour HCL Commerce Version 9.1.