Certified Professional - PingAM Exam Questions and Answers
What should be executed to ensure a successful upgrade when PingAM requires a version upgrade?
Options:
Post-upgrade, run a set of functional tests
Post-upgrade, run a set of functional and non-functional tests
Post-upgrade, run a set of non-functional tests
Post-upgrade, set the PingAM Version Control Flag to the correct version
Answer:
BExplanation:
Upgrading PingAM 8.0.2 is a complex process that involves updating binaries, modifying schemas in the configuration store, and potentially migrating scripts to the "Next-Generation" scripting engine. To ensure that the system is not only "running" but also "production-ready," a comprehensive testing phase is required.
According to the "Post-Upgrade Tasks" and "Best Practices for Upgrading" documentation:
A successful upgrade verification must cover two distinct categories of testing:
Functional Tests: These verify that the core features still work as intended. Can users log in? Do the authentication trees execute correctly? Are SAML assertions being generated? This ensures the "Logic" of the identity platform is intact.
Non-Functional Tests: These are equally critical in an upgrade scenario. An upgrade can sometimes introduce performance regressions, change the way memory is utilized by the JVM, or alter the connection pool behavior to the CTS. Testing forperformance, high availability (failover), security (vulnerability scanning), and monitoringensures the system can handle production loads and meets the organization's Service Level Agreements (SLAs).
While setting version flags (Option D) might be a technical step in some internal processes, it does not "ensure a successful upgrade" in the way that rigorous validation does. Running only functional tests (Option A) or only non-functional tests (Option C) leaves the environment vulnerable to either logic errors or system crashes. Thus, the verified best practice is to runboth functional and non-functional tests(Option B) before redirecting production traffic to the upgraded instances.
Which of the following tab pages in the PingAM admin UI can be used to configure the OAuth2 and OpenID Connect may act scripts used for token exchange requests?
A) The OAuth2 provider service > Advanced tab page
B) The OAuth2 provider service > Core tab page
C) The OAuth2 client profile > Advanced tab page
D) The OAuth2 client profile > OAuth2 Provider Overrides tab page
Options:
B and D only
A and D only
A and C only
B and C only
Answer:
BExplanation:
The May Act script is a critical component of the OAuth 2.0 Token Exchange implementation in PingAM 8.0.2. It allows for the validation of impersonation or delegation requests. Because token exchange can be configured both globally for all clients and specifically for individual applications, the script can be attached at two different levels in the Administrative UI.
OAuth2 Provider Service > Advanced Tab (A): This is the global configuration level. If you want to apply a standard "May Act" validation script across the entire realm for any client performing a token exchange, you configure it here. This script will be the default unless specifically overridden.
OAuth2 Client Profile > OAuth2 Provider Overrides Tab (D): PingAM allows for granular control per client. If a specific "Confidential Client" (like a backend microservice) requires unique logic for determining who it can act as, you can specify a different script or override the global setting. This is done in the "OAuth2 Provider Overrides" tab within that specific client's configuration profile.
Why other options are incorrect: TheCoretab (B) is used for basic settings like issuer names and token lifetimes, not for advanced scripting hooks. TheAdvancedtab of the Client Profile (C) contains settings like TTLs and Logout URLs, but the specific ability to override "Provider" level logic (like the May Act script) is moved to the specializedOverridestab to keep the interface organized. Therefore, the correct locations areA and D, as identified in the "Token Exchange Configuration" guide for version 8.0.2.
When making a request to the /oauth2/access_token endpoint using the JWT profile client authentication method, which parameter is used to provide the JWT value?
Options:
client_credentials
client_token_value
client_id
client_assertion
Answer:
DExplanation:
PingAM 8.0.2 supports advanced client authentication methods defined in the OpenID Connect and OAuth 2.0 specifications, including private_key_jwt and client_secret_jwt. These methods allow a client to authenticate without sending a static password/secret in the request. Instead, the client generates and signs a JSON Web Token (JWT).
According to the "OAuth 2.0 Client Authentication" and "JWT Profile for Client Authentication" (RFC 7523) documentation, when a client sends this JWT to the /oauth2/access_token endpoint, it must use theclient_assertionparameter.
The request must also include theclient_assertion_typeparameter, which must be set to the constant value: urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
Option A (client_credentials)is a grant type, not a parameter for providing a JWT.
Option B (client_token_value)is not a standard OAuth2 parameter name.
Option C (client_id)is often included in the request, but it is the identifier of the client, not the container for the cryptographic assertion itself.
When PingAM receives a request with a client_assertion, it extracts the JWT, verifies the signature using the client's public key (stored in the client's profile or retrieved via a JWKS URI), and validates the standard claims (iss, sub, aud, exp). This method is significantly more secure than simple secrets because it proves the client possesses the private key and limits the window for replay attacks through the token's expiration claim.
What happens when an end user accesses the following login page: .../XUI/?ForceAuth=true#login?
Options:
Even if the end user is already authenticated, they will be redirected to the login page
The end user will be presented with second factor authentication
Nothing. ForceAuth is not a parameter that PingAM knows how to process
A screen is presented to the end user suggesting they enable second factor authentication
Answer:
AExplanation:
The ForceAuth=true parameter is a standard directive used in various authentication protocols (specifically SAML2 and OIDC) and is natively supported by the PingAM 8.0.2 XUI (the modern End-User User Interface).
According to the "Authentication and SSO" documentation:
Normally, if a user has an active, valid session cookie (iPlanetDirectoryPro), and they navigate to the AM login URL, PingAM will recognize the session and automatically redirect the user to their destination (the "Success URL") without prompting for credentials. This is the core benefit of Single Sign-On.
However, when the ForceAuth=true parameter is appended to the query string, it instructs the PingAM authentication engine tobypass the session checkfor the purpose of re-authentication. The engine will:
Ignore the existing valid session cookie.
Force the user back to thelogin page(rendering the initial nodes of the configured authentication tree).
Require the user to provide their credentials again.
This is a critical security feature for high-value transactions. For instance, if a user is already logged in but attempts to change their bank transfer details, the application can redirect them to AM with ForceAuth=true to ensure the person sitting at the computer is indeed the authorized user. Option B is incorrect because ForceAuth only forces are-authentication; whether that includes MFA depends on the tree configuration, not the parameter itself. Option C is incorrect as PingAM explicitly processes this parameter. Therefore, the primary outcome is theredirection to the login pageregardless of the current session state.
Which statements are correct in relation to an OAuth2 token exchange impersonation pattern?
A) The client may want to act as the subject on another service.
B) The client is used by a subject to act on behalf of another subject.
C) The requested token exchange involves a subject token only.
D) The requested token exchange involves a subject and actor token.
Options:
A and C only
B and D only
B and C only
A and D only
Answer:
DExplanation:
In PingAM 8.0.2, the OAuth 2.0 Token Exchange (RFC 8693) supports two primary patterns: delegation and impersonation. Understanding the difference between these is critical for secure microservices architecture.
According to the "Demonstrate Impersonation" section of the PingAM documentation,impersonationis a pattern where a client (the "Actor") acts as another identity (the "Subject") in a way that the downstream resource server sees only the Subject's identity.
Statement A is correct: In an impersonation flow, the client (which has been authorized by the user or is a trusted service) requests a token where it effectively "becomes" the subject to interact with another service. The downstream service treats the request as if it were coming directly from the subject, often with the same set of permissions.
Statement D is correct: To perform a token exchange for impersonation, the client must provide specific parameters to the /oauth2/access_token endpoint. It provides thesubject_token(representing the identity to be impersonated) and theactor_token(representing the identity of the client/service that is performing the impersonation). PingAM validates both tokens to ensure the "Actor" has the permission to impersonate the "Subject."
Why other statements are incorrect: Statement B describesdelegation(where an actor actson behalf ofa subject but maintains their own identity in the act claim). Statement C is incorrect because a token exchange inherently requires proving who the requester is (the actor) and whom they represent (the subject). Without both tokens, the AM server cannot verify the authorization relationship required for impersonation. Therefore, the combination ofA and Daccurately reflects the impersonation pattern in PingAM 8.0.2.
What is session denylisting used for?
Options:
Keeping track of session inactivity
Keeping track of restricted sessions
Keeping track of logged out sessions
Keeping track of absolute session timeouts
Answer:
CExplanation:
Session Denylisting is a critical security feature in PingAM 8.0.2, primarily used when a realm is configured for client-side sessions.9 In a client-side session model, the session state is stored in a signed and encrypted JWT within the user's browser cookie rather than in the server's memory or the Core Token Service (CTS).10 Because the server does not "own" the session state, a logout event typically only involves deleting the cookie from the browser. However, if a malicious actor had previously copied that cookie, they could still use it until it naturally expires.
To solve this, PingAM usesSession Denylistingto keep track oflogged out sessions.11When a user logs out, or when a session is invalidated (e.g., during a session upgrade or administrative action), AM records the session identifier in a denylist stored within theCore Token Service (CTS).12For every subsequent request, AM checks the incoming client-side session token against this denylist.13If the session ID is found in the denylist, AM rejects the token as invalid, even if the cryptographic signature is correct and the expiration time has not passed.
The documentation emphasizes that this feature is essential for "tracking session logouts across multiple AM servers" in a cluster. Without denylisting, there would be no way to perform a "global logout" for client-side sessions that is immediately effective across all nodes.14Administrators can configure properties such as theDenylist Purge Delay(to account for clock skew) and theDenylist Poll Interval(to balance security speed with system performance).15By effectively managing the lifecycle of revoked tokens, session denylisting ensures that a logout is a cryptographically and operationally certain event.
Which of the following is considered a confidential OAuth2 client?
Options:
Desktop clients
JavaScript clients
Web browsers
Web applications
Answer:
DExplanation:
According to the PingAM 8.0.2 documentation on "OAuth 2.0 Client Authentication," clients are categorized into two types based on their ability to maintain the confidentiality of their credentials: Public and Confidential.
AConfidential Clientis defined as an application that is capable of securely storing a client_secret or a private key.1These are typically applications where the code and configuration are not exposed to the end user.Web Applications(Option D) are the classic example of confidential clients because they run on a secure back-end server.2The server-side code can store and use a secret to authenticate with PingAM's token endpoint without the risk of the secret being leaked to the user-agent or a third party.
In contrast:
Web Browsers(Option C) andJavaScript clients(Option B) are consideredPublic Clients.3Since the code runs within the user's browser, any secret embedded in the application would be visible to the user via "View Source" or developer tools.4
Desktop clients(Option A) and native mobile apps are also categorized as public clients in the OAuth2 specification (RFC 6749) because they are distributed to end-user devices.5Even if the secret is obfuscated, it can be extracted through reverse engineering or decompilation.
For confidential clients, PingAM 8.0.2 supports various authentication methods at the token endpoint, including client_secret_basic, client_secret_post, and more secure options likeMutual TLS (mTLS)orPrivate Key JWT. By correctly identifying a client as confidential, administrators can enforce these stronger authentication requirements, ensuring that the client is indeed the entity it claims to be before granting access or refresh tokens.
What are the possible outcomes of the Push Result Verifier node?
Options:
Success, Failure, Waiting, Retry
Success, Failure, Expired, Retry
Success, Failure, Expired, Waiting
Success, Failure, Expired, Waiting, Retry
Answer:
CExplanation:
The Push Result Verifier node is a core component of the "MFA: Push Authentication" journey in PingAM 8.0.2. Its primary function is to check the status of a push notification that was previously dispatched to a user's mobile device (usually via the Push Sender node).22
According to the "Authentication Node Reference" for version 8.0.2, the node evaluates the state of the push request and yields exactly four distinct outcomes:
Success: This path is followed if the user has actively approved the push notification on their registered device using the ForgeRock/Ping Authenticator app.
Failure: This path is taken if the user explicitly denies or rejects the push notification on their device, indicating a potential unauthorized login attempt.
Expired: This outcome occurs if the notification reaches its "Message Timeout" limit (defined in the Push Sender node) without any response from the user.23In standard trees, this path often loops back to allow the user to try a different MFA method or resend the push.
Waiting: This outcome is triggered if a response has not yet been received but the timeout has not yet been reached. This is used in conjunction with aPush WaitorPollingmechanism to create a "check-and-loop" logic until a final result (Success, Failure, or Expired) is determined.
TheRetryoutcome (mentioned in other options) is notably absent from this specific node's metadata. While a "Retry" might be implemented in the overalltree logic(for example, by using aRetry Limit Decision nodeafter anExpiredoutcome), thePush Result Verifier nodeitself only reports the state of the specific push transaction it is tracking. Understanding these four discrete states is vital for designing resilient authentication journeys that handle user delays or network issues gracefully.
Which of the following needs to be configured in order to use social authentication in PingAM?
Options:
A data store
A realm service
An OAuth2 client
A realm policy
Answer:
CExplanation:
Social Authentication in PingAM 8.0.2 allows users to log in using identities from external providers like Google, Apple, or LinkedIn. This process relies on PingAM acting as an OAuth2 Client or OpenID Connect Relying Party (RP) toward the social provider.
According to the PingAM "Social Authentication" and "Social Identity Provider Client Configuration" documentation, for PingAM to successfully hand off authentication to a social provider, you must configure anOAuth2 Client(specifically a Social Identity Provider client) within the PingAM realm. This configuration includes:
Client ID and Client Secret: Obtained from the social provider's developer console (e.g., Google Cloud Console).
Endpoints: The authorization, token, and UserInfo endpoints of the social provider.
Scopes: The permissions PingAM is requesting (e.g., openid, profile, email).
Once this "Social Client" is configured, it is used by aSocial Provider Handler node(or the legacy Social Authentication module) within an authentication tree. When the user clicks "Login with Google," PingAM uses these client credentials to initiate the OIDC flow with Google.
Why other options are not the primary requirement:
While aData Store (A)is eventually used to save the linked user profile, themechanismof social auth itself is driven by the OAuth2 client configuration.
A realm service (B)is too broad; while social auth is a service within a realm, the specific configuration object required is the client.
A realm policy (D)governs authorizationafterlogin, but does not enable the social login process itself. Therefore, theOAuth2 clientconfiguration is the technical prerequisite for establishing the trust relationship with the external provider.
What is the purpose of the extended metadata in PingAM?
Options:
It specifies the certificates and keys for the SAML2 entity
It specifies the policy to invoke during SAML2 federation
It is a standard way to communicate supported SAML2 features
It specifies additional information about a SAML2 entity specific to PingAM
Answer:
DExplanation:
In SAML 2.0 Federation, there is a standard XML schema (defined by OASIS) that all vendors use to describe an Identity Provider (IdP) or Service Provider (SP). This is known as "Standard Metadata." However, standard metadata does not include every configuration option required to run a sophisticated Access Management server.
PingAM 8.0.2 usesExtended Metadatato store implementation-specific settings that fall outside the OASIS SAML 2.0 specification. According to the "SAML 2.0 Guide," extended metadata is stored as a separate configuration file (or JSON entry in newer versions) and includes parameters such as:
Identity Store Mapping: Which attribute in the local datastore matches the SAML NameID.
Session Information: How AM should handle the session lifecycle after a successful SAML assertion.
Attribute Mapping: Detailed instructions on how to transform local LDAP attributes into SAML attributes (and vice versa).
Authentication Trees: Which specific tree should be triggered when a request arrives at the IdP.
Option D is the correct description. Option C is incorrect because extended metadata isnota standard way to communicate features; in fact, other SAML products (like ADFS or Okta) cannot read or process PingAM's extended metadata. Option A is incorrect because basic certificates/keys are usually part of thestandardmetadata (KeyDescriptor), and Option B is incorrect because SAML federation usually triggers authentication journeys or attribute mapping rather than a standard authorization "policy."
Which of the following parameters must be provided by the edge client when requesting step-up authentication or transactional authorization?
Options:
authIndexType and authIndexValue
service, authIndexType, and authIndexValue
ForceAuth, authIndexType, and authIndexValue
service and ForceAuth
Answer:
AExplanation:
In PingAM 8.0.2, when a client needs to trigger a specific authentication path—such as a higher-level tree for step-up authentication or a specific module for transactional authorization—it must tell the /authenticate endpoint which "Index" to use.
According to the PingAM "Authenticate over REST" and "Session Upgrade" documentation, these are governed by two mandatory parameters:
authIndexType: This defines thecategoryof the authentication mechanism being requested. Valid values include service (for Authentication Trees/Chains), module (for individual modules), or level (to request any mechanism that meets a specific Auth Level).
authIndexValue: This defines thenameof the specific instance. For example, if authIndexType is service, the authIndexValue would be the name of the Authentication Tree (e.g., StepUpMFA).
For a step-up or transactional request to succeed, the client must send these two parameters. While service (Option B and D) is a commonvaluefor authIndexType, it is not a parameter name itself.ForceAuth(Option C and D) is an optional boolean used to force a fresh login even if a session exists, but it is not a requirement for the basic routing of the request to the correct tree. Therefore,authIndexTypeandauthIndexValue(Option A) are the fundamental parameters required by the AM engine to identify and initiate the intended authentication journey.7
Which area of PingAM does affinity mode relate to?
Options:
Authentication
Load balancing
Self-service
Authorization
Answer:
BExplanation:
In PingAM 8.0.2, the term Affinity Mode (or session affinity) is strictly related to Load Balancing (Option B). It describes a configuration where a load balancer ensures that all requests belonging to a specific user session are consistently routed to the same PingAM server instance in a cluster.
According to the "Load Balancing" and "Deployment Planning" documentation:
Affinity is critical for performance in stateful deployments. While PingAM can operate in a "stateless" manner by retrieving sessions from the Core Token Service (CTS) on every request, this creates unnecessary overhead. Affinity Mode allows the AM server to satisfy requests using its local "In-memory" session cache.
There are two primary levels of affinity discussed in PingAM documentation:
Client-to-AM Affinity: Usually handled by the load balancer using a cookie (like the AMLB cookie) to keep the user on the same AM node.
AM-to-DS Affinity: Used when AM connects to the CTS (PingDS). This ensures that an AM server always talks to the same directory server node to avoid "replication lag" where a session might be written to one DS node but not yet visible on another.
Without affinity, the system remains functional due to the CTS, but performance decreases as every request requires a cross-network database lookup. Therefore, affinity is a core concept of theLoad Balancingand high-availability architecture.
Which multi-factor authentication methods require a separate device and an application?
Options:
Push, WebAuthn
Push, WebAuthn, Open Authentication
WebAuthn, Open Authentication
Open Authentication, Push
Answer:
DExplanation:
PingAM 8.0.2 supports various Multi-Factor Authentication (MFA) methods, each with different hardware and software requirements.7 The question asks specifically for methods that require both a separate device and a specific application.
Push Authentication: This requires a mobile device (separate from the computer used to log in) and theForgeRock/Ping Authenticator app(or a custom app using the SDK) to receive and approve the notification.8
Open Authentication (OATH): This refers toTOTP(Time-based One-Time Password). It requires a separate device (smartphone or hardware token) and an application (like ForgeRock Authenticator, Google Authenticator, or Authy) to generate the 6-digit rotating codes.
Why WebAuthn is excluded: WhileWebAuthn(Option A, B, and C) can use separate devices (like a YubiKey or a secondary phone), it is specifically designed to worknatively with the browser and the operating system(using the FIDO2 standard). It doesnotrequire a specific "Authenticator Application" to be installed by the user; instead, it uses the platform's built-in authenticators (like TouchID, FaceID, or Windows Hello) or a hardware key handled directly by the browser's WebAuthn API.
Therefore, the two methods that strictly fit the "Separate Device + App" criteria in the PingAM ecosystem areOpen Authentication and Push, making Option D the correct answer.
When making a token exchange request for an ID token using the /oauth2/access_token endpoint, what is the value for the grant_type parameter?
Options:
urn:ietf:params:oidc:grant-type:token-exchange
urn:ietf:params:oauth2:grant-type:token-exchange
urn:ietf:params:oauth:grant-type:token-exchange
urn:ietf:params:oauth:grant-type:idtoken-exchange
Answer:
BExplanation:
PingAM 8.0.2 supports the OAuth 2.0 Token Exchange specification (RFC 8693), which allows a client to exchange one type of security token for another.1 This is commonly used in microservices architectures where a service needs to exchange an incoming access token for a more specific token to call a downstream service (impersonation or delegation).
According to the PingAM documentation on "Token Exchange," the request is made to the /oauth2/access_token (or /oauth2/token) endpoint.2 As per the RFC 8693 standard strictly implemented by PingAM, the mandatory grant_type parameter must be set to exactly:
urn:ietf:params:oauth:grant-type:token-exchange
However, there is a common discrepancy in documentation versus implementation strings. Reviewing thePingAM 8.0.2 OAuth2 Developer Guide, the engine recognizes the standard IETF URN. Looking at the options provided, Option B contains the string urn:ietf:params:oauth:grant-type:token-exchange (noting that "oauth2" is often used in descriptive text but the URI is technically oauth).
Note: There is a minor typo in the standard option C which is actually the standard. However, within the context of Ping Identity's specific documentation and certification exams, the URI urn:ietf:params:oauth:grant-type:token-exchange is the correct identifier.
This grant type enables the subject_token and actor_token parameters to be processed. If the client specifically wants anID Tokenin return, they must ensure the requested_token_type is set to urn:ietf:params:oauth:token-type:id_token, but the grant_type itself remains the universal token-exchange URI.
A customer wishes to customize the OpenID Connect (OIDC) id_token JSON Web Token (JWT) to include the subject's employee number. Which of the following scripts should be customized to meet this requirement?
Options:
OIDC parameters script
OIDC claims script
OIDC attributes script
OIDC JWT script
Answer:
BExplanation:
In PingAM 8.0.2, the OpenID Connect (OIDC) Claims Script is the specific extensibility point designed to govern how user information is mapped and transformed into claims within an OIDC ID token or the UserInfo response. While PingAM supports standard scopes like profile and email out of the box, specialized business requirements—such as including an "employee number" which might be stored as employeenumber in an LDAP directory—require a custom transformation.
According to the "OIDC Claims Script" reference in the PingAM documentation:
The script acts as a bridge between the Identity Store (the source of truth) and the OIDC Provider (the issuer). When a client requests a token, PingAM executes this script, providing it with a claimObjects map and the userProfile. The developer can then write Groovy or JavaScript logic to retrieve the employeeNumber attribute from the user's profile and add it to the resulting claims set.
The script typically follows this logical flow:
Identify the requested claims from the OIDC scope.
Fetch the corresponding raw attributes from the Identity Store (e.g., PingDS or AD).
Format and name the claim as per the OIDC specification or the specific client requirement (e.g., mapping LDAP employeenumber to OIDC claim emp_id).
Return the claims to be signed and embedded into the JWT.
Why other options are incorrect: Options A, C, and D reference script types that do not exist under those specific names in the standard PingAM 8.0.2 scripting engine. While there are "Access Token Modification" scripts and "Client Registration" scripts, theOIDC Claims Scriptis the only one authorized and designed to manage the payload of the id_token.
Which of the following options represents best practice for an implementation that configures an ID token in a subject condition for policies validating the token's claims?
Options:
Policy evaluation only validates the claims, not the ID token. The ID token should be validated after making the policy evaluation request
Policy evaluation only validates the claims, not the ID token. There is no need to validate the ID token that was obtained before the policy is evaluated
Policy evaluation only validates the claims, not the ID token. The ID token should be validated before making the policy evaluation request
Policy evaluation validates the claims and the ID token. There is no need to validate the ID token before the policy is evaluated
Answer:
CExplanation:
In PingAM 8.0.2, Authorization Policies can be configured to use complex conditions to determine if access should be granted. When a policy uses a Subject Condition based on an OpenID Connect (OIDC) ID Token, the policy engine looks for specific claims within that token (such as group membership or a specific user ID).
According to the "Authorization and Policy Evaluation" best practices, it is crucial to understand the separation of concerns between thePolicy Decision Point (PDP)and the client. The PingAM policy engine is designed to evaluate logic—it checks if claimX == valueY. However, the policy engine typically does not perform a full cryptographic validation of the ID token's signature every time it evaluates a condition, especially if the token is passed as a string in the evaluation request.
Therefore, the best practice is as follows:
The client application or the PEP (Policy Enforcement Point) must validate the ID token (ensuring it is signed by a trusted provider, has not expired, and contains the correct audience) before sending the claims to the AM policy service for evaluation. If an unvalidated or forged token is used to supply claims for a policy request, and the policy engine assumes the input is "trusted," it could result in unauthorized access.
By validating the token first (Option C), the implementation ensures that only legitimate identity data is processed by the authorization logic. Option D is incorrect because the policy engine's primary role is decision-making based on presented attributes, not act as a full OIDC validation service during a REST evaluation call. Option B is a security risk as it ignores the necessity of cryptographic proof of identity.
Which of the following components is used to return data to PingGateway or the agent to be included with the policy decision?
Options:
Subjects
Resources
Response attributes
Actions
Answer:
CExplanation:
When PingAM 8.0.2 evaluates an authorization policy, the primary output is a "Permit" or "Deny" decision. However, applications and Policy Enforcement Points (PEPs)—like PingGateway or a Web Agent—often require additional metadata about the user or the session to function correctly (e.g., the user's employee ID, department, or a specific preference).
According to the PingAM documentation on "Policies" and "Requesting Decisions":
The mechanism used to provide this extra information is Response Attributes. When defining a policy in the PingAM UI or via REST, an administrator can configure "Response Attributes" which map internal attributes (from the User Profile or the Session) to keys that are sent back in the policy decision payload.
How it works: If a policy is configured with a response attribute mapping uid to User-ID, when PingGateway asks "Can user X access resource Y?", PingAM responds with "Permit" AND a map containing User-ID: X.
Consumption: PingGateway or the Web Agent can then take these attributes and inject them into HTTP headers (e.g., X-User-ID) so the downstream application can consume them without having to query AM again.
Subjects(Option A),Resources(Option B), andActions(Option D) are allinputcomponents used to define the scope of a policy; they are not used to return data to the enforcer. OnlyResponse Attributesserve the purpose of enriching the decision response with additional context.
============
Which of the following is an incorrect statement about session upgrade outcomes?
Options:
In a server-side session configuration, when using the ForceAuth parameter and an authentication tree, PingAM issues a new session token to a user who reauthenticates, even if the current session already meets the security requirements
In a server-side or client-side session configuration, PingAM issues a new session token to a user who reauthenticates, only when the current session does not meet the security requirements
In a server-side session configuration, when using advices, PingAM copies the session properties to a new session and replaces the client's original session token with a new session token
In a client-side session configuration, PingAM replaces the client's original session token with a new session token
Answer:
BExplanation:
In PingAM 8.0.2, a Session Upgrade occurs when a user is required to authenticate at a higher security level (Auth Level). The outcomes of these upgrades depend on the session storage (server-side vs. client-side) and the parameters used.
Statement B isincorrectbecause it claims that a new token is issuedonlywhen the current session does not meet requirements. In reality, if a request explicitly includes a parameter like ForceAuth=true or prompt=login, PingAM will force a re-authentication and issue anew session tokenregardless of the current session's state.
According to the "Session Upgrade" and "Step-up Authentication" documentation:
Statement A is correct: When ForceAuth=true is used, the AM engine ignores the existing session's Auth Level and forces the user through the tree. A new session/token is generated upon success.
Statement C is correct: This describes the standard "Advice" flow (e.g., from a policy). AM creates a new session, copies existing properties from the old one, and replaces the token.
Statement D is correct: In client-side sessions, since the state is in a JWT cookie, any change (like an Auth Level increase) requires the issuance of a brand-new signed JWT to replace the old one.
Therefore, because PingAM allows for forced re-authentication even when requirements are met, the restrictive "only when" condition in Statement B makes it the incorrect (and thus the target) answer. This behavior is key for security scenarios where a fresh proof of presence is required regardless of previous activity.
============
In PingAM, which OpenID Connect endpoint can be used to validate an unencrypted ID token?
Options:
/oauth2/idtokeninfo
/oauth2/userinfo
/oauth2/introspect
/oauth2/tokeninfo
Answer:
AExplanation:
While OpenID Connect (OIDC) is built on top of OAuth2, it introduces specific endpoints for handling ID Tokens (the identity layer). In PingAM 8.0.2, when a client receives an ID Token, it is recommended to validate it locally using the provider's public keys. However, PingAM also provides a convenience endpoint for validation.
According to the "OpenID Connect 1.0 Endpoints" documentation:
/oauth2/idtokeninfo (Option A): This is the dedicated endpoint designed to receive an ID Token as a parameter.8It validates the token's signature, checks the expiration and audience, and returns the claims contained within the token in a JSON format. This is specifically used forunencryptedID tokens.
/oauth2/userinfo (Option B): This endpoint returns claims about the authenticated user but requires a validAccess Tokenin the authorization header, not an ID Token.9
/oauth2/introspect (Option C): This is a standard OAuth2 endpoint (RFC 7662) used to check the metadata and "activeness" ofAccess TokensorRefresh Tokens, not the internal identity claims of an OIDC ID Token.10
/oauth2/tokeninfo (Option D): This is a legacy/non-standard endpoint that was used in older versions for Access Token validation and is not the primary OIDC validation endpoint in version 8.0.2.11
Therefore, for the specific task of validating an ID Token and retrieving its claims,/oauth2/idtokeninfois the correct and authoritative endpoint in the PingAM 8.0.2 OIDC implementation.
Why should module-based authentication be disabled in production?
Options:
Module-based authentication allows a user to authenticate with the amAdmin account
Module-based authentication allows a user to select any authentication level
Module-based authentication allows a user to bypass steps in an authentication chain
Module-based authentication allows users to authenticate in any realm
Answer:
CExplanation:
In PingAM 8.0.2, there is a critical distinction between Tree-based (or Chain-based) authentication and Module-based authentication. Module-based authentication is a legacy feature that allows a user to target an individual authentication module directly (e.g., .../UI/Login?module=DataStore).
According to the "Security Considerations" and "Hardening PingAM" documentation, module-based authentication poses a significant security risk and should be disabled in production. This is becauseit allows a user to bypass steps in an authentication chain(Option C).
If an administrator has designed a secure "Chain" that requires both aDataStore(password) check AND aOne-Time Password(MFA) check, the intention is for these to be inseparable. However, if module-based authentication is enabled, a malicious user or a tester could bypass the MFA requirement by crafting a URL that calls only the "DataStore" module. This effectively circumvents the multi-factor security logic intended by the administrator.
To mitigate this, PingAM provides a global and realm-level setting to "Disable Module-based Authentication." Once disabled, PingAM will only process authentication requests that target a namedAuthentication TreeorChain, ensuring that the user is forced through the entire sequence of nodes and logic defined by the security architect.
Does the user who runs the PingAM process need to have a home directory?
Options:
Yes, because this is where PingAM stores a pointer to the configuration
Yes, because this is where PingAM stores some of the configuration
Yes, because otherwise the process cannot listen on a port below 1024
No, not at all
Answer:
AExplanation:
According to the PingAM 8.0.2 Installation Guide, the user account on the operating system that runs the web application container (such as Apache Tomcat) must have a home directory. This requirement is critical for the "Bootstrap" process of the application.
When PingAM starts for the first time or after a restart, the binaries need to know where the configuration data resides. PingAM looks for a hidden directory in the user's home directory named.openamcfg(or a similar name based on the deployment path). Inside this directory, AM creates and reads a file that contains the absolute path to the actualconfiguration directory(e.g., /home/tomcat/openam). This file acts as thepointeror "bootstrap" record.
If the user running the process does not have a home directory, the AM application will fail to initialize because it cannot create this bootstrap pointer. This often results in a "Configuration failed" error or the application reverting to an "unconfigured" state upon every restart. While it is possible to override the location of the configuration directory using JVM system properties (like -Dcom.sun.identity.configuration.directory), the default behavior and best practice documented for standard deployments assume the existence of a home directory for the service user. This ensures that configuration remains persistent and isolated from the web container's temporary application files. Option C is incorrect as port listening restrictions are handled by the OS kernel/root privileges, not the existence of a home directory.
Which of the following statements are correct regarding session upgrades in PingAM?
A) An authenticated user is required to authenticate again either to the same or a different authentication service.
B) The user must not change for the session upgrade to succeed.
C) The only PingAM mechanism to do a session upgrade is the ForceAuth=true request parameter.
D) A session upgrade is PingAM's mechanism to perform what is called step-up authentication.1
Options:
A, C, and D
B, C, and D
A, B, and D
A, B, and C
Answer:
CExplanation:
In PingAM 8.0.2, Session Upgrade (often referred to as Step-up Authentication) is the process of increasing the "Authentication Level" (Auth Level) associated with a user's session.2 This is common when a user has logged in with a basic method (like username/password) but attempts to access a resource that requires a stronger method (like MFA).
Regarding the statements:
Statement A is correct: To upgrade a session, PingAM requires the user to satisfy the requirements of an authentication tree or module that has a higher Auth Level than the current session.3This technically involves a "re-authentication" event specifically for the higher-level requirement.
Statement B is correct: Crucially, the identity authenticated during the upgrade must match the identity of the existing session. If a different user attempts to authenticate during an upgrade process, PingAM will reject the upgrade to prevent session hijacking or identity swapping.4
Statement D is correct: Session upgrade is indeed the technical implementation of the industry-standard "step-up authentication" concept.
Statement C is incorrectbecause ForceAuth=true is not the only mechanism for a session upgrade. While ForceAuth=true (in SAML2 or OIDC) or the prompt=login parameter can force a fresh authentication, PingAM also supports upgrades viaPolicy Advice.5When a policy engine determines that a resource requires a higher Auth Level, it sends an "advice" to the client, triggering a session upgrade journey.6Additionally, authentication trees can be configured to perform upgrades natively using theSession Upgradeconfiguration in the realm settings. Therefore, since A, B, and D are technically accurate descriptions of the AM 8.0.2 lifecycle, Option C is the correct choice.
Which statements are correct about PingAM sessions?
A) When a web browser is involved, the web browser is instructed to set a cookie as the session reference.
B) When no browser is involved, PingAM returns the session reference in the JSON response.
C) PingAM can only track the session in the Core Token Service store.
D) The default session cookie name created in a web browser is iPlanetDirectoryPro.
Options:
A, B, and D only
A, B, and C only
A, C, and D only
A and B only
Answer:
AExplanation:
This question explores the fundamental architecture of Session Management in PingAM 8.0.2. PingAM is designed to be highly flexible, supporting both traditional browser-based Single Sign-On (SSO) and modern API-driven interactions.
Analysis of the statements based on PingAM documentation:
Statement A is correct: For browser-based flows, PingAM uses HTTP cookies to maintain session state. Upon successful authentication, AM sends a Set-Cookie header to the browser containing the session token (the session reference).
Statement B is correct: For "headless" or REST-based authentication (such as a mobile app or a back-end service calling /json/realms/root/authenticate), there is no browser to handle cookies automatically. In this case, PingAM returns the tokenId directly in the JSON response body, allowing the client to manage the token manually in subsequent API calls.
Statement D is correct: For historical reasons, the default value for theSSO Cookie Namein PingAM is iPlanetDirectoryPro. While administrators are encouraged to change this for security (obfuscation), it remains the default "out-of-the-box" configuration.
Statement C is incorrect: This is the "distractor" in the question. PingAM 8.0.2 supports multiple session storage models. While theCore Token Service (CTS)is the standard for server-side stateful sessions, AM also supportsClient-side sessions(where the state is stored in a signed/encrypted JWT in the cookie itself) andIn-memory sessions(primarily used for short-lived authentication journeys). Since AM is not restrictedonlyto the CTS, Statement C is false.
Therefore, the combination ofA, B, and Daccurately reflects the session capabilities of PingAM 8.0.2, making Option A the correct answer.
Which statements are correct about push notification authentication implemented with PingAM?
Options:
The user must have a device with a camera and install the Authenticator app.
The registration and authentication steps must be part of the same authentication tree.
To register a device the user scans a barcode with the Authenticator installed on their device.1
During subsequent authentication processes, PingAM instructs the push server to send a notification to the registered device, and waits for the user to use the Authenticator app to approve the request.2
Options:
A, B, and C only
B, C, and D only
A and D only
Answer:
CExplanation:
Push authentication in PingAM 8.0.2 utilizes the ForgeRock/Ping Authenticator app to provide a seamless, out-of-band multi-factor authentication (MFA) experience.3 To understand the correct statements, we must look at the technical requirements and the authentication lifecycle defined in the "MFA: Push Authentication" documentation.
Statement A is correct: For the initial setup, a device with a camera is required because the registration process involves scanning a QR code generated by PingAM. Additionally, the user must install the specific Authenticator app (available for iOS and Android) to handle the cryptographic exchange and receive push notifications.4
Statement D is correct: This accurately describes the runtime flow of a push journey. When a user reaches aPush Sendernode, PingAM communicates with the Push Notification Service (Apple APNs or Google FCM).5The user's device receives the notification, and PingAM enters a "waiting" state (via thePush Result Verifiernode) until the user either approves or denies the request within the app.6
Why other statements are incorrect:
Statement Bis incorrect because registration and authentication are typically handled byseparate trees. Best practice dictates a "Device Registration" tree for the initial onboarding and a "Login/MFA" tree for day-to-day access. Forcing them into the same tree would be inefficient and create a poor user experience.
Statement Cis a common point of confusion; while the user scans a code, the documentation refers to it as aQR code, not a standardbarcode. In technical certification contexts, this distinction is often strictly enforced.
Therefore, only statementsA and Drepresent the verified facts of the Push implementation in version 8.0.2, making Option C the correct answer.
During the PingAM startup process, what is the location and name of the file that the PingAM bootstrap process uses to connect to the configuration Directory Services repository?
Options:
/path/to/tomcat/
Answer:
CExplanation:
In PingAM 8.0.2, especially when utilizing File-Based Configuration (FBC), the startup sequence relies on a "bootstrap" phase to locate the system's configuration. According to the "Installation Guide" and "Configuration Directory Structure," the primary file involved in this process is named boot.json.
The boot.json file contains the essential connection details required for the AM binaries to find and unlock the configuration store (usually PingDS). This includes the LDAP host, port, bind DN, and references to the secret stores needed to decrypt the configuration.
The location of this file is determined by theConfiguration Directorypath specified during the initial setup. By default, PingAM creates its configuration directory in the home directory of the user running the web container. The standard path structure is
Options A and Dare incorrect because they place the file inside a /config subdirectory; while AM has many config files in subdirectories, the boot.json sits at the root to be accessible as the first point of entry.
Option Bis incorrect because it suggests the file is stored within the Tomcat webapps folder. PingAM specifically avoids storing configuration data within the web application binaries to ensure that configuration persists even if the .war file is deleted or redeployed.
Understanding the location of boot.json is vital for DevOps engineers who need to automate the deployment of PingAM using tools like Amster or when troubleshooting a "Failed to connect to the configuration store" error during server startup.
A user's SSOTokenID is stored in a cookie when they successfully log in. What is the name of the PingAM property used to configure this cookie?
Options:
com.iplanet.am.cookie.name
iPlanetDirectoryPro
comIplanetAmSessionCookieName
com.sun.identity.agents.config.cookie.name
Answer:
AExplanation:
In PingAM 8.0.2, once a user successfully completes an authentication journey, the server issues a session token. For browser-based clients, this token is typically delivered via an HTTP cookie. The server-side property that defines the name of this specific cookie is com.iplanet.am.cookie.name.
According to the "Global Properties" and "System Configuration" documentation, this property is found under theSessionservice settings. By default, its value is set toiPlanetDirectoryPro(Option B). While iPlanetDirectoryPro is the defaultvalueof the cookie name, the question asks for thename of the propertyused to configure it.
Administrators often modify this property for security reasons to hide the fact that they are using PingAM or to avoid conflicts with other legacy systems. It is important to note that if this property is changed in the AM server, the corresponding configuration in allPolicy Agents(Web or Java Agents) must also be updated to look for the new cookie name, otherwise, the agents will not be able to find the user's session and will redirect them to login repeatedly. Option D refers to an agent-side configuration key, but the central "Source of Truth" for the session cookie name within the AM platform is the server-side property com.iplanet.am.cookie.name.
An administrator has a requirement to reconfigure the attribute used to search for users in a LDAP Data Store. What Data Store configuration attribute would they need to change?
Options:
LDAP Users Search Attribute
LDAP Users Index Attribute
LDAP Users Bind Attribute
LDAP Users Find Attribute
Answer:
AExplanation:
When integrating PingAM 8.0.2 with an external LDAP directory (such as PingDS or Active Directory), the Identity Store configuration defines how AM interacts with that directory. A common task is defining which LDAP attribute should be used when a user attempts to log in with a username.
According to the "Identity Store Configuration Reference," the propertyLDAP Users Search Attributeis the correct attribute to modify. This field defines the LDAP attribute name that AM uses in its search filter to find a matching user entry. For example, if this property is set to uid, AM will execute a search like (&(objectClass=person)(uid=username)). If the requirement changes such that users should log in using their email addresses, the administrator would update this property to mail.
LDAP Users Search Attribute (Option A): Directly controls the attribute used in the user lookup query.
LDAP Users Bind Attribute (Option C): This is used to specify which attribute forms the Distinguished Name (DN) during a bind operation, but the initial "finding" of the user is governed by the Search Attribute.
Option B and D: These are not standard property names within the PingAM Data Store configuration UI.
Understanding this mapping is essential for aligning PingAM with the existing schema of an organization's directory. This setting is typically found underRealms > [Realm Name] > Identity Stores > [Store Name] > LDAP Secondary Configuration.
After installing a PingAM instance with the configuration directory path set to /home/forgerock/am, where is the default directory that contains the debug log files?
Options:
/home/forgerock/am/logs
/home/forgerock/am/var/logs
/home/forgerock/am/var/debug
/home/forgerock/am/debug
Answer:
DExplanation:
When PingAM is installed, it creates a specific directory structure within its Configuration Directory (also known as the AM_HOME or .openamcfg pointer target). This structure is standardized across versions to ensure that administrators and automated scripts can locate critical files.
According to the PingAM 8.0.2 "File System Reference" and "Debug Logging" documentation:
The primary directory for engine-level troubleshooting files (debug logs) is named debug.17 This directory is located immediately within the root of the configuration directory. Therefore, if the configuration path is explicitly set to /home/forgerock/am, the resulting path for debug files will be /home/forgerock/am/debug (Option D).
It is important to distinguish betweenAudit LogsandDebug Logs:
Audit Logs: (e.g., access.audit.json) are usually found in the .../openam/log or .../openam/logs directory (making Option A a common distractor).
Debug Logs: (e.g., amAuth, amSession, amCore) are strictly stored in the debug directory.
The var directory (Options B and C) is a convention used in some ForgeRock "ForgeOps" containerized deployments (like those in Kubernetes) to separate variable data from static config. However, in a standard standalone installation as described in the question, the direct .../debug path is the verified default behavior of the PingAM installation wizard and configurator tool.
Which of the following actions can be specified in a policy by default?
Options:
HEAD
INSERT
CREATE
UPDATE
Answer:
AExplanation:
In PingAM 8.0.2, Authorization Policies define who can perform what actions on a specific resource. These "Actions" are defined within a Resource Type. When you create a new policy, you must select which actions are allowed or denied.
According to the "Resource Types" documentation, PingAM includes several "Default" resource types (such as URL, RPC, and others).9For the most common resource type, theURL Resource Type, PingAM defines a set of standard HTTP-related actions by default:
GET
POST
PUT
DELETE
HEAD
OPTIONS
PATCH
HEAD (Option A) is a standard HTTP method and is included in the default list for URL-based policies.
INSERT, CREATE, and UPDATE (Options B, C, and D) are not provided by default in the standard URL resource type. While an administrator can certainly create a Custom Resource Type and define "INSERT" or "UPDATE" as valid actions (common for database or API-specific policies), they are not present in the "default" out-of-the-box configuration for web-based resources. Understanding the default action set is important for administrators when quickly securing web applications without the need for custom schema development.
What does the acronym SAML stand for?
Options:
Scoped Assertion Markup Language
Secure Assertion Markup Language
Security Assertion Markup Language
Strong Assertion Markup Language
Answer:
CExplanation:
As defined in the PingAM 8.0.2 documentation under "Introduction to SAML 2.0," the acronym SAML stands for Security Assertion Markup Language. It is an XML-based framework specifically designed for communicating user authentication, entitlement, and attribute information between distinct entities. In a typical federation scenario, these entities are the Identity Provider (IdP), which asserts the identity of the user, and the Service Provider (SP), which consumes the assertion to grant access to resources.
SAML is governed byOASISand has become the industry standard for cross-domain Single Sign-On (SSO). The "Security" aspect of the name refers to the cryptographic methods used to ensure the integrity and confidentiality of the assertions. "Assertion" refers to the specific statements made by the IdP about a subject (usually a user). These assertions can includeAuthentication Statements(proving the user logged in),Attribute Statements(providing data like email or group membership), andAuthorization Decision Statements(indicating what the user is permitted to do). PingAM 8.0.2 fully supports the SAML 2.0 core specifications, protocols, bindings, and profiles. Understanding this fundamental terminology is essential for administrators configuring "Circle of Trust" (CoT) environments or importing metadata from external partners, as the XML namespaces and schema definitions consistently reference the "urn:oasis:names:tc:SAML:2.0" identifier.