Vous pouvez configurer la classe AllDBConnector pour utiliser à la fois un certificat SSL de portefeuille Oracle et un mot de passe fourni par l'utilisateur pour authentifier un utilisateur afin d'établir une connexion de base de données pour un utilitaire.
Avec cette configuration, le serveur de base de données Oracle utilise un certificat SSL dans le portefeuille Oracle sur le niveau serveur pour s'authentifier sur le client utilitaire à travers un canal chiffré. La classe AllDBConnector valide ensuite le certificat SSL sur le niveau client et authentifie l'utilisateur via le nom d'utilisateur et le mot de passe. Le mot de passe de base de données de l'utilisateur n'a pas besoin d'être envoyé du niveau client vers le niveau serveur. Seul le certificat SSL du niveau serveur doit être envoyé entre le serveur et le client.
Pourquoi et quand exécuter cette tâche
Pour effectuer les étapes suivantes, vous devez exécuter les utilitaires Oracle orapki et Listener Control et mettre à jour les fichiers de configuration Oracle. Pour plus d'informations sur la configuration des fichiers Oracle, en exécutant ces utilitaires Oracle, y compris toute syntaxe d'utilisation mise à jour, voir Oracle Documentation.
Procédure
Configurez votre serveur de base de données pour utiliser un portefeuille Oracle qui inclut un certificat SSL pour l'authentification.
-
Créez un portefeuille Oracle avec l'utilitaire Oracle orapki.
Dans un utilitaire de ligne de commande, exécutez la commande suivante à partir du répertoire Oracle
bin :
orapki wallet create -wallet wallet_directory -auto_login -pwd wallet_password
Où
Par exemple,
orapki wallet create -wallet c:\server.wallet -auto_login -pwd s3rv3rp45s
-
Installez le certificat qui est délivré par l'autorité de certification.
Pour plus d'informations sur la création d'une requête de certificat et l'installation du certificat, voir
Oracle Documentation.
Comme exemple à des fins de test, ajoutez un certificat autosigné à votre portefeuille Oracle pour l'utiliser comme certificat de serveur de base de données. Dans un utilitaire de ligne de commande, exécutez la commande suivante à partir du répertoire Oracle
bin :
orapki wallet add -wallet wallet_directory -dn "dn_name" -keysize 1024 -self_signed
-validity 365 -user_cert -trusted_cert -pwd wallet_password
Où
- wallet_directory est le répertoire dans lequel vous voulez créer le portefeuille. Par exemple,
c:\server.wallet.
- dn_name est le nom distinctif du propriétaire du certificat, qui est le nom du serveur de base de données. Par exemple,
CN=server.
- wallet_password est le mot de passe que vous souhaitez définir pour le portefeuille. Par exemple,
s3rv3rp45s.
Par exemple,
orapki wallet add -wallet c:\server.wallet -dn "CN=server" -keysize 1024 -self_signed
-validity 365 -user_cert -trusted_cert -pwd s3rv3rp45s
-
Exportez le certificat SSL pour le serveur de base de données.
Dans un utilitaire de ligne de commande, exécutez la commande suivante à partir du répertoire Oracle
bin :
orapki wallet export -wallet wallet_directory -dn "dn_name"
-cert certificate_file -pwd wallet_password
Où
- wallet_directory est le répertoire dans lequel vous voulez créer le portefeuille. Par exemple,
c:\server.wallet.
- dn_name est le nom distinctif du propriétaire du certificat, qui est le nom du serveur de base de données. Par exemple,
CN=server.
- certificate_file est le chemin et le nom du fichier qui doivent être inclus dans le certificat que vous exportez. Par exemple,
c:\server.cert.
- wallet_password est le mot de passe que vous souhaitez définir pour le portefeuille. Par exemple,
s3rv3rp45s.
Par exemple,
orapki wallet export -wallet c:\server.wallet -dn "CN=server" -cert c:\server.cert -pwd s3rv3rp45s
-
Arrêtez votre base de données Oracle en exécutant la commande suivante à partir du répertoire Oracle bin :
sqlplus / as sysdba
shutdown immediate;
quit;
-
Arrêtez l'écouteur Oracle avec l'utilitaire de contrôle de l'écouteur Oracle en exécutant la commande suivante à partir du répertoire Oracle bin :
-
Mettez à jour le fichier de configuration listener.ora de l'écouteur Oracle.
-
Accédez au répertoire suivant et ouvrez le fichier listener.ora pour édition :
ORACLE_HOME/network/admin
ORACLE_HOME\network\admin
Où
ORACLE_HOME est le répertoire racine de votre base de données Oracle. Par exemple :
C:\ORACLE\ORA92
-
Mettez à jour les paramètres de l'écouteur pour correspondre aux paramètres de votre système.
Lorsque vous mettez à jour le fichier, assurez-vous que vous mettez à jour les paramètres dans les sections suivantes :
SID_LIST_LISTENER
LISTENER
WALLET_LOCATION
SSL_CLIENT_AUTHENTICATION
Par exemple, vos clés mises à jour peuvent ressembler au fragment de code suivant :
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = WCS)
(SID_NAME = WCS)
(ORACLE_HOME = Oracle_installdir\dbhome_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = myhostname.mycompany.com)(PORT = 2484))
)
)
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = C:\server.wallet)
)
)
SSL_CLIENT_AUTHENTICATION = FALSE
-
Mettez à jour le fichier de configuration sqlnet.ora d'Oracle.
-
Accédez au répertoire suivant et ouvrez le fichier sqlnet.ora pour édition :
ORACLE_HOME/network/admin
ORACLE_HOME\network\admin
Où
ORACLE_HOME est le répertoire racine de votre base de données Oracle. Par exemple,
C:\ORACLE\ORA92.
-
Mettez à jour les paramètres de configuration pour correspondre aux paramètres de votre système.
Lorsque vous mettez à jour le fichier, veillez à mettre à jour les paramètres suivants :
SQLNET.AUTHENTICATION_SERVICES
SSL_CLIENT_AUTHENTICATION
SSL_VERSION
NAMES.DIRECTORY_PATH
WALLET_LOCATION
Par exemple, vos paramètres peuvent ressembler au fragment de code suivant :
SQLNET.AUTHENTICATION_SERVICES = (BEQ, TCPS, NTS)
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 3.0
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = C:\server.wallet)
)
)
-
Redémarrez l'écouteur Oracle en exécutant la commande suivante à partir du répertoire Oracle bin :
-
Démarrez votre base de données Oracle en exécutant la commande suivante à partir du répertoire Oracle bin :
sqlplus / as sysdba
startup;
quit;
Configurez le niveau client de vos utilitaires pour inclure un portefeuille Oracle qui comprend les certificats SSL appropriés.
Remarque : Si le niveau client où les utilisateurs exécutent les utilitaires
HCL Commerce est le même que le niveau serveur de votre base de données, passez à l'étape
15.
-
Créez un portefeuille Oracle avec l'utilitaire orapki dans votre environnement client.
Par exemple, exécutez la commande suivante à partir du répertoire Oracle
bin :
orapki wallet create -wallet c:\client.wallet -auto_login -pwd cl13ntp45s
-
Importez le certificat SSL à partir du niveau serveur de votre base de données.
Par exemple, dans un utilitaire de ligne de commande, exécutez la commande suivante à partir du répertoire Oracle
bin :
orapki wallet add -wallet wallet_directory -trusted_cert
-cert certificate_file -pwd wallet_password
Où
- wallet_directory est le répertoire dans lequel vous voulez créer le portefeuille. Par exemple,
c:\client.wallet.
- certificate_file est le chemin et le nom du fichier qui doivent être inclus dans le certificat que vous exportez. Par exemple,
c:\server.cert.
- wallet_password est le mot de passe que vous souhaitez définir pour le portefeuille. Par exemple,
cl13ntp45s.
Par exemple,
orapki wallet add -wallet c:\client.wallet -trusted_cert -cert c:\server.cert -pwd cl13ntp45s
- Facultatif :
Si vous importez des certificats à partir de serveurs multiples, veillez à ce que les certificats aient des noms distinctifs différents (DN).
-
Assurez-vous que votre portefeuille Oracle est lisible par l'utilisateur ou le groupe qui doit appeler les utilitaires HCL Commerce.
Par exemple, le groupe qui comprend l'utilisateur WebSphere Application Server.
-
Mettez à jour le fichier de configuration Oracle sqlnet.ora pour votre client.
-
Accédez au répertoire suivant et ouvrez le fichier sqlnet.ora pour édition :
ORACLE_HOME/network/admin
ORACLE_HOME\network\admin
Où
ORACLE_HOME est le répertoire racine de votre base de données Oracle. Par exemple,
C:\ORACLE\ORA92.
-
Mettez à jour les paramètres de configuration pour correspondre aux paramètres de votre système.
Lorsque vous mettez à jour le fichier, veillez à mettre à jour les paramètres suivants :
SQLNET.AUTHENTICATION_SERVICES
SSL_CLIENT_AUTHENTICATION
SSL_VERSION
NAMES.DIRECTORY_PATH
WALLET_LOCATION
Par exemple, vos paramètres peuvent ressembler au fragment de code suivant :
SQLNET.AUTHENTICATION_SERVICES = (TCPS, BEQ, NTS)
SSL_VERSION = 3.0
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = c:\client.wallet)
)
)
SSL_CLIENT_AUTHENTICATION = FALSE
-
Mettez à jour le fichier de configuration tnsnames.ora d'Oracle.
-
Accédez au répertoire suivant et ouvrez le fichier tnsnames.ora pour édition :
ORACLE_HOME/network/admin
ORACLE_HOME\network\admin
Où
ORACLE_HOME est le répertoire racine de votre base de données Oracle. Par exemple,
C:\ORACLE\ORA92.
-
Ajoutez une entrée TNS dans le fichier tnsnames.ora. L'entrée doit pointer vers votre serveur de base de données.
Par exemple, votre configuration peut ressembler au fragment de code suivant :
WCS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCPS)(HOST = myhostname.mycompany.com)(PORT = 2484))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WCS)
)
)
Définissez la configuration de la classe AllDBConnector pour établir une connexion de base de données pour que les utilitaires HCL Commerce utilisent le certificat dans le portefeuille Wallet.
-
Mettez à jour le fichier de configuration de connexion à la base de données pour la classe AllDBConnector afin d'assurer que les utilitaires HCL Commerce peuvent authentifier les utilisateurs avec le portefeuille Oracle.
-
Accédez au répertoire suivant et ouvrez le fichier de configuration alldbconnector.xml pour édition.
WCDE_installdir\WC\xml\config
-
Mettez à jour le fichier alldbconnector.xml pour inclure deux remplacements pour configurer la façon dont les utilitaires authentifient les utilisateurs.
Dans la première configuration de remplacement, vous devez configurer le remplacement pour votre base de données client locale. Dans la deuxième configuration de remplacement, configurez les propriétés de remplacement de connexion de votre base de données d'environnement de production. Cette seconde configuration de remplacement assure que les utilitaires peuvent utiliser les certificats SSL pour authentifier les utilisateurs quand un utilitaire tel que stagingprop, doit se connecter à plusieurs bases de données.
Remarque : Pour l'identificateur de propriété de remplacement, oradestwallet, une entrée TNS correspondante, WCSDEST, doit exister dans le fichier de configuration tnsnames.ora pour votre environnement client d'utilitaire.
Pour plus d'informations sur les propriétés que vous pouvez inclure dans votre configuration de remplacement dans le fichier alldbconnector.xml, voir Acquisition de connexion de base de données pour les utilitaires et les tâches Ant.
- Si le type de pilote de base de données Oracle est un pilote léger, la configuration de la classe AllDBConnector mise à jour dans le fichier alldbconnector.xml peut ressembler au fragment de code suivant :
<oracle>
<override identifier="orasrcwallet">
<property name="oracle.jdbc.J2EE13Compliant" type="java.lang.Boolean" value="true"/>
<property name="oracle.net.tns_admin"
value="Oracle_installdir\dbhome_1\network\admin" scope="system" />
<property name="oracle.net.wallet_location"
value="(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=wallet_directory)))" />
<property name="oracle.net.ssl_version" value="3.0" />
<property name="oracle.net.authentication_services" value="(TCPS)" />
<jdbcurl value="jdbc:oracle:thin:@wcs" />
<security providername="oracle.security.pki.OraclePKIProvider" />
<jar path="Oracle_installdir\dbhome_1\jlib\oraclepki.jar" />
<jar path="Oracle_installdir\dbhome_1\jlib\osdt_cert.jar" />
<jar path="Oracle_installdir\dbhome_1\jlib\osdt_core.jar" />
</override>
<override identifier="oradestwallet">
<property name="oracle.jdbc.J2EE13Compliant" type="java.lang.Boolean" value="true"/>
<property name="oracle.net.tns_admin"
value="Oracle_installdir\dbhome_1\network\admin" scope="system" />
<property name="oracle.net.wallet_location"
value="(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=wallet_directory)))" />
<property name="oracle.net.ssl_version" value="3.0" />
<property name="oracle.net.authentication_services" value="(TCPS)" />
<jdbcurl value="jdbc:oracle:thin:@wcsdest" />
<security providername="oracle.security.pki.OraclePKIProvider" />
<jar path="Oracle_installdir\dbhome_1\jlib\oraclepki.jar" />
<jar path="Oracle_installdir\dbhome_1\jlib\osdt_cert.jar" />
<jar path="Oracle_installdir\dbhome_1\jlib\osdt_core.jar" />
</override>
</oracle>
- Si le type de pilote de base de données Oracle est un pilote lourd, la configuration de la classe AllDBConnector mise à jour dans le fichier alldbconnector.xml peut ressembler au fragment de code suivant :
<oracle>
<override identifier="orasrcwallet">
<property name="oracle.jdbc.J2EE13Compliant" type="java.lang.Boolean" value="true"/>
<property name="oracle.net.wallet_location"
value="(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=wallet_directory)))" />
<property name="oracle.net.ssl_version" value="3.0" />
<jdbcurl value="jdbc:oracle:oci:@wcs" />
<security providername="oracle.security.pki.OraclePKIProvider" />
<jar path="Oracle_installdir\dbhome_1\jlib\oraclepki.jar" />
<jar path="Oracle_installdir\dbhome_1\jlib\osdt_cert.jar" />
<jar path="Oracle_installdir\dbhome_1\jlib\osdt_core.jar" />
</override>
<override identifier="oradestwallet">
<property name="oracle.jdbc.J2EE13Compliant" type="java.lang.Boolean" value="true"/>
<property name="oracle.net.wallet_location"
value="(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=wallet_directory)))" />
<property name="oracle.net.ssl_version" value="3.0" />
<jdbcurl value="jdbc:oracle:oci:@wcsdest" />
<security providername="oracle.security.pki.OraclePKIProvider" />
<jar path="Oracle_installdir\dbhome_1\jlib\oraclepki.jar" />
<jar path="Oracle_installdir\dbhome_1\jlib\osdt_cert.jar" />
<jar path="Oracle_installdir\dbhome_1\jlib\osdt_core.jar" />
</override>
</oracle>
Où
- orasrcwallet est l'identificateur de la configuration de remplacement pour votre environnement de création ou de transfert.
- oradestwallet est l'identificateur de la configuration de remplacement pour votre environnement de production.
- wallet_directory est le répertoire qui comprend le portefeuille. Par exemple,
c:\server.wallet.
Résultats
Vos utilitaires HCL Commerce sont configurés pour authentifier les utilisateurs par le biais d'un portefeuille Oracle Wallet. Pour utiliser cette authentification, les utilisateurs qui exécutent un utilitaire HCL Commerce peuvent continuer à exécuter l'utilitaire normalement. Les utilisateurs ne doivent pas modifier de paramètres qu'ils définissent lorsqu'ils exécutent un utilitaire.