Storing passwords in a vault
You can use a vault to store the OpenPages® database user password, the OPSystem user password, or both.
This topic applies to IBM OpenPages traditional on-premises and IBM OpenPages on Cloud.
Before you begin
- You need a CyberArk vault.
- Request an SSL certificate from your CyberArk administrator. The certificate is required to authenticate the connection between OpenPages and CyberArk.
- In CyberArk, create an Application for OpenPages. For more information, see the CyberArk documentation.
- In CyberArk, add one or both of the following user accounts to the vault. Put the
accounts into the same safe within the vault.
- The OpenPages database user, for example
openpage - The OPSystem user
- The OpenPages database user, for example
About this task
When OpenPages needs a password, it retrieves it from the vault. When you need to change the password, you update it in the vault.
Procedure
-
Set up the SSL certificate keystore with the client certificate and server
certificates:
-
Add the client certificate to the keystore. If the client certificate is in
.crt or .pem format, convert it:
In this example, the client certificate is cyberark-client.p12 and the keystore is cyberark-ssl8.p12.
keytool -importkeystore -srckeystore cyberark-client.p12 -srcstoretype pkcs12 -destkeystore cyberark-ssl8.p12 -deststoretype pkcs12 -
Add any server certificates to the same keystore by running the following
command:
In this example, the server certificate is cpd-cyberark1-chain.pem.
keytool -importcert -file cpd-cyberark1-chain.pem -alias cpd-cyberark -keystore cyberark-ssl8.p12 -storetype pkcs12 -
Copy the keystore file to the following directory on each application server:
<OP_HOME>/aurora/conf/.
For example: <OP_HOME>/aurora/conf/cyberark-ssl8.p12
-
Add the client certificate to the keystore. If the client certificate is in
.crt or .pem format, convert it:
-
Configure the vault properties.
- Log in to the application server and go to the <OP_HOME>/aurora/conf/ directory.
- Create a file called vault.properties.
-
Copy the following text into the file:
implementation=CyberArk cyberark.safe= cyberark.account= cyberark.db.user= cyberark.db.object= cyberark.opsystem.object= cyberark.keystore.file= cyberark.keystore.pass= cyberark.url= cyberark.ssl.disable.hostname.verification=true|false cyberark.keystore.type=pkcs12 cyberark.keystore.alias= cyberark.db.folder= cyberark.opsystem.folder= - Configure the following properties in the file:
Table 1. Vault properties Property Description cyberark.safeType the name of the vault. For example: OpenPagesSafecyberark.accountType the unique ID of the application (App ID) that you created in CyberArk for OpenPages. cyberark.db.usercyberark.db.objectIf you are storing the OpenPages database user password in the vault, complete these fields. -
cyberark.db.user: Type the username of the OpenPages database user. The name must match the name in the vault. -
cyberark.db.object: Type the account name (unique ID) of the object in your vault that stores the database password.
For example:cyberark.db.user=openpage cyberark.db.object=Database-Oracle-openpagecyberark.opsystem.objectIf you are storing the OPSystem password in the vault, type the account name (unique ID) of the object in your vault that stores the OPSystem password. cyberark.keystore.fileType the absolute path to the keystore that contains the CyberArk server certificates. For example: /home/opuser/OP/OpenPages/aurora/conf/cyberark-ssl8.p12An absolute file path is required because the same properties file will be used by multiple components that will have different relative path locations.
cyberark.keystore.passType the password of your client certificate keystore. cyberark.keystore.aliasType the alias of the keystore. cyberark.urlType the HTTPS URL for CyberArk. For example: https://myserver-cyberark.comcyberark.ssl.disable.hostname.verificationSet to false(default) unless the SSL server certificate and the hostname of the CyberArk environment are not the same. You might encounter this situation in non-production environments that use self-signed certificates.cyberark.keystore.typeThis property must be set to pkcs12.cyberark.db.folderOptional Specifies the CyberArk folder in the safe under which
cyberark.db.objectis located.cyberark.opsystem.folderOptional Specifies the CyberArk folder in the safe under which
cyberark.opsystem.objectis located.Leave blank if you don't need this property.
-
- If you do not have values for the following properties, remove them from the file. Do not
leave these properties in the file with blank values.
cyberark.opsystem.objectcyberark.keystore.aliascyberark.db.folder
-
If you're storing the database password in the vault, update the Liberty database data
source files (op-ora.xml or op-db2.xml) on each
application server.
- Go to the <OP_HOME>/wlp-usr/servers/<server_name>Server<#>/configDropins/overrides/
directory. If the op-ora.xml or op-db2.xml file is not in the overrides directory, copy it from the <OP_HOME>/wlp-usr/servers/<server_name>Server<#>/op-db2.xml directory.
Do not modify or delete the files in <OP_HOME>/wlp-usr/servers/<server_name>Server<#> file.
- Open the op-ora.xml or op-db2.xml file in the <OP_HOME>/wlp-usr/servers/<server_name>Server<#>/configDropins/overrides/ directory.
-
Add the following
jaasContextEntryelements:<jaasLoginContextEntry id="vaultJAASLoginEntry" name="vaultJAASLoginEntry" loginModuleRef="vaultLoginModule" /> <jaasLoginModule id="vaultLoginModule" className="com.ibm.openpages.vault.jaas.VaultDBLoginModule" controlFlag="REQUIRED" libraryRef="vaultJaasLibrary"> <options VaultPropertiesPath="${openpages.home}/aurora/conf/vault.properties"/> </jaasLoginModule> <library id="vaultJaasLibrary"> <fileset dir="${openpages.home}/aurora/lib" includes="com.ibm.openpages.vault.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="com.ibm.openpages.vault.jaas.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="httpclient-*.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="httpcore-*.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="commons-logging-*.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="jackson-annotations-*.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="jackson-core-*.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="jackson-databind-*.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="bcprov-jdk15to18-*.jar"/> <fileset dir="${openpages.home}/aurora/lib" includes="aurora-tools.jar"/> </library> -
Update both of the
<dataSource...>elements in the file to add the following attribute:jaasLoginContextEntryRef="vaultJAASLoginEntry" -
Remove the
op.jdbc.passwordattribute from the nested properties of each of thedataSourceelements. -
Open the
<OP-HOME>/wlp-usr/servers/<server-name>-OPNode1Server1/bootstrap.properties
file and remove the
op.jdbc.passwordproperty. - Repeat these steps on each application server.
- Go to the <OP_HOME>/wlp-usr/servers/<server_name>Server<#>/configDropins/overrides/
directory.
-
If you're storing the database password in the vault and you are using an Oracle
database, do the following steps:
-
Edit the
/home/opuser/OP/OpenPages/aurora/bin/op-backup-restore.envfile. -
Set the following property:
VAULT_IMPLEMENTATION=CyberArk -
Comment out or remove the
DB_OP_PWDproperty. - Repeat these steps on each application server.
-
Edit the
-
If you're storing the database password in the vault and you use Global Search, do the
following steps:
- If the global search server is on a different host than the application server, copy the vault.properties file and the certificate .p12 file to the search server.
- Edit the /home/opuser/OP/OPSearch/opsearchtools/openpages_search.properties file.
-
Change the line
OPSearchTool.DatabaseVaultProperties=to the absolute path of the vault.properties file on the search server. -
Comment out the
OPSearchTool.DatabasePasswordproperty. - Restart the search server.
-
If you're storing the OPSystem password in the vault, do the following steps:
-
Open the
aurora.propertiesfile. -
Remove or comment out the following property:
security.system.password - Repeat these steps on each application server.
-
Open the
- Restart all application servers.
- If you use Global Search, restart the search server.
What to do next
When you need to change the OPSystem password, update it in the vault, and then run the
chng-sys-password utility. See Changing the OPSystem password.