Running PingFederate as a service using a gMSA on Windows
You can run PingFederate as a service using a group Managed Service Account (gMSA) on Windows. gMSAs automatically rotate passwords on a recurring basis. This improves security and reduces password expiration-related downtime by offloading password management onto Windows. gMSAs provide distinct network identity for services. This enables granular, least-privilege access controls on resources, and simplifies multi-server cluster or farm deployments by allowing authorized hosts to share the single managed account. Compared to traditional user or built-in accounts, gMSAs reduce administrative overhead and strengthen the overall security posture for applications running on a Windows Server.
Learn more about gMSAs in Group Managed Service Accounts overview in the Windows documentation.
Before you begin
-
Java 11, 17, or 21. Check Java requirements for the version of PingFederate you want to deploy.
-
Find the prerequisites for managing a gMSA in the Windows documentation.
Setting up the gMSA
Steps
-
From a Domain Controller within the Active Directory, use the
New-ADServiceAccount
command to create the gMSA.New-ADServiceAccount <accountName> -DNSHostName <serviceHostName> -PrincipalsAllowedToRetrieveManagedPassword <computerAccountsAbleToAccessAccount>
Example:
New-ADServiceAccount PingFarm -DNSHostName pingfederate02.jones.lab -PrincipalsAllowedToRetrieveManagedPassword PINGFEDERATE02$
Find a list of other gMSA properties you can set using the Set-ADServiceAccount command in the Windows documentation.
-
Use the
Install-ADServiceAccount
command to install the gMSA on the specified host machine.Example:
On the
pingfederate02
machine from the previous example, you would run the following:Install-ADServiceAccount -Identity 'PingFarm'
-
Verify the installation by running the
Test-ADServiceAccount
command.Example:
If the connection succeeded, running the following command returns a value of
true
:Install-ADServiceAccount -Identity 'PingFarm'
Installing PingFederate as a service
Steps
-
Install PingFederate as a service.
Choose from:
-
Use the
.msi
installer. Learn more in Installing PingFederate on Windows. -
Use the install-service script.
-
Download and unzip the PingFederate
.zip
archive. Learn more in Installing the PingFederate service on Windows manually -
Run the
<pingfed_install>/pingfederate/sbin/win-x86-64/install-service.bat
file.
-
-
-
Install PingFederate to a neutral directory like
C:\Program Files\Ping Identity\
. -
Right-click PingFederate folder > Properties > Security.
-
Under the Group or user names section, click Edit > Add > Advanced > Object Types.
-
Select the Service Accounts checkbox.
-
Click OK
-
Click Find Now.
-
Click your gMSA.
-
Click OK > OK.
-
Grant the gMSA account full control of the
PingFederate
folder.
Running PingFederate as a service with gMSA
-
In Windows, search for
Services
and launch it. -
Find PingFederate in the list.
-
Right-click PingFederate > Properties > Log On.
-
Under Log on as > This account > Browse > Advanced > Find Now, select the gMSA.
-
Clear the Password fields and click OK.
-
Search for
Local Security Policy
and launch it. -
Click Local Policy > User Rights Assignment and grant the gMSA Log on as a service permission.
-
Go to Services and launch or relaunch PingFederate.