Notes covering OpenIDM software requirements, fixes, known issues. The OpenIDM project offers flexible, open source services for automating management of the identity life cycle.
Chapter 1. What's New in OpenIDM 4.5
1.1. What's New in 4.5.1
OpenIDM 4.5.1 is a maintenance release that resolves a number of issues, and brings the enhancements described in this section. It is strongly recommended that you update to this release to take advantage of important functional fixes. ForgeRock customers can contact support for help and further information.
The process for updating from OpenIDM 4.5.0 to OpenIDM 4.5.1 is fairly straightforward. No schema changes have been implemented in this release so you should be able to run a CLI or UI update without any problems. Refer to "Updating OpenIDM 4.0, Stage Three" in the Installation Guide for guidance on starting the update.
- Improvements to password reset policy failure handling
For more information, see OPENIDM-7945
- Schema editor enhancements and fixes
For more information, see OPENIDM-7405
1.2. What's New in 4.5.0
OpenIDM 4.5.0 provides many new features and product enhancements. The following list describes the main new features affecting an end user.
- Enhancements to the Update Model
The automated update process, introduced in OpenIDM 4.0.0, has been enhanced in OpenIDM 4.5 and includes the ability to update an OpenIDM instance by using the CLI and the Admin UI. In addition, the update mechanism now supports changes to the database schema for the supported repositories.
For more information, see "Updating OpenIDM" in the Installation Guide.
- Ability to Direct Audit Events to Third-Party Products
OpenIDM now supports directing audit events to third-party data management services, such as Elasticsearch and Java Message Service (JMS).
For more information, see "Elasticsearch Audit Event Handler" in the Integrator's Guide and "JMS Audit Event Handler" in the Integrator's Guide.
- Support for dynamic role grants and temporal constraints on roles
The roles mechanism now enables you to define conditions, based on a query filter, that will automatically grant roles to users for whom the query returns
true
. In addition, you can declare temporal constraints on a role, which will make the role effective only for a defined period.For more information, see "Granting Roles Dynamically" in the Integrator's Guide and "Using Temporal Constraints to Restrict Effective Roles" in the Integrator's Guide.
- Ability to Visualize Relationships Between Objects
The OpenIDM Admin UI provides a relationships graph widget that enables you to visualize the various levels of relationships between objects.
For more information, see "Viewing Relationships in Graph Form" in the Integrator's Guide.
- Custom Dashboard Configuration
OpenIDM 4.5.1-20 supports customization of multiple dashboards with a variety of widgets. Individual widgets can be moved around each dashboard.
For more information, see "Configuring OpenIDM from the Admin UI" in the Integrator's Guide.
- Support for Literal Expression Queries on System Objects
Previously, literal expressions (
true
andfalse
) could be used only in queries on managed objects. In OpenIDM 4.5, you can also query system objects with an expression such as the following:$ curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --request GET \ 'http://localhost:8080/openidm/system/ldap/account?_queryFilter=true'
- New OpenICF Connectors
OpenIDM supports a number of new OpenICF connectors, including an implementation of the scripted Groovy connector that enables you to connect to an SAP system, and an implementation of the scripted PowerShell connector that enables you to connect to Azure AD.
For more information about the connectors supported with OpenIDM, see Connectors Guide.
For installation instructions, see "Installing OpenIDM Services" in the Installation Guide.
Several samples are provided to familiarize you with the OpenIDM features. For more information, see "Overview of the OpenIDM Samples" in the Samples Guide.
For an architectural overview and a high-level presentation of OpenIDM, see "Architectural Overview" in the Integrator's Guide.
1.3. Security Advisories
ForgeRock issues security advisories in collaboration with our customers and the open source community to address any security vulnerabilities transparently and rapidly. ForgeRock's security advisory policy governs the process on how security issues are submitted, received, and evaluated as well as the timeline for the issuance of security advisories and patches.
For details of all the security advisories across ForgeRock products, see Security Advisories in the Knowledge Base library.
Chapter 2. Before You Install OpenIDM Software
This chapter covers prerequisites for installing and running OpenIDM software.
For OpenIDM 4.5, the following configurations are supported for use in production.
- Repository
The following JDBC repositories are supported for use in production:
MySQL version 5.5, 5.6, and 5.7 with MySQL JDBC Driver Connector/J 5.1.18 or later
Microsoft SQL Server 2012 and 2014
Oracle Database 11gR2 and 12c
PostgreSQL 9.3 and 9.4
IBM DB2, 10.x
OrientDB is provided for evaluation only.
- Stand-alone installation
You must install OpenIDM as a stand-alone service, using Apache Felix and Jetty, as provided. Alternate containers are not supported.
OpenIDM 4.5 bundles Jetty version 9.2.
- Connectors
OpenIDM 4 bundles the following OpenICF connectors:
CSV File Connector
Database Table Connector
Groovy Connector Toolkit
This toolkit enables you to create scripted connectors to virtually any resource
LDAP Connector
XML File Connector
OpenIDM 4.5 bundles the following additional connectors:
Kerberos Connector
Scripted SSH Connector
Currently supported only as a prerequisite for the Kerberos Connector
A PowerShell Connector Toolkit is available for download from ForgeRock Backstage, and enables you to create scripted connectors to address the requirements of your Microsoft Windows ecosystem.
Additional connectors are supported with a subscription, and are available on the ForgeRock Backstage site. The following connectors are bundled only with the OpenIDM Enterprise release:
Google Apps Connector
Salesforce Connector
ForgeRock provides additional connectors, as listed on the OpenICF project connectors site.
When using the LDAP connector to provision to Active Directory, OpenIDM 4.5 supports Active Directory Domain Controllers, Active Directory Global Catalogues, and Active Directory Lightweight Directory Services (LDS).
OpenIDM 4.5 also provides support for Windows 2012 R2 as the remote system for connectors and password synchronization plugins.
The following table lists the supported connector, connector server, and password synchronization plugins for this OpenIDM release.
Supported Connectors, Connector Servers, and PluginsConnector Supported With OpenIDM 4.0 Supported With OpenIDM 4.5 CSV File Connector 1.5.0.0 1.5.1.4 Database Table Connector 1.1.0.2 1.1.0.2 Google Apps Connector 1.4.1.0 1.4.1.0 Groovy Connector Toolkit 1.4.2.1 1.4.2.1 Kerberos Connector - 1.4.0.0 LDAP Connector 1.4.1.0 1.4.1.2 Powershell Connector Toolkit 1.4.2.0 1.4.2.1 Salesforce Connector 2.0.29.2 2.0.29.2 XML Connector 1.1.0.3 1.1.0.3 Active Directory Connector 1.4.0.0 1.4.0.0 Java Connector Server 1.5.0.0, 1.4.1.0 1.5.1.0, 1.5.0.0, 1.4.1.0 .NET Connector Server 1.5.0.0, 1.4.1.0 1.5.1.0, 1.5.0.0, 1.4.1.0 OpenDJ Password Synchronization Plugin 1.0.3, supported for OpenDJ 2.6.3
1.1.1, supported for OpenDJ 3.0.0
1.0.3, supported for OpenDJ 2.6.3
1.1.1, supported for OpenDJ 3.0.0
3.5.0, supported for OpenDJ 3.5.0 Enterprise Edition (not for OpenDJ OEM Edition)
Active Directory Password Synchronization Plugin 1.0.3, supported on Windows 2008 R2 and Windows 2012 R2 1.1.0, supported on Windows 2008 R2 and Windows 2012 R2 OpenIDM 4.0 and upwards supports a revised version of the OpenICF Framework. You must use the supported versions of the .NET Connector Server, or the Java Connector Server. The 1.5.x Java Connector Server is backward compatible with the version 1.1.x connectors. The 1.5.x .NET Connector Server is compatible only with the 1.4.x and 1.5.x connectors.
The 1.5.0.1 .NET connector server requires the .NET framework (version 4.5 or later) and is supported on Windows Server 2008 R2 and 2012 R2.
Important
Although the scripted connector toolkits are supported, connectors that you build with these toolkits are not supported. You can find examples of how to build connectors with these toolkits in "Samples That Use the Groovy Connector Toolkit to Create Scripted Connectors" in the Samples Guide and "Samples That Use the PowerShell Connector Toolkit to Create Scripted Connectors" in the Samples Guide.
- Browsers
ForgeRock has tested many browsers with the OpenIDM UI, including the following browsers.
Chrome and Chromium, latest stable version
Firefox, latest stable version
Safari, latest stable version
Internet Explorer 9 and later
- Operating Systems
ForgeRock supports the use of OpenIDM 4.5 on the following operating systems:
Red Hat Enterprise Linux 6.x/7.x (CentOS Linux 6.x/7.x)
Ubuntu Linux 14.04
Windows 2008 R2
Windows 2012 R2
- Java Environment
OpenIDM requires Java 7 or Java 8, specifically at least the Java Standard Edition runtime environment. ForgeRock has performed most testing with Oracle Java Platform, Standard Edition.
ForgeRock recommends that you keep your Java installation up to date with the latest security fixes.
When using the Oracle JDK, you also need the Java Cryptography Extension (JCE) policy files.
On Windows systems, use Java SE JDK 7 update 6 or later, to take advantage of the JVM fix relating to non-blocking sockets with the default Jetty configuration.
OpenIDM 4.5 also supports OpenJDK 1.7 and OpenJDK 1.8.
If you have a special request to support a component or combination not listed here, contact ForgeRock at info@forgerock.com.
You need 250 MB disk space and 1 GB memory for an evaluation installation. For a production installation, disk space and memory requirements will depend on the size of any internal and external repositories, as well as the size of the audit and service log files that OpenIDM creates.
Chapter 3. Fixes, Limitations, & Known Issues
This chapter covers the status of key issues and limitations for OpenIDM 4.5. For details and information on other issues, see the OpenIDM issue tracker.
3.1. Key Fixes
This section covers key bug fixes in OpenIDM 4.5 software.
3.1.1. Key Fixes in 4.5.1
The following important bugs were fixed in this release:
OPENIDM-8064: Backport OPENIDM-6538: After update from 4.5 to 5.0 many services are unable to startup
OPENIDM-7992: Adding relationship property to managed user schema breaks resource view
OPENIDM-7982: Backport OPENIDM-7803: Audit activity occurs for update even when before/after show no differences
OPENIDM-7981: UI mapping pages receive recon status updates from other mappings
OPENIDM-7946: Backport OPENIDM-6641: cannot-contains-others policy is broken and does not correctly detect values which do not meet the policy requirements
OPENIDM-7806: Backport OPENIDM-6156: multi-valued mail attribute causes reconciliation to abort without accurately auditing the failure cause
OPENIDM-7771: Backport OPENIDM-7223: recon always detects manager field as modified
OPENIDM-7675: Backport OPENIDM-6051: Entire source object is returned when an attribute in sample data is null
OPENIDM-7674: Backport OPENIDM-7422: Apostrophe character is not displaying properly in the Provisioning Roles
OPENIDM-7673: Backport OPENIDM-6291: '/_id: Expecting a value' warning when adding a Role with an On Assignment script
OPENIDM-7670: Backport OPENIDM-5850: groupRoleMapping in passthrough authentication not working with LDAP
OPENIDM-7584: Sorting in workflow notification is not working properly
OPENIDM-7562: Backport OPENIDM-6818: OpenIDM ICF Provisioner 'runAs' use-case is broken when integrating with OpenDJ
OPENIDM-7546: Backport OPENIDM-7545: Setting viewable==false for manager attribute prevents rendering the New User dialog
OPENIDM-7478: Backport OPENIDM-6720: MySQLTableHandler erroneously unused by JDBCRepoService.getGenericTableHandler()
OPENIDM-7477: Backport OPENIDM-6207: Excessive DB lock contention resulting from readForUpdateQueryStr execution in GenericTableHandler
OPENIDM-7411: Backport OPENIDM-7108: Password Reset Token issued by one process cannot be validated by a different process
OPENIDM-7410: Backport OPENIDM-5754: onUpdate trigger on managed user called twice with a patch operation
OPENIDM-7409: Backport OPENIDM-7014: SQLException thrown during GenericTableHandler.readForUpdate() is masked by failure to close the Statement associated with the ResultSet
OPENIDM-7408: Backport OPENIDM-6068: Target reconciliation does not finish for large datasets
OPENIDM-7407: Backport OPENIDM-6923: IDM stops responding during create with managed role
OPENIDM-7406: Backport OPENIDM-5906: PATCH request with null rev invoked twice at the same time causes infinite loop
OPENIDM-6628: Backport OPENIDM-6619: after object missing from activity log when removing an authzRole
OPENIDM-6549: Backport OPENIDM-6457: CREATE request with _fields for relationships are not returned in the response
OPENIDM-6502: NullPointerException when external client returns HTTP 204 response
3.1.2. Key Fixes in 4.5.0
The following important bugs were fixed in this release:
OPENIDM-6032: In some situations, the Admin UI does not display the properties of a completed workflow
OPENIDM-5960: EmailClient requires username/password when auth is disabled
OPENIDM-5908: Sample source output does not work when source is empty
OPENIDM-5906: PATCH request with null rev invoked twice at the same time causes infinite loop
OPENIDM-5895: Admin UI does not display multiple assignments of the same role
OPENIDM-5845: Linked view ends with global exception if there is something wrong with some linked resource
OPENIDM-5841: Query filters with OR do not work as expected with null value properties
OPENIDM-5711: onUpdate script not executed when Updating a user with a provisioning or auth role
OPENIDM-5686: ambiguousTargetObjectIds not provided to situation action scripts
OPENIDM-5683: targetIdsCaseSensitive not honored when "links" set in mapping (backport of OPENIDM-5459)
OPENIDM-5624: Many-to-one relationships are not honoured
OPENIDM-5561: configimport fails to add new config object
OPENIDM-5557: Config audit event may exceed size limit of changedFields column
OPENIDM-5551: Correlation queries should not be invoked during liveSync of delete operations
OPENIDM-5542: OpenAM_Sessions setting wrong truststore property name
OPENIDM-5520: QueryFilter property of relationship schema not used to filter dropdown
OPENIDM-5481: When creating a workflow instance over REST using openidm-admin, errors appear in the admin interface
OPENIDM-5477: external/rest endpoint only returns the last "Set-Cookie" header
OPENIDM-5471: LastSync EffectiveAssignments not working when implicit sync is turned off on a target system
OPENIDM-5446: Removing a Managed Assignment from a Role is not reflected on the target system
OPENIDM-5438: Infinite loop within Restlet 2.1.2 library when using ExternalRest over SSL
OPENIDM-5436: "total" not returned with query-all-ids-count on explicit table
OPENIDM-5313: Data disappears when sorted in the UI
OPENIDM-5295: NPE during Reconciliation when updating/linking a target entry which is no longer present
OPENIDM-5227: LDAP Connector search filters not persisted by the Admin UI
OPENIDM-5224: When editing existing Groovy scripts, the dropdown type changes to JavaScript everytime
OPENIDM-5223: With implicit sync off, removal of role assignment not properly provisioned to target at reconciliation
OPENIDM-5208: Unable to save dynamic linkQualifer script within the Admin UI
OPENIDM-5207: OpenIDM Admin UI throws 'Bad Request' when searching for Sample User on Attributes Grid
OPENIDM-5204: Session time-out within Admin UI prevents mapping changes from being saved after re-auth
OPENIDM-5200: "_id" property form is displayed when "return by default" is changed to true
OPENIDM-5197: Cancelling a reconciliation within the UI stops browser from loading information on the mapping associated with the cancelled recon
OPENIDM-5190: Transform script not evaluated by the Admin UI if the source is the complete object
OPENIDM-5189: Difficulty configuring a given property mapping to use the complete source object via the UI
OPENIDM-5176: Unable to shutdown OpenIDM running as a service in *nix environments
OPENIDM-5163: CSV connector configuration headerName and headerUid mandatory
OPENIDM-5154: Attempting to change user password fails with Failed policy validation
OPENIDM-5150: JSON configuration files always reloaded at startup irrespective of modifications
OPENIDM-5146: When using OpenAM session for OpenIDM authentication, user registration does not display on OpenAM login page
OPENIDM-5097: Configuring OpenAM session authentication causes continuous reauthentication prompts
OPENIDM-5042: No "security questions" tab for user profile when only using password reset
OPENIDM-5032: Workflow sample: unable to complete manager task, due to startup issues
OPENIDM-5017: keyAlias within authentication.json is hard-coded and does not use property substitution
OPENIDM-5011: Livesync configured in the UI fails to sync user changes from AD
OPENIDM-5008: startup has script error when OpenJDK is used
OPENIDM-4992: In workflow use cases managed users can not be created via Admin UI
OPENIDM-4986: Unable to add properties to managed users in samples
OPENIDM-4961: enableFilteredResultsHandler:true causes NPEs when using queryFilter=true
OPENIDM-4957: OpenAM Auth Module, UI doesn't reflect change in Require OpenAM Authentication setting, after saving (refresh required)
OPENIDM-4954: In Admin UI, Audit Event config, "passed variables" added to the script are not saved
OPENIDM-4946: Admin UI -- CSV Audit Handler: if tamper-evident security is disabled and signature interval is blank, other security entries lead to audit service failure
OPENIDM-4945: Newline character was not saved correctly when configured through UI and caused only one line in csv audit files
OPENIDM-4934: Client-side pre-validation not being performed on Admin UI edit screens
OPENIDM-4926: Scriptedcrest2Dj and Scriptedrest2Dj samples do not work with OpenDJ 3.0.0
OPENIDM-4919: Script eval action doesn't handle ResourceExceptions thrown by scripts
OPENIDM-4917: Scripted CREST Sample. UI connector template is missing descriptions
OPENIDM-4916: workflow sample issues on startup and manager task completion
OPENIDM-4914: In Admin UI, deleting connector for sample5 fails with internal error
OPENIDM-4913: TaskScanner not working when using Oracle as a repo
OPENIDM-4911: H2 repo not starting up properly
OPENIDM-4879: Workflow sample usecase specific repo config file is missing for Oracle and postgreSQL
OPENIDM-4874: Add user password page loses cursor focus after tabbing/clicking
OPENIDM-4872: Self Registration page password field loses cursor focus after tabbing/clicking
OPENIDM-4859: Selecting manager on Assignment Attributes tab causes page to load incompletely
OPENIDM-4857: Clicking disabled Save button on Authorization Role page takes you to User Details page
OPENIDM-4856: Role edit page doesn't load when openidm-authorized, Basic minimum user clicked
OPENIDM-4817: Creating a managed object with relationship property using string fails with internal server error and status 500
OPENIDM-4808: Hidden tab visible on user edit page
OPENIDM-4798: Command to create a managed user with encoded percentage in ID fails with server error on policy
OPENIDM-4774: Live sync schedules created via the Admin UI are not enabled
OPENIDM-4681: With postgreSQL repo workflow service randomly fails to start properly
OPENIDM-4673: JDBC repo on MySQL with SSL requires a client key
OPENIDM-4624: MS SQL database script creates the openidm user with the wrong password
OPENIDM-4564: Inconsistency in launcher.json
OPENIDM-4549: Warnings when importing MS-SQL schema
OPENIDM-4473: Activiti does not pick up DataSource configuration changes.
OPENIDM-4451: When workflow is disabled, a request to workflow endpoint fails with status 500 with empty response
OPENIDM-4388: repo/scheduler not found exception, when Oracle DB is the repo
OPENIDM-4369: Viewing data for an LDAP/Group in the UI throws an error
OPENIDM-4321: Unable to use cli.sh for remote administration over a secure port
OPENIDM-4261: Setting relationship properties to empty string throws NPE
OPENIDM-4110: Multiple servlets map to path stacktraces on startup with MySQL/DB2/MSSQL as repo
OPENIDM-4080: Deleting a custom Certificate in Trustore via REST now returns a broken response
OPENIDM-4049: User list doesn't filter as input is typed into the filter fields
OPENIDM-4020: "My group's tasks" not showing tasks from different processes
OPENIDM-3974: Unable to update/add a property in response.content object in Javascript script (launched from router onResponse hook)
OPENIDM-3972: Sync Failure handling calls to onSyncFailure.js-deadLetterQueue do not work
OPENIDM-3910: Inconsistent named queries across various DB config scripts
OPENIDM-3745: UI doesn't display msg related to failedPolicyRequirements when attempting to add new process
OPENIDM-3667: openidm/managed/user/openidm-admin 404 (Not Found) when selecting process instance created by openidm-admin
OPENIDM-3515: Query Expression Builder within the Admin UI generates invalid ! filter
OPENIDM-3450: CLI.SH configimport does not work with the --replaceAll option
OPENIDM-3366: Password sync loop when LDAP groups change
OPENIDM-3327: Regex pattern for email validation too strict
OPENIDM-3097: Patch for replace of array value /path/to/i removes entry i+1
OPENIDM-3000: Variables passed to groovy scripts using globals map have extra quotes around values
3.2. Limitations
OpenIDM 4.5 has the following known limitations:
The automated update process is not currently supported on Windows platforms.
When you add or edit a connector through the Admin UI, the list of required
Base Connector Details
is not necessarily accurate for your deployment. Some of these details might be required for specific deployment scenarios only. If you need a connector configuration where not all the Base Connector Details are required, you must create your connector configuration file over REST (see "Creating Default Connector Configurations" in the Integrator's Guide) or edit the connector configuration file (conf/provisioner.openicf-connector-type.json
) directly.For OracleDB repositories, queries that use the
queryFilter
syntax do not work on CLOB columns in explicit tables.A conditional GET request, with the
If-Match
request header, is not currently supported.There are some issues with CREATE requests with client-assigned IDs on system objects. Currently, not all connectors behave the same in this regard. For more information, see the following issues:
OpenIDM provides an embedded workflow and business process engine based on Activiti and the Business Process Model and Notation (BPMN) 2.0 standard. As an embedded system, local integration is supported. Remote integration is not currently supported.
For updates and patches from OpenIDM 4.0.0, you can use the CLI, and any supported browser listed in "Before You Install OpenIDM Software", except Internet Explorer 9.
If you're using the
OPENAM_SESSION
module to help OpenIDM work with OpenAM software, modify theJWT_SESSION
module to limit token lifetime to 5 seconds. For more information, see OPENAM_SESSION Module in the Integrator's Guide and the "Supported Session Module" in the Integrator's Guide.
3.3. Known Issues
The following issues are known to exist in OpenIDM 4.5.1:
OPENIDM-7644: Admin UI should create schedule config instead of direct scheduler entries
OPENIDM-6514: JDBC repo errors on startup when using mysql
OPENIDM-6509: JMX enable prevents GC of discarded BoneCPDataSource objects
OPENIDM-6481: OpenIDM creates redundant BoneCPDataSource
OPENIDM-6212: After update there should be only a single .new-timestamp per file
OPENIDM-6188: Full PATH to PROJECT_HOME is being misinterpreted
OPENIDM-6170: Update process creates erroneous new keystore and truststore files that should be removed
Workaround - After the update process, delete any files named
keystore.jceks.new-timestamp
andtruststore.new-timestamp
from yoursecurity
directory.OPENIDM-6135: DatabaseTableConnector does not reconnect
OPENIDM-6117: The execute.clustered.schedules=false setting does not work as described
OPENIDM-6106: Paging with scriptedcrest connector is not working
OPENIDM-6083: Sample 2d -- Admin UI rendering of group recon is illegible in the UI
OPENIDM-6072: Multiple answers to the same security question are possible
OPENIDM-6071: OpenIDM changes port from 389 to 1389 when configuring LDAP connector through the UI
Workaround - Change the LDAP port in the UI manually to the port you had originally set.
OPENIDM-6068: Target reconciliation does not finish for large datasets
OPENIDM-6067: When a mapping is deleted through the Admin UI, links associated with the mapping are not deleted
OPENIDM-6043: ScriptedREST and ScriptedCREST samples do not work with OpenDJ 3.5.0
OPENIDM-6031: Some workflow use cases show the wrong property name (_body instead of body)
OPENIDM-6029: Recon throughput from CSV to Managed user doesn't scale
OPENIDM-6025: "Filter Actions" message for "authentication" and "access" event is not correct
OPENIDM-6015: Clicking the '-' button next to 'The Value for' Reconciliation Query Filters in the Admin UI throws JavaScript errors in the console
OPENIDM-5986: cli.sh configimport returns success when errors occur
OPENIDM-5963: Connector schema data preview can fail depending on the order of automatically generated schema fields
OPENIDM-5962: Managed User Edit page displays changes pending warning
OPENIDM-5933: NPE caught by OpenICFProvisionerService during IDM startup due to Async call usage in Activate()
OPENIDM-5930: CSV Audit Event Handler - Saving in the UI leads to error messages
OPENIDM-5923: ScriptedSSH sample - group members create/update is not working
OPENIDM-5914: Role is still showing as assigned in effectiveRoles attribute on query-all output if role is unassigned via the admin UI
Workaround - When you delete a role grant, delete it from the managed user object, rather than the managed role object. For example, delete
managed/user/user-id/roles/grant-id
rather thanmanaged/role/role-id/members/grant-id
. If you cannot delete the role from the managed user object, addexecuteOnRetrieve=true
to your user query to retrieve the correct role state, for example:http://localhost:8080/openidm/managed/user?_queryId=query-all&executeOnRetrieve=true
OPENIDM-5911: Identity Relationship widget: legendCheckbox does not appear in IE
OPENIDM-5909: ScriptedSSH incorrect sample provisioner group members nativeName
OPENIDM-5907: ScriptedSSH search script unsupported filter cause timeout exception
OPENIDM-5905: Removing a workflow definition file from the filesystem does not delete it in the config
OPENIDM-5900: ScriptedSSH ErrorCodes.groovy is not loaded
OPENIDM-5896: Role grant_type requires unique index
OPENIDM-5893: Recon on AD LDAPS mapping (tap association) gives 500 Server Error
OPENIDM-5892: Group Assignments: Admin UI errors with AD LDAPS Connector
OPENIDM-5887: SyncResult always specifies default situation action and not the actual action determined during synchronization
OPENIDM-5878: Newly added Object type doesn't appear in mappings
OPENIDM-5858: Sync fails to update password in AD
OPENIDM-5851: Backgrid: Clicking on filter reset button sorts the column
OPENIDM-5850: groupRoleMapping in passthrough authentication not working with LDAP
OPENIDM-5792: UI Problems with Bidirectional Reference Attributes
OPENIDM-5791: JNDI Config for JMS Audit Handler not rendered correctly.
OPENIDM-5754: onUpdate trigger on managed user called twice with a patch operation
OPENIDM-5739: authenticationId used instead of authorization.id in UI (tasks)
OPENIDM-5736: Can not remove an element of a relationship map by value
OPENIDM-5731: In Usecase 2 date validation in the Admin UI does not reject an invalid date
OPENIDM-5727: Error after removing notification in Use Case 3
OPENIDM-5726: Workflow usecase 2 onboarding email sent twice
OPENIDM-5724: unAssignment event not executing inline script
OPENIDM-5721: Admin UI does not respond after setting connector nativeType to array
OPENIDM-5705: Removal of multiple elements of an array in a single patch set produces incorrect results
OPENIDM-5698: AD User Filter does not persist
OPENIDM-5697: Cluster state failure yields permanent persistent schedule failure in cluster when a cluster node is shutdown
OPENIDM-5685: Error when viewing data (account) of a connector with incorrect configuration properties
OPENIDM-5654: Audit event queryHandler returns results even if event handler is disabled
OPENIDM-5579: Unable to download Update Report using Safari
OPENIDM-5568: Aggressive caching issues in OpenIDM cause inconsistent UI behavior
OPENIDM-5554: Managed object revision increases after reconcilitation even if no change occured
OPENIDM-5509: Updating a dynamically assigned role will not update users assigned with the role.
OPENIDM-5504: Unable to use cli.sh for administration over a secure port
OPENIDM-5486: Via REST API it is possible to create an assignment with an invalid mappingName
OPENIDM-5482: Tasks in UI cause random server errors when updating/assigning tasks
OPENIDM-5472: OpenAM fullStack sample: session timeout option not available
OPENIDM-5468: BoneCP: JDBC repo startup should retry until DB comes up
OPENIDM-5465: Performance Issue updating conditional role memberships
OPENIDM-5461: Update/Create user may fail with 500 error when scriptedrest2dj sample was used.
OPENIDM-5450: When Buffering is not enabled, related options should not be available
OPENIDM-5442: CLI.SH configexport creates unneccessary ui-iconlist.json backup file
OPENIDM-5416: PUT REST call to AD with LDAP adapter is interpreted as create instead of update
OPENIDM-5412: Felix console displays Error removing job reconcile_systemXmlAccounts_managedUser when performing update
OPENIDM-5399: Spaces in CSV field names result in an exception when creating a CSV connector
OPENIDM-5345: Connector names need to be validated as alpha-numeric
OPENIDM-5339: goto=undefined in redirect URL in OpenIDM/OpenAM integrated setup with IE9/10
OPENIDM-5315: If-Match default header not applied for Update - AzureAD PowerShell
OPENIDM-5303: Cannot edit a canceled reconciliation mapping
OPENIDM-5297: Property substitution is lost when saving from the UI
OPENIDM-5263: Mapping Details page doesn't refresh if Internal Server Error occurs during Reconciliation
OPENIDM-5235: Sample configuration for explicit mapping for managed user table is missing description
OPENIDM-5185: Failure to Load Configuration for Sync
OPENIDM-5174: Random issue while creating new configuration via REST
OPENIDM-5166: Changing CSV audit event handler formatting fields causes an exception
OPENIDM-5138: OpenIDM timeout does not redirect to OpenAM login screen
OPENIDM-5133: openidm-admin user login looping with exclusive OpenAM SSO enabled
OPENIDM-5107: PUT with no "If-Match" header fails to update an object with the Google Apps Connector
OPENIDM-5096: Configuring OpenAM session authentication via GUI causes OpenIDM hang
OPENIDM-5091: CORS servlet filter should read https port from boot.properties
OPENIDM-5086: Illegal State Exception REST with invalid credentials and Accept header
OPENIDM-5038: Creating connector with underscore in its name fails with exception
OPENIDM-5033: No validation is done when using the Admin UI to configure an LDAP connector
OPENIDM-4918: Attempt by openidm-admin to add Security Questions leads to Problem During Profile Update error
OPENIDM-4829: Admin UI, Audit, CSV Handler configuration, fails without proper signatureInterval entry
OPENIDM-4799: with OrientDB repo, reading managed user with encoded quote in ID is failing with server error on policy
OPENIDM-4797: Connector info provider needs to be updated to connect to .NET server
OPENIDM-4792: When a sync mapping references source or target routes other than "managed" or "system", the Mapping UI won't render
OPENIDM-4692: ALL_GONE situation for deleted entries leads to NPE in JS
OPENIDM-4521: Custom attributes submitted in request to store in jdbc repo are not stored but the request returns them.
OPENIDM-4462: Delete request with HTTP "If-Match *" header does not work on repo endpoints
OPENIDM-4227: Use value of managed object prior to save for sync events to use hashed values
OPENIDM-4149: availableConnectors are not updated after remote ICF shut down
OPENIDM-4127: Endpoint system/os returns cpu usage above available
OPENIDM-3966: If you replace an attribute with null via patch, the attribute is incorrectly removed from the object
OPENIDM-3857: Cannot pass along custom context when making router requests from script
OPENIDM-3199: When a mailtask can't be completed in an Activiti workflow, an exception is thrown
OPENIDM-3197: '%' character in object id of openidm.read calls has to be encoded
OPENIDM-3187: Custom authentication headers cannot handle Unicode characters
OPENIDM-3149: Custom Endpoint Example: object request.patchOperations is wrong for Groovy scripts
OPENIDM-2348: Implement external webapp for the remote Activiti server
OPENIDM-2028: The .NET Connector Server Exception displays an incorrect connector error
OPENIDM-2016: Sync on unsupported object class with remote java connector returns 500 instead of 400
OPENIDM-1898: Representation of request-object differs between code and json-representation
OPENIDM-1823: getScriptBindings function of ServiceScript (ScriptRegistryImpl.java) slows down extremely when accessed in parallel from multiple threads
OPENIDM-1664: Memory usage of AD connector continue to increase.
OPENIDM-1488: XDate locales could not be initialized correctly
OPENIDM-1445: Provisioner service does not decrypt encrypted attributes before passing them to OpenICF framework
OPENIDM-1430: OpenIDM needs a restart after importing a new cert via REST API
OPENIDM-1269: some issues with Case Sensitivity options for Sync
OPENIDM-1165: EXCEPTION action when doing liveSync stops the synctoken processing
OPENIDM-1074: Disabling automatic polling for changes of config file not possible on new install
OPENIDM-848: Conflicting behavior might be observed between the default fields set by the onCreate script and policy enforcement
OPENIDM-470: OpenIDM cannot rename objects - if the identifier of the object changes, the associated link breaks
Chapter 4. OpenIDM Compatibility
This chapter covers major and minor changes to existing functionality, as well as deprecated and removed functionality in this release of OpenIDM. You must read this chapter before commencing a migration from a previous OpenIDM release.
4.1. Important Changes to Existing Functionality
Take the following changes into account when upgrading to OpenIDM 4.5. These changes will have an impact on existing deployments. Adjust existing scripts and clients accordingly.
- Change to the request context stored for workflows
OpenIDM stores the request context in a workflow instance variable. The context is serialised into a JSON string and re-parsed when it is accessed. As of OpenIDM 4.5, the
RouterContext
is no longer stored. Only theSecurityContext
andRootContext
are stored.As a result, workflows that were initiated prior to an upgrade will not complete successfully after an upgrade. If possible, stop all workflows that are in progress before you update the server, and reinitiate them after the update has completed. If you are unable to stop the workflows, you will need to change the Activiti variable table (
ACT_RU_VARIABLE
) to remove theopenidmcontext
variable before restarting.- Changes to indexing for JDBC repositories
To reduce overall key size and improve indexing performance across the supported JDBC repositories, the size of the
linktype
andlinkqualifier
columns is now restricted to 50 characters.keyAlias
propertyThe
keyAlias
property is no longer hard-coded in theauthentication.json
file. It now uses theopenidm.https.keystore.cert.alias
property from theboot.properties
file for your project.- Changes to the Roles Implementation
The roles implementation has changed in OpenIDM 4.5 to include support for dynamic role grants, and temporal constraints on roles. The new roles implementation is described in "Managing Users, Groups, Roles and Relationships" in the Integrator's Guide.
- Changes to policy validation for managed objects
Managed object property types are now subject to policy validation by default. For more information, see "Validation of Managed Object Data Types" in the Integrator's Guide.
4.1.1. Changes in Database Schema: OpenIDM 4 to OpenIDM 4.5
The changes in database schema between OpenIDM 4 and OpenIDM 4.5 are
relatively straightforward. To update your databases for
OpenIDM 4.5, apply scripts from the following directory:
/path/to/openidm/db/reposcripts/update
,
where repo represents the repository.
OpenIDM 4.5 includes the following update scripts for all supported repositories:
v1_increase_changedfields_size.sql
: In theauditconfig
andauditactivity
tables, this script equalizes the size of thechangedfields
column with associated*before*
and*after*
columns.v2_shorten_link_columns.sql
: In the links table, this script shortens the maximum length of thelinktype
and thelinkqualifier
columns from 255 to 50 characters.
OpenIDM 4.5 includes two additional update scripts for PostgreSQL:
v3_add_indices_for_roles.sql
: For temporal constraints, this script adds indexes in themanagedobjects
table.v4_modify_indices_for_relationships.sql
: This script makes changes in two areas:In the
relationships
table, this script consolidatesCREATE INDEX
statements for*Id
and*PropertyName
.In the
managedobjects
table, this script removes theobjecttypes
index.
When you run these scripts, run them in numerical order. In other words,
run the script that starts with v1
first, followed by
v2
. If you're using PostgreSQL, then run the script
that starts with v3
followed by v4
.
4.2. Deprecated Functionality
The following functionality has been deprecated in OpenIDM 4.5 and is likely to be removed in a future release.
When configuring connectors, (see "Configuring Connectors" in the Integrator's Guide), you can set up
nativeType
property level extensions. TheJAVA_TYPE_DATE
extension is deprecated.Support for a POST request with
?_action=patch
is deprecated, when patching a specific resource. Support for a POST request with?_action=patch
is retained, when patching by query on a collection.Clients that do not support the regular PATCH verb should use the
X-HTTP-Method-Override
header instead.For example, the following POST request uses the
X-HTTP-Method-Override
header to patch user jdoe's entry:$ curl \ --cacert self-signed.crt \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request POST \ --header "X-HTTP-Method-Override: PATCH" \ --data '[ { "operation":"replace", "field":"/description", "value":"The new description for Jdoe" } ]' \ "https://localhost:8443/openidm/managed/user/jdoe"
The XML file connector is deprecated and support for its use in OpenIDM will be removed in a future release. This connector is really useful only in a demonstration context and should not be used in the general provisioning of XML data stores. In real deployments, if you need to connect to a custom XML data file, you should create your own scripted connector by using the Groovy connector toolkit.
No additional functionality is deprecated at this time.
4.3. Removed Functionality
- Support for RESTful
HEAD
The ForgeRock Common REST API does not support the
HEAD
method. References to theHEAD
method have been removed from the OpenIDM documentation.- Support for MySQL 5.1 as a Repository
MySQL 5.1 reached end of life in December 2013. As of OpenIDM 4.5.1-20, MySQL 5.1 is no longer a supported repository.
4.4. Functionality That Will Change in the Future
The Active Directory (AD) .NET Connector will be deprecated in a future OpenICF release, and, ultimately, support for its use with OpenIDM will be discontinued.
For simple Active Directory (and Active Directory LDS) deployments, the Generic LDAP Connector works better than the Active Directory connector, in most circumstances. For more information, see "Generic LDAP Connector" in the Connectors Guide.
For more complex Active Directory deployments, use the PowerShell Connector Toolkit, as described in "PowerShell Connector Toolkit" in the Connectors Guide.
Note that deprecating the AD Connector has no impact on the PowerShell connector, or on the .NET Connector Server.
Chapter 5. Documentation Updates
The following table tracks changes to the documentation following the release of OpenIDM 4.5.0:
Date | Description |
---|---|
2021-03-11 |
|
2019-09-10 |
Revised the logging documentation to include security advice on logging
levels. See "Specifying the Logging Level" in the Integrator's Guide
and "Updating |
2019-08-19 |
Added information on restricting the maximum payload size in HTTP requests ("Restrict the HTTP Payload Size" in the Integrator's Guide). |
2017-11-10 |
Added a workaround for the problem related to Quartz schedules and daylight savings time ("Schedules and Daylight Savings Time" in the Integrator's Guide). |
2017-10-10 |
Refreshed formatting. |
2017-05-12 |
Release of OpenIDM 4.5.1. Updated the release notes. |
2017-04-20 |
Added a note to "Types of Synchronization" in the Integrator's Guide to indicate the required permissions for the LDAP user when configuring liveSync with OpenDJ. |
2016-09-01 |
Reworked "Updating OpenIDM" in the Installation Guide to reflect a wider variety of deployment scenarios. Reworked "Configuring IWA Authentication" in the Integrator's Guide to clarify how this authentication module is configured. Clarified the documentation on "Mapping a Single Source Object to Multiple Target Objects" in the Integrator's Guide. Added OPENIDM-6481 and OPENDIM-6509 to "Known Issues". |
Chapter 6. How to Report Problems & Provide Feedback
If you have questions regarding OpenIDM software that are not answered by the documentation, you can ask questions on the forum at https://forgerock.org/forum/fr-projects/openidm/.
If you have found issues or reproducible bugs within OpenIDM 4.5, report them in https://bugster.forgerock.org.
When requesting help with a problem, please include the following information:
Description of the problem, including when the problem occurs and its impact on your operation
Machine type, operating system version, Java version, and OpenIDM release version, including any patches or other software that might be affecting the problem
Steps to reproduce the problem
Any relevant access and error logs, stack traces, or core dumps
Chapter 7. Support
You can purchase OpenIDM support subscriptions and training courses from ForgeRock and from consulting partners around the world and in your area. To contact ForgeRock, send mail to info@forgerock.com. To find a partner in your area, use the ForgeRock website.