Skip to main content

Building One Tap for PingFederate 12.3.3: Architecture and Bridge

Learn how to build a local One Tap sign-in implementation for PingFederate 12.3.3 by properly managing distinct states and secure account bridges.

AI-written
Inewgen
30 Aug 2026Source: Dev.to3 min read (0 views)
Share
Building One Tap for PingFederate 12.3.3: Architecture and Bridge

Stock photo for illustration only, not from the actual event

Font size
  • Modern One Tap sign-in with PingFederate 12.3.3 requires separating web app and authentication states.
  • A Secure Account Bridge reads HttpOnly cookies via an origin-restricted iframe using postMessage and nonce.
  • Supports OIDC Authorization Code flow with PKCE and silent authentication parameters like prompt=none.
  • Part 2 will cover packaging the adapter with Docker and provisioning with Terraform.

Modern sign-in experiences that remember returning users and allow continuation with a single click require more than just a visual account picker when implemented with PingFederate. The browser, PingFederate, and the web application each maintain distinct states, and merging them causes repeated password prompts, stale panels, and broken logout behaviors.

This series details a working local implementation tailored for PingFederate 12.3.3, with the complete source code made available via GitHub at github.com/darkedges/pingfedonetap.

system architecture diagram technical flowchart computer screen

Stock photo for illustration only, not from the actual event

The critical distinction lies in separating the web application's local signed-in state, the PingFederate authentication session determining password challenges, and the Identifier First adapter cookie remembering successful authentications. These distinct states must be carefully coordinated rather than merged together.

Never miss the latest news?

Subscribe to get news summaries by email - not often enough to be annoying.

โฆษณา

Separating session states across different application layers is a foundational security best practice in modern identity federation. By keeping token handling and app-level session management distinct, developers prevent token leakage and maintain granular control over browser storage and application boundaries.

Running the demo application at http://localhost:8080 alongside PingFederate at https://localhost:9031 introduces cross-origin boundaries, meaning the web app cannot inspect cookies directly. The solution introduces a dedicated status-only adapter running on the PingFederate origin to bridge this safely.

"A remembered account is not automatically a passwordless account.": The account chooser answers "who might sign in?" A valid PingFederate authentication session answers "has this user already proved who they are?"

DarkEdges

To ensure secure cross-origin communication, the bridge implements several strict controls:

  • Configured origins are normalized, rejecting unexpected paths, query strings, or fragments.
  • A randomized nonce ranging from 32 to 128 hexadecimal characters is validated on every message exchange.
  • Iframes are sandboxed with allow-scripts and restricted via a narrow Content-Security-Policy frame-ancestors header.

Source: Dev.to

Comments

Leave a Comment
0/2000

Found something wrong in this article? Report an issue with this article