PingAuthorize

Release Notes

New features and improvements in PingAuthorize. Updated July 31, 2024.

PingAuthorize 10.1.0.2 (September 2024)

Added a new policy query response view

New

We added support for a new unfiltered policy query response view. This view includes every decision used to compose the final query response, regardless of the outcome or the presence of statements. Learn more in Configuring query response granularity.

Added policy query debug logging

New

We added debugging capabilities for policy query audit logging. Enabling the DEBUG log level brings enhanced visibility to the attribute data and decision logic underlying query responses. Learn more in Troubleshooting policy queries.

Added support for Mapped Diagnostic Context

New

We added support for Mapped Diagnostic Context (MDC) capabilities in logging. MDC enriches log messages with additional request context, enabling you to diagnose issues across application components. Learn more in Enabling Mapped Diagnostic Context for Policy Editor logs.

Added support for a new signature algorithm

New

We added support for Elliptic Curve Digital Signature Algorithm (ECDSA)-encoded signatures for JWT tokens when using the Has Valid Signature For JWKS and Has Invalid Signature For JWKS attribute comparators. Learn more in Conditions.

Improved policy query error handling

Improved

We improved and standardized error handling for requests sent to the governance-engine/query endpoint.

Improved resolution of query attributes

Improved

When making a policy query request, you might want to use a single-valued attribute to resolve a query attribute. Now, you can include this single-valued attribute in the query section, rather than the context section of the request.

Fixed an issue with Policy Query API responses

Fixed PAZ-12752

We fixed an issue where the same request sent to the governance-engine/query endpoint could produce inconsistent responses.

Fixed an issue with the Decision Visualizer

Fixed PAZ-11767

We fixed an issue where pasting an audit log entry without the decisionTree or evaluationLog field into the Decision Visualizer would incorrectly return a Cannot read properties of undefined (reading 'create') error in addition to a decisionTree or evaluationLog must be enabled to visualize decision tree error.

Fixed a memory leak issue

Fixed PAZ-13013

We fixed an issue where, when using the PingAuthorize Server’s API security gateway in embedded PDP mode, policy decision logging could cause a memory leak and negatively impact the performance of long-running server instances.

Fixed an issue with config-diff

Fixed DS-49071

We fixed an issue where config-diff would result in an Unknown property error when comparing configuration objects of different types.

PingAuthorize 10.1 (June 2024)

Make real-time data calls to relational databases

New

We added a new Database service type, enabling you to use relational databases as policy information points (PIP) during policy development. Services retrieve information from external data sources for use in context-aware authorization decisions. Now, you can dynamically query and transform such information from relational databases. Learn more in Database services.

Implement third-party decision log publishers with the PingData Server SDK

New

We added a new Policy Decision Logger extension to the Server SDK for developing third-party decision log publishers. This extension enables you to configure custom decision logging behavior and log destinations. You can extend the provided PolicyDecisionLogger API in the Server SDK to implement your custom logic. Learn more in Managing Server SDK Extensions and the doc/getting-started directory in your SDK download.

Map decision request headers to Trust Framework attributes

New

We added the ability to map headers of incoming JSON PDP API requests to Trust Framework attributes. PingAuthorize uses these mappings to dynamically populate attribute values with the values of incoming request headers, enabling you to leverage header data as decision context in request bodies. Learn more in Configuring policy request header mappings.

Determine whether service call results were retrieved from cache

New

We added the ability, for any call to external services with caching enabled, to determine whether the result of that call was retrieved from the cache. Learn more in Service caching.

Enable Camel service connections with the command line

New

We added the ability to enable Camel service connections in the Policy Editor with the command line. To ensure that Camel is used with the appropriate permissions and security controls, Camel services are disabled by default in the Policy Editor. Now, instead of manually updating the Policy Editor’s configuration, you can enable Camel service connections with the --enableCamelService option in non-interactive setup mode. Learn more in Enabling Camel service connections.

Enable JSON formatting for default Policy Editor loggers

New

We added support for the dropwizard-json-logging library to the default Policy Editor loggers. Now, you can add this library in the Policy Editor’s configuration.yml file to each logger stream you wish to enable JSON formatting for. The availability of this library does not impact the application’s default configuration. Learn more in Enabling JSON formatting for Policy Editor logs.

Added support for new platforms

New

We added support for Rocky Linux 9.3 and Red Hat Enterprise Linux 9.3. Learn more in System requirements.

Improved database service security

Improved

To address the possibility of remote code execution attacks with H2 database services, we made the database driver allow list configurable and unlisted H2 by default. Learn more in Database services.

Updated default configuration archive maximum

Info

To mitigate the performance impact of large archives, we updated the configuration archive to keep a maximum of 100 previous configurations by default

Fixed an issue with creating copies of policies

Fixed PAZ-12150

We fixed an issue where, in some cases, copying a policy created a redundant instance of that policy.

Fixed an issue with Library statement duplication

Fixed PAZ-9092

We fixed an issue where copying a rule containing a Library statement would create a new instance of that statement instead of reusing the existing one.

Fixed an issue with saving LDAP services

Fixed PAZ-12017

We fixed an issue where, after enabling caching for an LDAP service, specifying a Time to Live (TTL), and clicking Save, the specified TTL disappeared from the UI and backend configuration.

Fixed an issue with HTTP service requests

Fixed PAZ-12145

We fixed an issue where, when making HTTP service calls, the policy decision point would incorrectly assign default values to the request body and the content-type header.

Fixed an issue with self-governance decision requests

Fixed PAZ-3306

We fixed an issue where, when using an imported policy snapshot, self-governance decision requests were missing values in the action field.

Fixed an issue with Policy Query API responses

Fixed PAZ-12245

We fixed an issue where, when sending a Policy Query API request with an unbounded attribute in the query array, the system would return a 500 error status code if the unbounded attribute’s value was resolved to an empty collection.

Fixed an issue with the CLI tools reference

Fixed PAZ-3469

We fixed an issue where the CLI tools reference page was incorrectly titled Configuration Reference. Now, the page is correctly titled CLI Tools Reference.

Fixed an issue with the comparators list

Fixed PAZ-11768

We fixed an issue where, when creating rules in the Policy Editor, the comparators list extended outside of the list area, preventing you from scrolling through the list.

Fixed an issue with unnamed Trust Framework elements

Fixed PAZ-12150

We fixed an issue where a user could leave new elements defined in the Trust Framework unnamed, giving them a default name of Untitled. Now, you must specify a name for such elements before saving them.

Fixed an issue with copying Policy Editor elements

Fixed PAZ-12150

We fixed an issue where Policy Editor elements created as copies would inherit the version ID of the original element. As a result, copies of elements would persist in the Policy Editor UI after being deleted but would return 404 errors when selected. Now, copies of Policy Editor elements have distinct version IDs.

Fixed an issue with HTTP service log messages

Fixed PAZ-12454

We fixed an issue where the status field of an HTTP service log message would include a status message, such as OK, rather than a status code.

Fixed an issue with PIP key store service calls

Fixed PAZ-12014

We fixed an issue where, when making a service call with a PIP key store for MTLS configured and the Server (TLS) option set to None or Default, the service would incorrectly return a Client TLS certificate is required error.

PingAuthorize 10.0.0.3 (July 2024)

Fixed an issue with HTTP service requests

Fixed PAZ-12145

We fixed an issue where, when making HTTP service calls, the policy decision point would incorrectly assign default values to the request body and the content-type header.

Fixed an issue with unbounded query attributes

Fixed PAZ-12245

We fixed an issue where, when sending a Policy Query API request with an unbounded attribute in the query array, the system would return a 500 error status code if the unbounded attribute’s value was resolved to an empty collection.

Fixed an issue with Policy Query API responses

Fixed PAZ-12752

We fixed an issue where the same request to the Policy Query API could produce inconsistent responses.

Fixed an issue with HTTP service log messages

Fixed PAZ-12454

We fixed an issue where the status field of an HTTP service log message would include a status message, such as OK, rather than a status code.

Fixed an issue with PIP key store service calls

Fixed PAZ-12014

We fixed an issue where, when making a service call with a PIP key store for MTLS configured and the Server (TLS) option set to None or Default, the service would incorrectly return a Client TLS certificate is required error.

PingAuthorize 10.0.0.2 (March 2024)

Fixed a header exclusion issue with HTTP service caching

Fixed STAGING-22303

We fixed an issue with the exclusion of certain headers from the cache key of cached HTTP service responses. Now, each change to these header values no longer invalidates the service response cache, and the decision engine isn’t forced to invoke the service again on subsequent requests.

Fixed a header display issue with HTTP service caching

Fixed PAZ-11726

We fixed an issue with the display of headers excluded from cached HTTP service responses in the Trust Framework. Now, you can navigate away from an HTTP service with caching enabled, navigate back to that service, and still see the excluded headers you originally defined.

PingAuthorize 10.0.0.1 (January 2024)

Version incremented for administrative purposes

Info

The PingAuthorize version number was incremented due to changes released for PingDirectory. There are no release notes for this version of PingAuthorize.

PingAuthorize 10.0 (December 2023)

Send more flexible decision requests with policy queries

New

With the new Policy Query API, you can now issue decision requests containing valueless and multivalued attributes to receive decisions more complex than Permit or Deny, enabling you to dynamically drive user interfaces. For more information, see Policy queries.

Cache dynamic service responses

New

To improve decision evaluation performance and reduce latency, you can cache dynamic service response values for faster retrieval on subsequent requests. When enabling caching for HTTP services, you can exclude certain headers from the service response. This prevents invalidation of the cache when values of those headers change. For more information, see Service caching.

Copy Trust Framework attribute resolvers

New

To build your authorization logic more efficiently, you can make editable copies of attribute resolvers. For more information, see Copying elements.

Disable rules in the policy tree

New

To control the granularity of policy evaluation, you can disable rules in policies. This causes the decision engine to skip disabled rules during policy evaluation and allows you more flexibility in testing and deployment of policy logic. For more information, see Creating policies and policy sets.

Added support for Apache Camel 3.21.2

Info

Although Camel services have been removed from the default PingAuthorize configuration, you can now enable Camel version 3.21.2 if your policies depend on such services. For more information, see Apache Camel availability.

Added support for Java 17 and removed support for Java 8

Info

We have added support for Java 17 and removed support for Java 8. For more information, see System requirements. For information on upgrading from a PingAuthorize instance installed with Java 8, see Upgrade considerations introduced in PingAuthorize 10.0.

Disabled SNI hostname checks by default

Info PAZ-10754

To avoid HTTP 400 responses when SNI hostname checks fail, these checks are now disabled by default for the PingAuthorize server and Policy Editor. We added a new setup option, --disableSniHostnameChecks, to control whether PingAuthorize performs this check. For important considerations when upgrading from a previous version and attempting to reuse your configuration, see Upgrade considerations introduced in PingAuthorize 10.0.

Disabled OIDC Implicit grant flow

Info PAZ-1795

We have disabled the OIDC Implicit flow implementation in the Policy Editor because the OAuth Working Group no longer recommends its use. In its place, you should use the Authorization Code with PKCE flow. For more information, see Configuring an OIDC provider for single sign-on requests from PingAuthorize.

Added indexes to improve database query performance

Improved

We added two database indexes to the db-cli module to improve performance when querying the CurrentEntityVersion and EntityRelationship tables.

Fixed SCIM case-sensitivity issue

Fixed PAZ-8473

We fixed an issue where requests to create SCIM entries were not always observing the case-exact=false property, leading to incorrect case-sensitivity errors.

Fixed attribute caching memory error

Fixed PAZ-10643

We fixed an issue where the decision engine only checked if an attribute cache entry had expired when accessing that entry, leading to Out of Memory errors. Now, attribute caching uses the Redis library directly, allowing a unique Time to Live (TTL) for each cache entry. Redis instances invalidate cache entries once the TTL has elapsed, rather than when the entries are accessed. For more information, see Attribute caching.

Fixed missing statements array in policy testing

Fixed PAZ-6335

We fixed an issue, where, in the Response tab of policy testing, the root-level statements array was not appearing if left empty in the testing scenario.

Fixed error response handling in APP WARN

Fixed PAZ-10350

We fixed an issue where the HTTP Service Executor was not properly capturing error messages in the APP WARN logs from the policy information provider (PIP) endpoint.

Removed --serverRoot requirement from the check-replication-domains tool

Fixed DS-47655

We fixed the check-replication-domains tool so that the --serverRoot argument is no longer required. This argument now defaults to the server’s root directory.

Fixed duplication issue when running dsjavaproperties --initialize

Fixed DS-45206

We fixed an issue where running dsjavaproperties --initialize would append duplicate arguments to the common.java-args in the java.properties file.

Replaced NullPointerException error for alert handlers lacking configuration

Fixed DS-47455

We fixed an issue where a NullPointerException error occurred when an alert or alarm was raised, and one more of the alert handlers was not configured. An alert notification is now recorded in logs/errors instead.

Addressed inability of LDAP Request Handlers to respond to incoming client requests

Fixed DS-46312

We fixed an issue where TLS timeouts prevented LDAP Request Handlers from responding to client requests. The request-handler-per-connection configuration property is now available for LDAP and LDAPS Connection Handlers.

Previous Releases

For information about enhancements and issues resolved in previous major and minor releases of PingAuthorize, follow these links to their release notes: