Release Notes
New features and improvements in PingAccess. Updated October 7, 2024.
PingAccess 8.0.5 (October 2024)
Create custom log level categories
New PA-15743
Add a custom log level category and manage its verbosity in the admin console. Learn more in Creating custom log level categories.
PingAccess 8.0.4 (August 2024)
Fixed a security vulnerability with URL-encoded characters
Security PA-15776
Added the pa.uri.canonicalize
parameter to the Configuration file reference
to fix a security vulnerability. Learn more in an upcoming security advisory.
Opt out of automatic URL encoding
Improved PA-15697
By default, redirect rules and rejection handlers automatically URL encode the admin input redirect URL. This could cause unexpected behavior if an application targeted by a redirect requires the URL to follow a specific format.
You can now opt out of automatic URL encoding by deselecting the Encode URL check box on a specific application resource logout or redirect response generator, redirect rule, redirect authentication challenge response generator, or redirect rejection handler. Learn more in:
Set response headers for OAuth errors
Improved PA-15764
Added the oauth.error.headers
and oauth.error.header.Content-Security-Policy
parameters to the Configuration file reference.
Fixed issues with query parameter behavior due to automatic URL encoding
Fixed PA-15696
Fixed an issue with automatically URL encoding target redirect URLs that sometimes disrupted query parameter sort order or added a trailing =
to the end of single value query parameters. This issue affected redirect rules, redirect rejection handlers, redirect virtual resources, logout virtual resources, and redirect authentication challenge policy response generators.
Fixed admin JWKS endpoint returning a 401
or 500
response instead of the OAuth key set
Fixed PA-15723
Fixed an issue that caused PingAccess to override existing handling for the /pa/oauth/JWKS
endpoint for the admin listener with the engine self-registration handler, prompting requests made to the endpoint to result in 401
unauthorized responses or 500
internal server errors.
PingAccess 8.0.2 (April 2024)
Configure CEF logging
New PA-15703
Enable PingAccess to write any of its five audit logs in Common Event Format (CEF). Learn more in Writing audit logs in Common Event Format.
PingAccess 8.0.1 (March 2024)
Improved request header security
Security PA-15610
Fixed an issue with connection request header handling. Learn more in SECADV045.
Fixed NullPointerException
with the rewrite content rule
Fixed PA-15612
Fixed an issue that caused a NullPointerException
error when the rewrite content rule was used on a resource that returned an empty chunked response body.
PingAccess 8.0 (December 2023)
PingAccess 8.0 upgrade notice - removed H2 dependency
Info PA-15358
If you have PingAccess 6.2 or below, you cannot upgrade directly to PingAccess 8.0. You must upgrade to a version above 6.2 first, and then upgrade to 8.0.
This is because in PingAccess 8.0, an outdated H2 JAR file was removed, and PingAccess 6.2 and below use an H2 embedded database.
Implement device profiling for PingOne Protect
New PA-15374
If you’re using the PingOne Protect integration, you can now enable device profiling to implement attribute-based access control (ABAC) and enforce a complete zero trust strategy with PingAccess and PingOne Protect. You can:
-
Set stricter constraints around when to perform a new risk evaluation.
-
Automatically perform a new device profile collection and risk evaluation when an end user’s IP address changes.
-
Include device-related predictor types in the PingOne risk policy that you use for risk evaluation, including user and event behavior analytics and bot detection risk predictors. This enables you to use the default PingOne risk policy without needing to make any modifications and to trigger enforcement strategies like step-up authentication if abnormal device settings are detected.
For more information on enabling device profiling in PingAccess, see Risk policy field descriptions. For more information on PingOne predictor types, see Risk policies.
Device profile collection adds the device profile to the user’s browser as cookies, which are sent to PingAccess during subsequent requests. These cookies are usually 8192 bytes in size. Before enabling device profiling, you should increase the |
Use and validate OAuth 2.0 DPoP-bound access tokens
New PA-15517
Added the ability to use OAuth 2.0 Demonstrating Proof of Possession (DPoP) capabilities in a resource server role. This enables you to meet potential FAPI 2.0 Advanced Profile authorization server requirements in the future and prevent fraudulent access token usage.
You won’t be able to use DPoP with PingAccess unless both the OAuth API client and the token provider support DPoP as well. As a security best practice, keep the value of the DPoP Proof Lifetime (SEC.) field low and consistent with the DPoP implementation of your API client anywhere that you configure DPoP settings in PingAccess. |
Enable DPoP-bound access tokens in your token provider or admin token provider configuration. You can also override the global DPoP settings in your API authentication settings, or at the application or resource level for an API
or Web + API
application. For more information, see:
-
If you’re using PingFederate as the token provider, see Configuring OAuth resource servers. You must use PingFederate 11.3 or later.
-
If you’re using PingOne as the token provider, see Configuring PingOne.
-
If you’re using a common token provider, see Configuring OAuth authorization servers.
-
To configure DPoP in your admin token provider settings, see Configuring an admin token provider.
-
To override the global DPoP settings for API authentication, see Configuring API authentication.
-
To override the global DPoP settings at the application level, see Application field descriptions.
-
To override the global DPoP settings at the resource level, see Adding application resources.
Configure Microsoft Azure AD as a common token provider when protecting an API application
New PA-15369
PingAccess has made common token provider configuration more flexible:
-
When you’re configuring the OAuth authorization server for a common token provider, the Introspection Endpoint field is now required only if you configure a remote access token validator on your PingAccess application.
-
When you’re configuring an application, before you can select a remote access token validator from the Access Validation list, you must configure an Introspection Endpoint on the OAuth Authorization Server tab.
This increased flexibility enables you to configure Azure AD as the common token provider for protected API applications.
Because Azure AD doesn’t have an |
Filter applications by SPA support status
New PA-15375
-
Added the ability to filter your applications by their SPA support status. For more information, see Editing an application.
-
Added the
SPA Support
property to the Properties tab on PingAccess applications. You can now check whether an application has SPA support enabled by expanding the application instead of having to expand and open it.
Configure static signing keys for Private Key JWT
New PA-15376
By default, private key JWT OIDC code flow uses dynamic keys managed automatically by PingAccess. You can now opt to use static keys instead if you want to control key rotation yourself. For more information, see Configuring static signing keys.
PingAccess currently only supports JWT signing with static keys, but might support encryption in the future. |
You can:
-
Enable static keys and select a signing key from your list of configured key pairs on a new page in the administrative console, Static OAuth/OIDC Keys. Then select a Signing Algorithm on the associated web session.
-
Complete your static key configuration at the token provider. Click View Metadata on the Static OAuth/OIDC Keys page to retrieve your JWKS information and submit this information to your token provider. Alternately, use the PingAccess admin API endpoint
GET /staticKeys/JWKS
to retrieve your JWKS information.You must update your JWKS information at the token provider because static and dynamic keys use different JWKS endpoints in PingAccess.
For example, if you’re using PingFederate as the token provider, you must update the JWKS URL field in your configured OAuth client.
Use Microsoft SQL Server 2022 for audit event storage
New PA-15510
Added support for Microsoft SQL Server 2022 to enable migration to SQL server versions included in Microsoft’s mainstream support policy.
Use Server-Sent Events (SSE) to push information from protected resource servers to web clients
New PA-15511
Qualified support for server-sent events (SSE) in PingAccess. You can use WebSockets or SSE to facilitate communication between the requesting client and a protected site. SSE pushes real-time updates in one direction, from server to client, whereas WebSockets uses bidirectional communication.
Follow the defined standards to signal PingAccess to establish an SSE connection to the backend server and listen for real-time events, such as:
After it receives the appropriate header from either the backend server or the client request, PingAccess establishes an SSE connection to the backend server when it grants a user access to a protected resource. PingAccess processes and acts on each event it receives from the backend server, then pushes an update to the client through a separate SSE connection. |
Configure Microsoft Azure AD as the token provider for administrative API OAuth
New PA-15518
Added support for OAuth tokens created by Microsoft Azure AD for administrative API OAuth. This improves account security for administrators with Microsoft Azure AD configured as the token provider and enables administrators to use their own accounts to make PingAccess API changes. Relaxed the following PingAccess requirements:
-
If you’re using either a common token provider or administrative token provider configuration, you can now use a local access token validator to bypass administrative API OAuth validation that checks whether the token provider supports the introspection endpoint. This is necessary because Microsoft Azure AD does not have an introspection endpoint.
-
If the administrative token is validated by a local access validator, the administrative API OAuth no longer enforces whether an administrative token contains a
scope
claim with a configurable value, because Microsoft Azure AD uses ascp
claim instead.
Map SAML tokens as HTTP request headers
New PA-15525
Added the ability to map the SAML token received from a SAML token mediator site authenticator to an HTTP request header that you specify instead of mapping the token as a request cookie. For more information, see the Logged In Header Name field.
Choose a case-matching strategy for Admin SSO and OAuth roles
New PA-15527
You can now choose a case-matching strategy for administrative single sign-on and OAuth roles, not just web session attribute rules. Selection options are:
-
Case-sensitive
-
Case-insensitive
-
DN matching
For more information, see Configuring API authentication and Configuring admin UI SSO authentication.
Updated PingAccess documentation link to be version-specific
Improved PA-15378
Updated the Help icon link in the administrative console that takes you to the PingAccess documentation. In PingAccess 8.0 forward, this link will now take you to the version of the documentation that matches the version of PingAccess that you’re using.
Improved error message for configuring a risk policy with invalid data
Improved PA-15399
Improved an error message caused by sending an admin API request to create or update a risk policy with invalid or missing data. The error message no longer returns a NullPointerException
error.
Removed non-system fonts
Improved PA-15529
Removed old fonts from the PingAccess administrative console to improve user experience.
Fixed inaccurate OAuth endpoint description in the PingAccess administrative API documentation
Fixed PA-15241
Fixed inaccurate reference to the OAuth authorization server as the OpenID Connect provider in the DELETE
method of the oauth/authServer
endpoint.
Fixed SniHandlerConfigBuilder
parameter keystore type declaration
Fixed PA-15270
Fixed an issue that caused the SniHandlerConfigBuilder
to fail to declare a specific keystore type for the PingAccess SslContext
server, which could result in PingAccess taking longer to start up if the target JVM’s default keystore type was PKCS#12.
The SniHandlerConfigBuilder
now specifically declares JKS as the keystore type to prevent unexpected performance losses.
Fixed UI rendering issue when optional field is missing from plugin
Fixed PA-15273
Fixed an issue that caused the PingAccess administrative console UI to fail to render if a newly added configuration field was missing from the plugin data that was saved previously.
For more information, see create your own plugins.
Fixed a race condition resulting in null values for replication data
Fixed PA-15380
Fixed an issue that caused unexpected behavior in PingAccess if you deleted an entity while a clustered console node was preparing a replication payload to share with other nodes in the cluster. Some examples of this unexpected behavior included:
-
Hibernate throwing
EntityNotFoundExceptions
errors. -
PingAccess adding null objects to the replication payload. This behavior didn’t always register as an error in the administrative console, but could still cause the replication data readers to throw exception errors.
Fixed UI rendering breakage when using Groovy script fields in composite plugin fields
Fixed PA-15381
Fixed an issue that caused the PingAccess administrative console UI to display a blank page if you attempted to configure a Groovy script field within a plugin entity in a composite field.
For more information, see create your own plugins.
Fixed form data registration of list fields in composite plugin fields
Fixed PA-15382
Fixed an issue that caused list fields embedded in composite plugin fields to register improperly in the form data for the PingAccess administrative console UI.
For more information, see create your own plugins.
Fixed object ID override of key pairs and certificates imported through the administrative API
Fixed PA-15386
Fixed an issue that caused PingAccess to replace object IDs defined on key pairs or certificates imported through the administrative API with an auto-generated object ID.
Additionally, the POST /keyPairs/import
and POST
/certificates
API models have been updated to include more information on how to assign an ID for these object types.
Fixed log category preferences not sticking on restart
Fixed PA-15390
Fixed an issue that caused PingAccess to reset an environment’s configured log setting categories on startup.
Fixed early expiration of cached PingOne Protect risk evaluation results
Fixed PA-15396
Fixed an issue with the PingOne Protect integration that caused PingAccess to calculate expiration values for cached risk evaluation results in milliseconds instead of seconds. This unexpected input value was disabling token caching after making a risk evaluation because PingAccess was receiving a false positive result that the risk evaluation cache data had expired.
Fixed Azure AD access token validation issue
Fixed PA-15496
Azure AD creates a Application (Client) ID
value that exceeds 36 characters and automatically assigns that value as the Audience
value in the access token. This prevented PingAccess from validating Azure AD access tokens because PingAccess previously accepted a maximum of 32 characters for an Audience
value.
PingAccess can now accept a longer Audience
value.
Fixed replication configuration identifiers updating before configuration changes were applied
Fixed PA-15506
Fixed an issue that caused PingAccess engine or replica admin nodes to update their replication configuration identifier before they had finished integrating changes into their runtime configuration. This would result in nodes using stale configuration information until a new configuration change event happened.
Fixed exclusion of admin API OAuth configuration from bulk export
Fixed PA-15537
Fixed an issue that caused admin API OAuth settings to be excluded from bulk export operations if you configure admin API OAuth with an access token validator but haven’t set client credentials.
Fixed import failure caused by multiple trusted certificates in configuration
Fixed PA-15568
Fixed an issue that could cause PingAccess configuration imports to fail if you had multiple trusted certificates configured in your environment.
Spurious errors when installing PingAccess as a Windows service
Issue
When installing PingAccess as a Windows service using Windows PowerShell and Java 8, the error message Could not find or load main class
can be safely ignored.
Zero downtime upgrade limitation
Issue PAPQ-1034
PingAccess 6.3 deployments that use the Sideband API feature cannot be upgraded using the zero downtime upgrade procedure. You must use a planned outage to upgrade such an environment.
TLS 1.3 limitation
Issue STAGING-8707
PingAccess may have difficulty maintaining TLS 1.3 connections when using JDK 11.0.0, 11.0.1, or 11.0.2 because of a defect in those versions. This might cause upgrades to fail on systems using these versions.
IPv6 limitation
Issue PA-1894
Incorrect handling for IPv6 literals in host header. Note that IPv6 is not currently supported.
Request preservation not supported with Safari private browsing
Issue PA-2896
Request Preservation is not supported with Safari Private Browsing.
Engine and Admin Replica connection issue
Issue PA-4888
Engines and admin replicas do not connect to admin console if a combination of IP addresses and DNS names are used.
Token processor issue
Issue PA-6262
The token processor can’t connect to a JWKS endpoint via SSL when an IP is used rather than a hostname. To workaround this issue, add the hostname as the subject alt name on the key pair.
Unread message body handling
Issue PA-7068
In custom PingAccess plugins, using com.pingidentity.pa.sdk.http.Message#setBody
or com.pingidentity.pa.sdk.http.Message#setBodyContent
directly on an exchange’s Response object to modify content from the backend can put PingAccess connections into indeterminate states. The workaround is to:
-
Either make a new instance or a copy of the Response object and modify body content in the copy.
-
Call
com.pingidentity.pa.sdk.http.Exchange#setResponse
with the new or copied request and response objects.com.pingidentity.pa.sdk.http.Exchange#setResponse
discards the pending response body from the backend immediately. In a future release, a fix will be added to discard the response body only when PingAccess writes the response to the frontend.
Firefox limitation for time range rules
Issue PA-8651
Firefox does not correctly support the HTML5 time tag. When using the time range rule, enter time in 24-hour format.
Risk-based authorization rule issue during upgrade
Issue PA-10505
Upgrades will fail with a risk-based authorization rule if a third-party service is not used in the rule.
Virtual hosts with shared hostnames retention issue
Issue PA-11390
If you create multiple virtual hosts with a shared hostname and associate the hostname with a server key pair, the virtual hosts retain the connection with the server key pair even if they are subsequently renamed. The virtual host must be deleted and recreated to remove the association.
Asynchronous front-channel logout issue
Issue PA-12647
Asynchronous front-channel logout might fail in some browsers depending on end-user settings. See https://support.pingidentity.com/s/article/Managing-Single-Log-Out-in-different-browsers for browser-specific workarounds.
Invalid special characters permitted in identity mappings
Issue PA-13214
Invalid special characters ((),/;<⇒?@[\]\{}"
) can be added to the certificate to Header Mapping field in an identity mapping. Adding this identity mapping to an application will cause 400
errors when the application is accessed.
UI failure when assigning new key pair
Issue PA-13500
Assigning a new key pair to the Admin HTTPS listener if the browser does not trust the new key pair can prevent the UI from functioning. The workaround is to close the browser and re-open it so that all connections to the admin node use the new certificate.
Slow restarts in FIPS mode
Issue PA-14239
If PingAccess is repeatedly stopped and restarted in FIPS mode, subsequent restarts can take up to 5 minutes to complete. The workaround is to use a tool such as rng-tools to refresh /dev/random
and make more entropy available faster. For example:
sudo yum install rng-tools sudo rngb -b
Cloud HSM limited in Java8u261
Issue PA-14414
Cloud HSM functionality works in FIPS mode but not in regular mode for Java8u261
and later. RSASSA-PSS
signing algorithms fail with Java8u261
or later, and HSM vendors and core Java use different naming conventions for the RSASSA-PSS
algorithm. There is a documented workaround in Adding an AWS CloudHSM provider.
Kong API limitation
Issue PA-14466
Due to an outstanding defect in the Kong API Gateway, the ping-auth
plugin currently does not support requests that utilize the Transfer-Encoding
header. If PingAccess is used as the external authorization server, the rewrite content rule can prevent the page from displaying.
Certificate revocation list memory issue
Issue PA-14621
If a client certificate has a certificate revocation list (CRL) DistributionPoint that points to an extremely large CRL, PingAccess might suffer from high memory usage leading to Out of memory (OOM) exceptions.
Spurious warning after upgrade or startup on Windows
Issue PA-14907
After starting PingAccess for the first time on a Windows system or upgrading PingAccess on a Windows system, a warning message is logged reporting that the pa.jwk
file was not made non-executable. This message can be ignored.
Hibernate deadlock errors
Issue PA-14985
There are a few potential scenarios when the PingAccess data layer might encounter deadlocks. PingAccess should be able to recover from these deadlocks, so hibernate error logs can be ignored when followed by the log message Recovered from database deadlock with transaction retry.
Deadlock when importing applications with significant reuse
Issue PA-14978
A race condition caused by importing applications with significant reuse of virtual hosts or context roots can deadlock the Apache Derby DB.
PA-14974 added systematic deadlock handling to reattempt operations that lead to a deadlock condition in Apache Derby, but a specific fix for this deadlock scenario will be added in a future release to reduce wasted cycles and warning or error log messages.
Console Log Settings page doesn’t immediately reflect changes made in the API
Issue PA-15351
If you have the administrative console and API open at the same time and you’re on a console page that isn’t Log Settings, the Log Settings page won’t immediately populate any log changes that you make in the API.
To work around this issue, go to the Log Settings page. Perform a hard refresh, or go to another page and then return to Log Settings.
Mutual TLS with TLS 1.3 might not work with some target servers
Issue PA-15449
Mutual TLS with a backend site that requires post-handshake authentication is not supported when using TLS 1.3. Current workaround options are to remove the requirement for post-handshake authentication from the backend site or to disable TLS 1.3.
SNI isn’t set up for virtual hosts only used in redirects
Issue PA-15559
Currently, SNI is only set up for virtual hosts that are actively configured in an application. This can prevent PingAccess from presenting an expected certificate for a given redirect host.
The workaround is to configure the source host in a redirect as the virtual host for a disabled PingAccess application.