delivered for clients · names withheldmigration Identity and access

ForgeRock AM/IDM to PingOne Advanced Identity Cloud

Cohash moves self-managed ForgeRock AM, IDM and DS estates to PingOne Advanced Identity Cloud, the SaaS platform formerly called ForgeRock Identity Cloud. We inventory every authentication tree, custom node, script and IDM mapping, rebuild them in development, staging and production tenants, connect on-premises targets through a remote connector server, and move users and applications in waves with a rollback point for each.

  1. 01Inventory trees, nodes and mappings
  2. 02Rework custom code for a SaaS tenant
  3. 03Build tenants and promotion
  4. 04Connect on-premises targets
  5. 05Users, cookie domains and waves
  6. 06Decommission
case-study / forgerock-to-pingone-advanced-identity-cloud delivered
beforeForgeRock AM and IDM (self-managed) afterPingOne Advanced Identity Cloud
01 · USERS AND APPS 02 · ADVANCED IDENTITY CLOUD 03 · YOUR NETWORK 04 · TARGETS Users: custom domain · same sign-in Users custom domain · samesign-in Applications: OIDC · SAML · re-pointed in waves Applications OIDC · SAML ·re-pointed in waves Advanced Identity Cloud: journeys · scripted nodes · ESVs Advanced IdentityCloud journeys · scriptednodes · ESVs Dev, staging, prod tenants: promoted from source control Dev, staging, prodtenants promoted from sourcecontrol Remote connector server: outbound to the tenant Remote connectorserver outbound to the tenant Active Directory: accounts · groups Active Directory accounts · groups Internal databases: application accounts Internal databases application accounts
case file

The story

Told without the client's name or anything that could identify them.

what happened

A retailer's identity team ran self-managed ForgeRock AM, IDM and DS on Kubernetes, on an AM 7.x build that predated the PingAM rename. Custom Java authentication nodes only built on one engineer's laptop, and DS replication, reconciliation and cluster patching took more time than onboarding applications. When the PingAM 8.x upgrade estimate came in, they asked what the SaaS tenant would take instead. We exported every tree, node, mapping and OAuth client, rewrote the Java nodes as scripted logic or built-in nodes, and built development, staging and production tenants from source control. Applications then moved to PingOne Advanced Identity Cloud in waves, with the old stack kept as the rollback until results matched for a full cycle.

why it was urgent

Since February 2026, PingAM and PingIDM (the old ForgeRock AM and IDM) follow Ping's unified End of Life policy. The 7.5 line is Long-Term Support, and 8.0 is Short-Term Support, which hits End of Life roughly two years after the next version ships. Older 7.x builds are left with a choice: commit to a self-managed upgrade cadence, or move to the SaaS tenant.

problem statement
  • openThe estate runs an AM 7.x build that predates the PingAM rename, and nobody has planned the next upgrade.
  • recurringCustom Java authentication nodes were written years ago and only build on one engineer's laptop.
  • blockedKeeping DS replication, IDM reconciliation and Kubernetes patched eats more of the week than onboarding applications does.
  • openThe upgrade estimate for PingAM 8.x came back and someone asked what the SaaS tenant would cost instead.
architecture

The estate, before and after

before
before

Before: self-managed ForgeRock AM, IDM and DS

Applications signed users in through an older AM 7.x build with custom Java nodes. IDM reconciled and provisioned to Active Directory and databases, and the team ran DS replication and Kubernetes patching itself.

Before: self-managed ForgeRock AM, IDM and DS Applications signed users in through an older AM 7.x build with custom Java nodes. IDM reconciled and provisioned to Active Directory and databases, and the team ran DS replication and Kubernetes patching itself. 01 · USERS AND APPS 02 · SELF-MANAGED FORGEROCK 03 · TARGETS sign in OIDC · SAML auth trees profiles · sessions sync provision reconciliation Users browser · mobile Applications OIDC · SAML FR ForgeRock AM 7.x build predates PingAMrename Custom Java nodes build on one laptop ForgeRock IDM mappings · reconciliation ForgeRock DS replication on Kubernetes Active Directory accounts · groups Internal databases application accounts
Read the diagram as text
  1. Users → ForgeRock AM 7.x: sign in
  2. Applications → ForgeRock AM 7.x: OIDC · SAML
  3. Custom Java nodes → ForgeRock AM 7.x: auth trees
  4. ForgeRock AM 7.x → ForgeRock DS: profiles · sessions
  5. ForgeRock IDM → ForgeRock DS: sync
  6. ForgeRock IDM → Active Directory: provision
  7. ForgeRock IDM → Internal databases: reconciliation
after
after

After: PingOne Advanced Identity Cloud with a remote connector

Users and applications sign in through journeys in the PingOne Advanced Identity Cloud tenant, with configuration promoted from source control. A remote connector server inside the network connects out to the tenant and provisions Active Directory and databases.

After: PingOne Advanced Identity Cloud with a remote connector Users and applications sign in through journeys in the PingOne Advanced Identity Cloud tenant, with configuration promoted from source control. A remote connector server inside the network connects out to the tenant and provisions Active Directory and databases. 01 · USERS AND APPS 02 · ADVANCED IDENTITY CLOUD 03 · YOUR NETWORK 04 · TARGETS sign in OIDC · SAML promote config outbound connection provision reconciliation Users custom domain · samesign-in Applications OIDC · SAML · re-pointedin waves Pi Advanced IdentityCloud journeys · scriptednodes · ESVs Dev, staging, prodtenants promoted from sourcecontrol Remote connector server outbound to the tenant Active Directory accounts · groups Internal databases application accounts
Read the diagram as text
  1. Users → Advanced Identity Cloud: sign in
  2. Applications → Advanced Identity Cloud: OIDC · SAML
  3. Dev, staging, prod tenants → Advanced Identity Cloud: promote config
  4. Remote connector server → Advanced Identity Cloud: outbound connection
  5. Remote connector server → Active Directory: provision
  6. Remote connector server → Internal databases: reconciliation
results

What the client got

What changed for the client once the work was done. Described, not scored: we don't publish client figures.

  1. result 01

    No AM, IDM or DS servers to patch

    Sign-in, identity management and the directory now run in PingOne Advanced Identity Cloud. We shut down the self-managed servers and archived their audit logs for retention.

  2. result 02

    No custom Java that builds on one laptop

    We rewrote the custom Java nodes as scripted logic or replaced them with built-in nodes. Secrets and per-environment values live in ESVs now.

  3. result 03

    Every configuration change is reviewed

    We keep journeys, applications and identity configuration as exported files in source control, promoted from development through staging to production.

  4. result 04

    On-premises targets still get provisioned

    A remote connector server links the tenant to Active Directory and the internal databases, and mappings were run against real data before we turned on live sync.

  5. result 05

    Users kept signing in through the move

    Profiles and supported hashes got imported. Everyone else moved over the next time they signed in. We set custom and cookie domains before each application wave.

what can go wrong

Risks we plan for

  1. Custom Java nodes with no SaaS equivalent

    Nodes that call internal services or hold state need a design decision before the build starts. Leaving them to the end turns a migration into a rewrite under deadline.

  2. Hash formats that won't import

    Certain hash schemes or salts can't be imported into the tenant. Users with those hashes migrate just in time when they next sign in, so the old store has to stay up a while longer.

  3. Cookie and session changes

    Apps that read the AM session cookie directly, or share a parent domain with it, can break when the cookie domain changes. We test each one in real browsers before its wave.

  4. Reconciliation drift during the parallel run

    Let old and new IDM both write to a target and they'll keep overwriting each other. So every target has a single provisioning side at a time, and the switch date is written down.

ai in this move

Where AI helps, and where it needs guardrails

In PingAM 8.1 an AI agent is an OAuth client acting for a user through delegated token exchange, and Ping's Identity for AI products have been generally available since 24 March 2026. We use the migration to give every agent and MCP server a client, scopes and an owner of its own. The shared service accounts that many AM estates run on stay behind. Coding assistants draft node script conversions for us, and each one has to pass recorded test sign-ins before it's promoted.

forward deployed engineers →
you keep

What you're left with

We write these for your setup, and they're working documents. Your team should be able to keep things running from them long after we've gone.

  • inventory01

    Inventory of trees, nodes, scripts, OAuth clients and IDM mappings, with a rebuild, replace or retire call on each

    yours to keep
  • code02

    Tenant configuration as exported files with a promotion pipeline

    yours to keep
  • tests03

    Remote connector server build and mapping test results per target

    yours to keep
  • plan04

    User import plan covering hash formats, duplicates and just-in-time migration

    yours to keep
  • runbook05

    Wave plan and cut-over runbook with a rollback point per application group

    yours to keep
talent and delivery · pingone advanced identity cloud

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
01Should we upgrade to PingAM 8.x or move to PingOne Advanced Identity Cloud?

It depends on hosting rules, how much custom Java you own and who runs the platform. Strict data residency or heavy custom nodes favor staying self-managed on the 7.5 LTS line or 8.x. A small custom footprint and a team tired of patching DS and Kubernetes favor the SaaS tenant. We count the custom objects and price both paths.

02Do users have to reset their passwords?

Not if the hash format imports. If it doesn't, just-in-time migration moves each user on their next sign-in. They type the same password and never get a reset email.

03Can the old and new platforms run at the same time?

Yes. We move applications in waves and keep the self-managed stack live. Each target's provisioning switches once, on a date we record, so the two IDM instances never compete for accounts.

04How long does it take?

It depends on how many authentication trees and custom nodes you have, how many targets need the remote connector server and how many applications share session cookies. The inventory in the first phase gives us the real estimate.

sources 6 sources linked last checked 2026-10-20 content fingerprint 03490418
  1. 01Ping Identity docs: PingOne Advanced Identity Cloud (formerly ForgeRock Identity Cloud)docs.pingidentity.com ↗
  2. 02Ping Identity docs: name changes for ForgeRock products (PingAM 8 reference)docs.pingidentity.com ↗
  3. 03Ping Identity developer blog: LTS, STS and everything in between (5 Dec 2025)developer.pingidentity.com ↗
  4. 04Ping Identity: End of Life Policypingidentity.com ↗
  5. 05Ping Identity docs: New in PingAM 8.1.xdocs.pingidentity.com ↗
  6. 06Ping Identity press release: Identity for AI generally available (24 Mar 2026)press.pingidentity.com ↗
Reviewed by the Cohash team Product names are trademarks of their owners. how we handle facts and data →
next step

Planning this move?

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it