Integrating with Thales Luna Network HSM
PingFederate supports multiple hardware security modules (HSMs), including Thales Luna Network HSMs.
Steps
-
Ensure that the PingFederate server has a supported Java virtual machine (JVM) installed.
Learn more in Installing Java.
-
Install and configure your Thales Luna Network HSM, including the optional JSP package for Java, according to Thales’s instructions.
This includes creating a partition, creating a Network Trust Link (NTL), and assigning a client to a partition.
-
Ensure the operation of the
vtl verifycommand to indicate secure and proper communication with the HSM. -
Delete any unnecessary keys or objects created while testing communication to the HSM from the host running PingFederate.
-
For your PingFederate installation, record the password used to open communication to the HSM through the NTL.
-
-
On the network interconnected to the HSM, set up a new PingFederate installation.
To integrate an existing PingFederate installation with your HSM, skip to the next step.
-
To enable the Java interface, copy the Luna library and program files to the Java installation as follows.
Operating system Steps Windows
Copy the
LunaAPI.dllandLunaProvider.jarfiles from theLUNA_HOME/jsp/libdirectory to the<pf_install>/pingfederate/startupdirectory.Linux
Copy the
libLunaAPI.soandLunaProvider.jarfiles from theLUNA_HOME/jsp/libdirectory to the<pf_install>/pingfederate/startupdirectory.Prior to installing PingFederate, Thales provides sample Java applications to test that the Java HSM interface works. For more information, see the HSM documentation from Thales.
-
Edit the
<pf_install>/pingfederate/server/default/conf/service-points.conffile.-
Go to the
# Crypto provider servicessection. -
Change the
jce.managerandcertificate.serviceservice endpoints to the following:... jce.manager=com.pingidentity.crypto.LunaJCEManager ... certificate.service=com.pingidentity.crypto.LunaCertificateServiceImpl ...
In clustered PingFederate environments, you must manually edit the
service-points.conffile on each node because cluster replication can’t replicate this change to other nodes.
-
-
In
com.pingidentity.crypto.LunaPartitions.xml, configureDefaultPartitionSlotOrLabelwith the slot number or label associated with the HSM partition you created in [step1]. -
Update the
<pf_install>/pingfederate/bin/run.propertiesfile.-
Change the value of
pf.hsm.modefromOFFtoLUNA. -
To configure a new PingFederate installation, set the value of
pf.hsm.hybridtofalse. When set tofalse, the HSM stores newly created or imported certificates.
To configure an existing PingFederate installation, set the value to
truefor the flexibility to store each relevant key and certificate on the HSM or the local trust store. This allows you to transition the storage of keys and certificates to your HSM without deploying a new PingFederate environment. For more information, see Transitioning to an HSM. -
-
From the
<pf_install>/pingfederate/bindirectory, run thehsmpass.batbatch file for Windows or thehsmpass.shscript for Linux.-
Enter the NTL password when prompted. For more information, see [step1].
This procedure securely stores the password for NTL communication to the HSM from PingFederate.
The Thales Luna Network HSM supports configuration in a high-availability group. For more information, see the Thales distributed-installation instructions. To properly synchronize data, ensure that the
HAOnlyproperty is enabled using thevtl haAdmin –HAOnly –enablecommand. -
-
Repeat these steps on each node.
-
Start the new PingFederate server or restart the existing PingFederate server.
Whenever you restart the Luna HSM, Thales recommends you also restart dependent processes such as PingFederate and all server nodes in a cluster.