Note:

PingDataGovernance has been renamed to PingAuthorize. Customers are increasingly applying the product to general, externalized, and dynamic authorization use cases, beyond the original privacy and data protection use cases of PingDataGovernance, and Ping Identity has updated the name to reflect the growing trend and application of Dynamic Authorization.

For PingDataGovernance releases, see the PingDataGovernance release notes.

Enhancements

These are the new features for this release of PingAuthorize:

  • PingAuthorize now exposes a general-purpose JSON Policy Decision Point API (PDP API). By integrating with this API, organizations can use a simpler request and response structure to externalize the authorization logic from other enforcement points, like legacy web applications, and manage these authorization policies centrally in PingAuthorize. By providing a simpler and more flexible data structure, integration requires fewer changes to enforcement points and time to value is reduced. For more information, see JSON PDP API request and response flow.
  • Policy writers can now click through to discover the dependencies on Policies and Trust Framework objects. Understanding dependencies helps an author decrease the risk of policy changes and improve the quality of policies and trust framework.
  • The Deployment Manager functionality is now live. This new feature simplifies policy updates by enabling policy writers to deploy new policies to a central deployment package store to be read by the PingAuthorize server running in embedded mode. The Deployment Manager allows a policy writer to deploy new policies without the manual process of exporting a deployment package that is then uploaded into the server through the administrative console. For more information, see About the Deployment Manager.

Upgrade considerations

Peer setup and clustered configuration are deprecated and will be removed in PingAuthorize 9.0. We encourage deployers to manage server configuration using server profiles, which support deployment best practices such as automation and Infrastructure-as-Code (IaC). For more information about server profiles, see the PingAuthorize Server Administration Guide.

For more considerations, see Upgrade considerations.

Critical fixes

This release of PingAuthorize Server addresses critical issues from earlier versions. Update all affected servers appropriately.

  • Addressed an issue that could lead to slow, off-heap memory growth. This only occurred on servers whose cn=Version,cn=monitor entry was retrieved frequently.
    • Fixed in: 8.1.0.0
    • Introduced in: 5.2.0.0
    • Support identifiers: DS-41301
  • The following enhancements were made to the topology manager to make it easier to diagnose connection errors:
    • Added monitoring information for all the failed outbound connections (including the time since it has been failing and the last error message seen when the failure occurred) from a server to one of its configured peers and the number of failed outbound connections.
    • Added alarms/alerts for when a server fails to connect to a peer server within a configured grace period.
    • Fixed in: 7.3.0.0
    • Introduced in: 7.0.0.0
    • Support identifiers: DS-38334 SF#00655578
  • The topology manager now raises a mirrored-subtree-manager-connection-asymmetry alarm when a server can establish outbound connections to its peer servers but those peer servers cannot establish connections back to the server within the configured grace period. The alarm is cleared as soon as there is connection symmetry.
    • Fixed in: 7.3.0.0
    • Introduced in: 7.0.0.0
    • Support identifiers: DS-38344 SF#00655578
  • Fixed two issues in which the server could have exposed some clear-text passwords in files on the server file system.
    • When creating an encrypted backup of the alarms, alerts, configuration, encryption settings, schema, tasks, or trust store backends, the password used to generate the encryption key (which may have been obtained from an encryption settings definition) could have been inadvertently written into the backup descriptor.
    • When running certain command-line tools with an argument instructing the tool to read a password from a file, the password contained in that file could have been written into the server's tool invocation log instead of the path to that file. Affected tools include backup, create-initial-config, ldappasswordmodify, manage-tasks, manage-topology, reload-http-connection-handler-certificates, remove-defunct-server, restore, rotate-log, and stop-server. Other tools are not affected. Also note that this only includes passwords contained in files that were provided as command-line arguments; passwords included in the tools.properties file, or in a file referenced from tools.properties, would not have been exposed.

      In each of these cases, the files would have been written with permissions that make their contents only accessible to the system account used to run the server. Further, while administrative passwords might have been exposed in the tool invocation log, neither the passwords for regular users, nor any other data from their entries, should have been affected. We have introduced new automated tests to help ensure that such incidents do not occur in the future.

      We recommend changing any administrative passwords you fear might have been compromised as a result of this issue. If you are concerned that the passphrase for an encryption settings definition might have been exposed, then we recommend creating a new encryption settings definition that is preferred for all subsequent encryption operations. You also might want to re-encrypt or destroy any existing backups, LDIF exports, or other data encrypted with a compromised key, and you might want to sanitize or destroy any existing tool invocation log files that might contain clear-text passwords.

    • Fixed in: 7.3.0.0
    • Introduced in: 7.0.0.0
    • Support identifiers: DS-38897 DS-38908
  • The following enhancements were made to the topology manager to make it easier to diagnose connection errors:
    • Added monitoring information for all the failed outbound connections (including the time since it has been failing and the last error message seen when the failure occurred) from a server to one of its configured peers and the number of failed outbound connections.
    • Added alarms/alerts for when a server fails to connect to a peer server within a configured grace period.
    • Fixed in: 7.2.1.0
    • Introduced in: 7.0.0.0
    • Support identifiers: DS-38334 SF#00655578
  • The topology manager now raises a mirrored-subtree-manager-connection-asymmetry alarm when a server can establish outbound connections to its peer servers but those peer servers cannot establish connections back to the server within the configured grace period. The alarm is cleared as soon as there is connection symmetry.
    • Fixed in: 7.2.1.0
    • Introduced in: 7.0.0.0
    • Support identifiers: DS-38344 SF#00655578
  • Fixed two issues in which the server could have exposed some clear-text passwords in files on the server file system.
    • When creating an encrypted backup of the alarms, alerts, configuration, encryption settings, schema, tasks, or trust store backends, the password used to generate the encryption key (which may have been obtained from an encryption settings definition) could have been inadvertently written into the backup descriptor.
    • When running certain command-line tools with an argument instructing the tool to read a password from a file, the password contained in that file could have been written into the server's tool invocation log instead of the path to that file. Affected tools include backup, create-initial-config, ldappasswordmodify, manage-tasks, manage-topology, reload-http-connection-handler-certificates, remove-defunct-server, restore, rotate-log, and stop-server. Other tools are not affected. Also note that this only includes passwords contained in files that were provided as command-line arguments; passwords included in the tools.properties file, or in a file referenced from tools.properties, would not have been exposed.

      In each of these cases, the files would have been written with permissions that make their contents only accessible to the system account used to run the server. Further, while administrative passwords might have been exposed in the tool invocation log, neither the passwords for regular users, nor any other data from their entries, should have been affected. We have introduced new automated tests to help ensure that such incidents do not occur in the future.

      We recommend changing any administrative passwords you fear might have been compromised as a result of this issue. If you are concerned that the passphrase for an encryption settings definition might have been exposed, then we recommend creating a new encryption settings definition that is preferred for all subsequent encryption operations. You also might want to re-encrypt or destroy any existing backups, LDIF exports, or other data encrypted with a compromised key, and you might want to sanitize or destroy any existing tool invocation log files that might contain clear-text passwords.

    • Fixed in: 7.0.1.3
    • Introduced in: 7.0.0.0
    • Support identifiers: DS-38897 DS-38908

Known issues and limitations

  • A defect that caused all Java classes to be whitelisted for SpEL use in embeddedPDP mode has been fixed. However, there is currently no way to configure the embeddedPDP whitelist, which might break existing policies for customers relying on the errant behavior. At the moment, customers can only use SpEL with Java classes on the default allow-list. For more information, see Configuring SpEL Java classes for value processing.
  • If the configured deployment package store is not available when the PingAuthorize server starts, it will not be able to detect when the store becomes available again. To ensure that the PingAuthorize server begins using the deployment package store when the store is available again, you must restart the server or change the Policy Decision Service configuration.
  • Can't use an existing persistent database when using Docker volumes

    The pingdatagovernancepap and pingauthorizepap Docker images now run as unprivileged (non-root) users by default. If you have existing pingdatagovernancepap policy databases, configure the containers to run as root. For more information, see Installing PingAuthorize Policy Editor using Docker.

  • Can't persist the database in /opt/db when using Docker volumes

    To persist a policy database in a Docker volume, create a new Docker volume with a mount target of /opt/out instead of /opt/db. For more information, see Installing PingAuthorize Policy Editor using Docker.

  • Reconfiguring the Policy Editor in a Docker volume

    When you are using the Policy Editor in a Docker volume, changing the configuration using an options.yml file, also requires that you create an empty file /opt/out/instance/delete-after-setup before you restart pingauthorizepap.

    Consider the following example.

    1. You start the container with a command like the one below.
      Note:

      The following command bind mounts a customized options.yml file named custom-options.yml to the server root using the server profile capability. The host system server-profile folder must contain instance/custom-options.yml for this example to work correctly. See https://devops.pingidentity.com/reference/config/.

      $ docker run --network=<network_name> --name pap -p 8443:1443 \
       --env-file ~/.pingidentity/devops \
       --volume /home/developer/pap/server-profile:/opt/in/ \
       --env PING_OPTIONS_FILE=custom-options.yml \
       --volume /home/developer/pap/Symphonic.mv.db:/opt/out/Symphonic.mv.db \
       --env PING_H2_FILE=/opt/out/Symphonic \
       pingidentity/pingauthorizepap:<TAG>
      where the Docker image <TAG> is only a placeholder.
    2. You decide to change the configuration, so you edit the custom-options.yml file.
    3. You create the empty file with a command like this one.
      docker exec -it pap /bin/sh -c "touch /opt/out/instance/delete-after-setup"
    4. With that file in place, you can now restart the Policy Editor with the following commands.
      $ docker stop pap
      $ docker start --attach pap
  • Upgrading multi-server topologies that contain PingDataGovernance 6.x or 7.x to PingAuthorize is not supported.
  • Published throughput and latency stats for SCIM, Sideband, and Gateway requests for the Periodic Stats Logger are not recorded until the requests are made and the logger is reset.
  • The Policy Editor produces an error when a user attempts to import an exported snapshot that contains references to named value processors.
  • Several known issues can occur when you use the Administrative Console with Tomcat 9.0.31. You can resolve these issues by upgrading to Tomcat 9.0.33 or later.
  • If you use the create-systemd-script tool to create a forking systemd service, the service is stopped by the systemctl stop ping-authorize.service command. At that time, you can see the status using the systemctl status ping-authorize.service command. That status might contain an indication of failure: Active: failed (Result: exit-code). This error has to do with the way the service exits. It is harmless.
  • The option to download collect-support-data or to generate a server profile using the admin console will not work when logged in with single sign-on.

Resolved issues

The following issues have been resolved with this release of the PingAuthorize Server.

Ticket ID Description
DS-8

The Administrative Console now shows a dsconfig command to create the current object from scratch on the edit page.

PAZ-736

Fixed an issue in the Policy Editor where an entity deletion in a child branch could cause entity relationship deletions in related branches.

PAZ-1059

Fixed an intermittent issue where a branch selection drop-down list in the Policy Editor appeared as blank for Windows users. This occurred on newer versions of Firefox when the branch names included special characters.

DS-15746

Added a passphrase provider mechanism, which can be used to obtain clear-text passphrases, API keys, or other types of secrets that are needed by server components like those that interact with external servers or certificate key stores. Available passphrase provider implementations include:

* A provider that stores an obscured representation of the passphrase directly in the server configuration.

* A provider that reads the passphrase from a file on the server filesystem. The file may optionally be encrypted with a key from the server's encryption settings database.

* A provider that can obtain the passphrase from an environment variable set in the server's process.

* A provider that can obtain the passphrase from a HashiCorp Vault instance.

Components of the server that have been updated to support using passphrase providers include:

* LDAP, JDBC, SCIM, and SMTP external servers. * File-based key and trust manager providers. * The PKCS #11 key manager provider. * The changelog password encryption plugin. * The Twilio alert handler and OTP delivery mechanism. * The UNBOUNDID-YUBIKEY-OTP SASL mechanism handler.

The Server SDK has been updated to provide support for creating custom passphrase provider implementations and to allow extensions to retrieve secrets from passphrase providers configured in the server.

DS-39157,DS-39158,DS-43848

The Server SDK ServerContext class has been updated to provide a new set of methods for writing messages to the server's trace log publishers using various log severity levels. These methods replace an existing API that only supported recording debug messages, which should not be enabled in production environments.

Administrators can configure the server's trace log publishers to enable or disable message types on a per-severity basis using a trace log publisher's extension-message-type property.

DS-41326,DS-41951

You can now download either a collect-support-data file or a server profile from the managed server using the administrative console’s Status page. These operations require that a 'csd-files/' and a 'profile-files/' directory be present in the server root by default, but you can customize this through the ldap.csd-destination-folder and ldap.profile-destination-folder settings. These settings can be found in the console's application.yml configuration file.

Downloading collect-support-data files is disabled by default when using the PingDataConsole Docker image. It also strongly recommended to avoid downloading collect-support-data files from servers that are running in a container.

DS-41815

Fixed an issue with the copy/paste functionality in the Administrative Console.

DS-41911

In order to reduce the time it takes for "setup" to run the testing of Java options that "setup" does will now be cached and stored in a directory. By default the directory is "logs/option-cache" relative to the server root, but an alternative directory can be specified via setup option "--optionCacheDirectory". If a directory is specified it must be created prior to running setup.

DS-42023

The PingAuthorize Server now presents general status information for the Policy Decision Service in both the Administrative Console Status page and the status command-line tool. This includes the Policy Decision Service's availability state, the current PDP mode, and the currently configured trust framework version.

DS-42203,DS-43545,DS-43739

Fixed a problem where the server would respond with a 400 or 404 HTTP status code if the Policy External Server was misconfigured with a nonexistent decision node ID or policy branch. In these cases, the server will now respond with the 503 HTTP status code to clearly indicate that the PingAuthorize server is misconfigured.

DS-42401,DS-43754

Updated the manage-profile replace-profile subcommand to detect changes to files referenced in setup-arguments.txt when those files are outside of the server profile

DS-42937

The Administrative Console now allows users to specify the LDAP server they wish to bind to using the query parameters 'ldap-hostname' and 'ldaps-port' when the console is configured for SSO. This allows a single console instance to administer multiple PingData servers. Note that an LDAPS scheme is always assumed because an encrypted connection is always required for SSO.

DS-43224

Made a generic OpenID Connect ID token validator available. This change allows single sign-on to the Administrative Console with OIDC providers other than just PingOne.

DS-43277

When operating in OpenID Connect (OIDC) mode, customers can now configure the PingAuthorize Policy Editor to accept self-signed SSL certificates from the OIDC provider and skip hostname verification by setting the PING_OIDC_TLS_VALIDATION environment variable to "NONE".

DS-43435

Fix a bug that prevented offline changes to mirrored configuration with manage-profile replace-profile.

DS-43441

Fixed "Reverse DNS resolution" warning during setup. This warning was a result of performing a reverse DNS lookup on link local addresses, which is now avoided. This is mostly only relevant to IPv6.

DS-43632

Fixed an issue where the "format" field is omitted from the list of operational attribute schemas in the Directory REST API.

DS-43719

Added the capability to filter JSON field values in constructed values. Including a JSON object filter in parentheses after a JSON field name will indicate that for each attribute value, the named field value will only be extracted if the attribute value matches the provided filter. This allows, for example, when used in a Constructed Attribute Mapping's value-pattern property, for a given field value to only be mapped for values that match a given filter. For information about the syntax and use of this capability, see the config reference guide for Constructed Attribute Mappings.

DS-43787,DS-43788,DS-43795

Added the ability to implement custom SCIM Sub-Resource Type Handlers using the Server SDK. A SCIM Sub-Resource Type Handler defines a child type of a SCIM resource type that you can use to offer extended features not defined by the SCIM 2.0 standard.

DS-43817

Fixed an issue where Directory Server sometimes reports erroneous warnings about duplicate jar files.

DS-43830

PingAuthorize now supports deployment package stores, which allow for hot deployment of policies without needing to manually reconfigure the server. For more information, see the PingAuthorize Server Administration Guide.

DS-43873

Added a new service, the Governance Engine, to allow PingDataGovernance to act as an external Policy Decision Point for other applications acting as Policy Enforcement Points. This service provides a simple JSON-based API which directly maps to entities used by the Trust Framework and Policies defined in the Policy Administration GUI.

DS-43890

Fixed an issue with dsjavaproperties --initialize that prevented changing the JVM tuning parameter using the --jvmTuningParameter command line argument.

DS-43916

Added cipher stream provider and passphrase provider implementations with support for the Amazon AWS Secrets Manager service. The Amazon Secrets Manager cipher stream provider can be used to protect the contents of the encryption settings with a key derived from a secret retrieved from the Secrets Manager service. The Amazon Secrets Manager passphrase provider can be used to obtain clear-text secrets needed for processing within the server from the Secrets Manager service.

DS-43930

PingDataGovernance has been renamed to PingAuthorize.

DS-43935

Updated manage-profile replace-profile to run a shorter process when applying dsconfig changes that require administrative actions.

DS-43941

You can now specify that the Administrative Console use a custom truststore when evaluating OIDC provider certificates by using the oidc-trust-store-file and oidc-trust-store-type settings. Also, you can set the console to skip hostname and/or certification verification through the oidc-strict-hostname-verification and oidc-trust-all configuration settings.

DS-43950

Fixed an issue where Directory Server failed to install on JDKs that lack support for AES-256 encryption.

DS-44010

Updated the server to allow obtaining client secrets from a passphrase provider as an alternative to storing an obscured representation of the secret directly in the configuration. Updated components include:

* The OpenID Connect client secret needed for single sign-on to the admin console

* The OAuth client secret needed to connect to the PingOne service

* The client secret needed in conjunction with the PingFederate access token validator

DS-44025

Addressed an issue where the server was incorrectly displaying an "Unknown vendor" warning when using JDKs obtained on Red Hat and Ubuntu systems.

DS-44057

Improved the behavior that the server exhibits for attempts to configure it with an invalid set of TLS cipher suites.

Previously, if a connection handler was configured with an explicit set of TLS cipher suites, and if none of those cipher suites was supported by the underlying JVM, the server would log a message for each unsupported suite and would fall back to using a default set of suites. This could lead to cases in which the server ran with a different set of cipher suites than expected, and the warning log messages might be overlooked.

The server will now reject an attempted configuration change that would leave it without any valid cipher suites. For the sake of preserving backward compatibility, and helping to avoid issues around upgrading the server or JVM version, it will still allow attempts to configure the set of cipher suites using one or more invalid suite names as long as the server would still be able to offer at least one valid suite, and it will still log a warning message about each invalid cipher suite referenced in the configuration.

DS-44061

Fixed a NullPointerException that could occur when using manage-profile replace-profile with a server profile that configured a StatsD monitoring endpoint.

DS-44106

Updated the StatsD Monitoring Endpoint to support sending custom tags with each metric message. Custom tags will be appended at the end of each StatsD message as comma-separated key-value pairs.

DS-44187

Included the Bouncy Castle library with the server, which is needed to support certain cryptographic functionality, like the Argon2, bcrypt, and scrypt password storage schemes. It was not previously not included with the server over concerns around compliance with U.S. export control regulations around strong encryption, but those concerns have been alleviated. You no longer need to obtain the library for yourself if you wish to use any of the functionality that requires it, and the Argon2, bcrypt, and scrypt password storage schemes are now enabled by default in the out-of-the-box configuration.

DS-44192

Updated the default set of TLS protocols and cipher suites that the server will support. As TLSv1 and TLSv1.1 are no longer considered secure (see RFC 8996 for additional information), the server will only support TLSv1.2 and TLSv1.3 (if supported by the JVM) by default. The server will also no longer enable support for TLS cipher suites that use the SHA-1 digest algorithm (which is also no longer considered secure and is not needed for TLSv1.2 or TLSv1.3) or that use the RSA key exchange algorithm (which does not support forward secrecy).

If you need to enable support for legacy TLS protocols or cipher suites, you may do so through the server configuration. This can be enabled on a per-connection-handler basis using the ssl-protocol and ssl-cipher-suite configuration properties. Alternatively, you may use the ssl-protocol and ssl-cipher-suite properties in the crypto manager configuration to set default values that will be used by connection handlers that do not explicitly specify values for those properties.

DS-44223

The 8.2.0.0 release introduced a defect where signed deployment packages produced by the Policy Editor were unusable by the PingAuthorize Server without additional configuration in options.yml. The sample signed deployment package in the options.yml file now includes the additional configuration by default.

DS-44316

Reduced the JVM memory requirements for many command line tools. This avoids memory pressure when multiple tools, such as a scheduled collect-support-data task, are run concurrently to the server process. For most tools, the initial heap size has been reduced to 128 MB, and for certain tools the maximum heap size has capped at 512 MB. On systems with larger amounts of memory, these tools previously were allotted unnecessarily large heaps. The maximum heap size has not been reduced for any tool that especially benefits from having more memory.

DS-44390

Fixed an issue where logs from setting up a new server could be lost when running the manage-profile replace-profile subcommand.

DS-44410

When deployed to a web application server such as Apache Tomcat, the Administrative Console will now write log messages to the application server's console output by default.

DS-44436

Addressed an issue in which attempting to add a member that already existed in a non-default server group would cause an error. Adds of duplicate members are now ignored and no errors are thrown.

DS-44531

Updated the manage-profile replace-profile command to avoid printing warnings for offline config changes from the new server profile.