Netiq Identity Manager: Driver For Rest Implementation Guide
Netiq Identity Manager: Driver For Rest Implementation Guide
2
Contents
Contents 3
Upgrading the Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrading the
Installed
Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Applying the Driver Patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6 Securing Communication 55
Configuring the Publisher Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Configuring the Subscriber Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
A Driver Properties 83
Driver Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Driver Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Startup Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Driver Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
ECMAScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Global Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Global Configuration Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Password Synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Permission Collection and Reconciliation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4 Contents
C Trace Levels 99
Contents 5
6
About NetIQ Corporation
We are a global, enterprise software company, with a focus on the three persistent challenges in
your environment: Change, complexity and risk—and how we can help you control them.
Our Viewpoint
Adapting to change and managing complexity and risk are nothing new
In fact, of all the challenges you face, these are perhaps the most prominent variables that deny
you the control you need to securely measure, monitor, and manage your physical, virtual, and
cloud computing environments.
Enabling critical business services, better and faster
We believe that providing as much control as possible to IT organizations is the only way to
enable timelier and cost effective delivery of services. Persistent pressures like change and
complexity will only continue to increase as organizations continue to change and the
technologies needed to manage them become inherently more complex.
Our Philosophy
Selling intelligent solutions, not just software
In order to provide reliable control, we first make sure we understand the real-world scenarios
in which IT organizations like yours operate—day in and day out. That's the only way we can
develop practical, intelligent IT solutions that successfully yield proven, measurable results. And
that's so much more rewarding than simply selling software.
Driving your success is our passion
We place your success at the heart of how we do business. From product inception to
deployment, we understand that you need IT solutions that work well and integrate seamlessly
with your existing investments; you need ongoing support and training post-deployment; and
you need someone that is truly easy to work with—for a change. Ultimately, when you succeed,
we all succeed.
Our Solutions
Identity & Access Governance
Access Management
Security Management
Systems & Application Management
Workload Management
Service Management
Worldwide: www.netiq.com/about_netiq/officelocations.asp
Email: info@netiq.com
Worldwide: www.netiq.com/support/contactinfo.asp
Email: support@netiq.com
This guide explains how to install and configure the Identity Manager Driver for REST to establish
communication between the Identity Manager and the connected application. The guide includes
the following information:
Chapter 1, “Understanding the REST Driver,” on page 13
Chapter 2, “Installing the Driver Files,” on page 29
Chapter 3, “Creating A New Driver Object,” on page 31
Chapter 4, “Upgrading an Existing Driver,” on page 49
Chapter 5, “Customizing the Driver for RESTful Services,” on page 53
Chapter 6, “Securing Communication,” on page 55
Chapter 7, “Managing the Driver,” on page 59
Chapter 8, “Use Case Based Deployment of REST Driver with Connected Applications,” on
page 61
Chapter 9, “Troubleshooting the Driver,” on page 81
Appendix A, “Driver Properties,” on page 83
Appendix B, “Using Java Extensions,” on page 95
Appendix C, “Trace Levels,” on page 99
Appendix D, “Supported JSON Format,” on page 101
Audience
This guide is intended for administrators implementing Identity Manager, application server
developers, Web services administrators, and consultants. You should also have an understanding of
DSML/SPML, REST, JSON, and HTML.
Feedback
We want to hear your comments and suggestions about this manual and the other documentation
included with this product. Please use the User Comments feature at the bottom of each page of the
online documentation, or go to www.novell.com/documentation/feedback.html and enter your
comments there.
Documentation Updates
For more information about the library for Identity Manager, see the following resources:
Identity Manager documentation website (https://www.netiq.com/documentation/identity-
manager-48/)
Identity Manager drivers documentation website (https://www.netiq.com/documentation/
identity-manager-48-drivers/)
The Identity Manager Driver for REST Implementation Guide explains how to install and configure
the Identity Manager Driver for REST.
Intended Audience
This book provides information for administrators implementing Identity Manager, application
server developers, Web services administrators, and consultants, who also have an understanding of
DSML/SPML, REST, JSON and HTML.
REST (Representational State Transfer) is an HTTP-based protocol used for Internet communication.
REST is the widely emerging standard for applications across World Wide Web, Software as a Service
(SaaS) applications, distributed systems, cloud-based services, web services and other business
critical applications. A RESTful service is implemented using the HTTP protocol and the principles of
REST.
The Identity Manager driver for REST enables identity provisioning and data synchronization
between an Identity Vault and any RESTful service.
The driver is not targeted to a specific Web service. The driver is a generic shim that handles the
HTTP transport of data between an Identity Vault and a RESTful service. For this driver, a RESTful
service is defined as an application that uses HTTP as the transport protocol. The REST driver
provides interfaces to transform events and data between Identity Vault and connected system. The
driver also exposes REST endpoints that enables Identity Manager to function as a RESTful service.
The driver provides the following key features:
Supports Anonymous, Basic, and OAuth2.0 authentication
Supports XML/JSON based requests between the Identity Manager and any RESTful services
Provides interfaces to extend driver functionalities
Exposes the REST endpoints that enables CRUD operation to be done in RESTful way on Identity
Vault
Supports password synchronization
Supports Permission Collection and Reconciliation Service (PCRS)
This section provides the following information for the REST driver:
“Key Terms” on page 13
“Driver Concepts” on page 15
“Support for Standard Driver Features” on page 21
Key Terms
“Identity Manager” on page 14
“Connected System” on page 14
“Identity Vault” on page 14
“Identity Manager Engine” on page 14
“Driver Shim” on page 14
“Driver Packages” on page 14
“Remote Loader” on page 15
Connected System
A connected system is any system that can share data with Identity Manager through a driver. Any
RESTful service is a connected system for this driver.
Identity Vault
The Identity Vault is a persistent database powered by eDirectory and used by Identity Manager to
hold data for synchronization with a connected system. The vault can be viewed narrowly as a
private data store for Identity Manager or more broadly as a metadirectory that holds enterprise-
wide data. Data in the vault is available to any protocol supported by eDirectory, including the
NetWare Core Protocol (NCP), which is the traditional protocol used by iManager, and LDAP.
Because the vault is powered by eDirectory, Identity Manager can be easily integrated into your
corporate directory infrastructure by using your existing directory tree as the vault.
Driver Shim
A driver shim is the component of a driver that converts the XML-based Identity Manager command
and event language (XDS) to the protocols and API calls needed to interact with a connected system.
The shim is called to execute commands on the connected system after the Output Transformation
runs. Commands are usually generated on the Subscriber channel but can be generated by
command write-back on the Publisher channel.
Driver Packages
The REST driver packages are available on the Package Update site. When you create a driver with
packages in Designer, Designer creates a set of policies and rules suitable for synchronizing with the
REST driver.
The REST driver packages are:
NETQRESTBASE: A mandatory package for the REST driver containing basic driver settings with
handlers, to establish connection with the connected application.
NETQRESTDCFG: An optional package with some basic default configuration, can be modified as
required to connect with the connected application accordingly.
Remote Loader
A Remote Loader enables a driver shim to execute outside of the Identity Manager engine (perhaps
remotely on a different machine). The Remote Loader is a service that executes the driver shim and
passes information between the shim and the Identity Manager engine.
For the REST driver, install the driver shim on the server where the Remote Loader is running. You
can choose to use SSL to encrypt the connection between the Identity Manager engine and the
Remote Loader. For more information, see “Configuring the Drivers to Run in Remote Mode with
SSL” in the NetIQ Identity Manager Setup Guide for Linux or “Configuring the Remote Loader and
Drivers” in the NetIQ Identity Manager Setup Guide for Windows.
Driver Concepts
This section contains the following information:
“Introduction” on page 15
“How the Driver Works” on page 18
Introduction
The following concepts are associated with the REST driver:
“REST” on page 15
“JSON” on page 16
“Resource” on page 16
“Resource Handler” on page 16
“URL Placeholder” on page 17
“XML” on page 17
“HTTP” on page 18
“HTTPS” on page 18
REST
REST is an HTTP-based protocol for exchanging messages over the network. Since REST is built on
HTTP protocol, it supports POST, PUT, GET, PATCH, DELETE methods to communicate with the
application logic.
Resource
A resource is a user, group, or an object that the driver tries to synchronize with the Subscriber and
Publisher channels. To be more precise, a REST resource in the driver is a combination of the REST
application schema name and the Resource handler. For example, in the URL http://
ipaddress:port/User, User is an example of a REST resource that can be configured to use
Default as the Resource Handler. For more information, see “Resources” on page 89. To configure a
REST resource, Identity Manager provides Driver Configuration options.
Resource Handler
A Resource handler is the mapping of an Identity Manager operation with the REST method. To
configure a Resource handler, Identity Manager provides the Driver Configuration options. For more
information, see “Resources” on page 89.
A REST call invokes the REST method mapped with an Identity Manager operation. The REST driver
supports two Resource handler modes. They are:
Default - Uses the default HTTP methods for configuring handlers and for managing operations
on respective resources. In this mode, the REST driver chooses the best possible mapping for
the corresponding Identity Manager operation. For example, an Identity Manager ADD
operation corresponds to a POST method and a MODIFY operation corresponds to PUT method
of the REST application.
The REST driver generates the complete URL of a REST method by combining the Base URL for
REST Resources and the Schema Name. For example, https:url.example.com/users, where
https:url.example.com is the base URL and users is the schema name. Table 1-1 lists the Identity
Manager operations, their corresponding default REST methods and the URLs.
NOTE: In the GET method, the driver replaces the <filter> placeholder by ?search-
attr=<searchAttrName1> eq <value1>' and <searchAttrName2> eq
'<value2'>&read-attr='<readAttr1>’ and ‘<readAttr2>’ filter value.
Custom - Uses the Resource Handler parameters in the Driver Configuration page to customize
the driver to suite your deployment scenario. In this mode, the driver generates the complete
URL of the REST method by combining the Base URL for REST Resources and the user specific
URL in the URL extension. For example, https:url.example.com/users
URL Placeholder
A URL placeholder is a variable defined in the URL extension within angular brackets. The attribute-
value pair in the URL token element of the driver-operation-data replaces this placeholder
value during the data transfer. For example, consider a sample URL http://ipaddress:port/
SchemaName/<association><api-version>. During the driver operation, the <api-
version> URL placeholder is replaced by the value in the element <url-token api-
version="1.0"/>.
XML
XML (Extensible Markup Language) is a generic subset of Standard Generalized Markup Language
(SGML) that allows for exchange of structured data on the Internet.
HTTPS
HTTPS is the HTTP protocol over Secure Socket Layer (SSL) as a sub-layer under the regular HTTP
application layering. HTTPS encrypts and decrypts user page requests as well as the pages that are
returned by the Web server.
Subscriber Channel
XML Transport
Identity Manager Policy
driver-operation-data
XDS HTTP Response
Application
XDS converts HTTP Requests
driver-operation-data JSON/ Publisher
json/xml to xds XML Transport
XDS HTTP Response
Publisher Channel
The Identity Manager engine uses XDS, a specialized form of XML, to represent events in the Identity
Vault. Identity Manager passes the XDS to the driver policy, which consists of basic policies and
DirXML Script.
The driver uses a specialized form of XDS called <driver-operation-data>. The <driver-
operation-data> element encapsulates the metadata and payload for a REST request.
When an event occurs in the Identity Vault, Identity Manager creates an XDS command to represent
that event. Identity Manager passes the XDS command to the driver policy. The driver policy
transforms that XDS command with an output transformation policy.
Below is a sample request to add new users with the same common name using the <driver-
operation-data> element:
NOTE: The driver retains the <driver-operation-data> between any REST operations. The
connected application appends its response to the same <driver-operation-data> and returns
it back to the driver shim. A single <driver-operation-data> element is capable of
accommodating multiple requests that belong to the same class.
Response Headers
When a REST call is made to a REST service, a response is returned with tokens appended to the
header tag elements. These type of responses with tokens appended in the header tag are called
response headers.
The response-header tag in a driver trace is shown in the following example:
Local Platforms
A local installation is an installation of the driver on the Identity Manager server. The REST driver can
be installed on the operating systems supported for the Identity Manager server.
For information about the operating systems supported for the Identity Manager server, see the
NetIQ Identity Manager Technical Information website (https://www.netiq.com/products/identity-
manager/advanced/technical-information/).
Remote Platforms
The REST driver can use the Remote Loader service to run on a server other than the Identity
Manager server. The REST driver can be installed on the operating systems supported for the Remote
Loader.
For information about the supported operating systems, see the NetIQ Identity Manager Technical
Information website (https://www.netiq.com/products/identity-manager/advanced/technical-
information/).
IMPORTANT: For any operation performed on the connected application using OAuth 2.0, an
access token is sent for authorization of the user from the connected application. The access
token expires post the session idle time set for the connected application, or in case of a system
restart. The session idle time is configurable as per requirement. The connected application
displays Unauthozied Access error or an Invalid Session error for any request initiated with an
expired access token.The presence of a refresh token helps to re-establish the failed session
internally, by generating a new access token without the user having to log in again.
The resource owner grants authorization to a client application in cooperation with the
authorization server associated with the resource server. The resource owner grants
authorization to a client application using a in cooperation with the authorization server
associated with the resource server. When requesting for authorization, the client receives an
authorization grant from the resource owner. An authorization grant is an authorization
credential representing the resource owner authorization in the form of a JSON Web Token
(JWT). The two authorization grants supported by the REST driver are resource owner password
credentials and client credentials.
Client Credentials - Uses the client ID and secret received while registering with the identity
provider.
Resource Owner Password - Shares the resource owner credentials with the client
application. Uses the user name and password of the resource owner as authorization
grant to obtain an access token. For example, you can use your Twitter user name and
password to log in to a client application.
NOTE: Ensure that you set the appropriate query options while configuring the authorization
query in the driver parameters. For more information, see “Subscriber Settings” on page 85.
NOTE: The authentication header and content type are mandatory for REST methods.
Table 1-2 lists an example of POST REST method that the driver supports for a User class:
METHOD: POST
Payload {"association":”User2","Postal
Code":["324324324"],"Surname":["User2"],"CN":["Us
er2"]}
Content-Type application/json
Table 1-3 lists an example of DELETE REST method that the driver supports:
METHOD: DELETE
Content-Type application/json
Response 200 OK
Table 1-4 lists an example of PUT REST method that the driver supports:
METHOD: PUT
Content-Type application/json
Payload {"Title":[{"add":["Manager"]}]}
Table 1-5 lists an example of GET REST method that the driver supports:
METHOD: GET
Content-Type application/json
Synchronizing Information
Unlike most other drivers, the REST driver synchronizes protocols instead of objects. The driver
includes the following features:
HTTP transport of data between the Identity Vault and a Web service
SSL connections using the HTTPS protocol
Subscriber HTTP and HTTPS proxy servers
Potential to act as an HTTP or HTTPS listener for incoming connections on the Publisher channel
Potential extensibility through customized Java code
For more information, see Appendix B, “Using Java Extensions,” on page 95.
NOTE: You should enable entitlements for the drivers only if you plan to use the User Application or
Role-Based Entitlements with the drivers.
You can install the REST driver on the Identity Manager server or on a remote server using the
Remote Loader.
To install the driver, you first need to install the driver files, install the driver packages, and then
modify the driver configuration to suit your environment. This section describes how to install the
driver files. For information on installing and configuring driver packages, see Chapter 3, “Creating A
New Driver Object,” on page 31.
“Prerequisites for Driver Installation” on page 29
“Installing the REST Driver Files” on page 29
This section explains the common procedure to install the driver files:
1 Download and unzip the contents of the <IDM_REST_1100.zip> file to a temporary location
on your computer.
2 Install the driver files (for IDM 4.7.4 and above) based on your user role.
To install as a:
root user, see “Installing Driver Files as a Root User” on page 30.
non-root user, see “Installing Driver Files as a Non-Root User” on page 30.
3 (Conditional) If the driver is running locally, start the Identity Manager and the driver instance.
4 (Conditional) If the driver is running with a Remote Loader instance, start the Remote Loader
instance and the driver instance.
You can also install the REST driver files on the Identity Manager server or a remote server that
supports Remote Loader configuration. For more information about installing Remote Loader, see
“Considerations for Installing Identity Manager Engine Components and Remote Loader” in the
NetIQ Identity Manager Setup Guide for Linux or “Planning to Install the Remote Loader” in the
NetIQ Identity Manager Setup Guide for Windows.
After the REST driver files are installed on the server where you want to run the driver (see
Chapter 2, “Installing the Driver Files,” on page 29), you can create the driver in Designer. You do so
by installing the driver packages and then modifying the driver configuration to suit your
environment.
The following sections provide instructions to create the driver:
“Creating the Driver Object in Designer” on page 31
“Activating the Driver” on page 46
“Adding Packages to an Existing Driver” on page 46
NOTE: NetIQ recommends that you use the new package management features provided in
Designer to create the REST driver. You should not create the driver objects by using the new Identity
Manager 4.0 and later or configuration files through iManager. This method of creating driver
objects is no longer supported.
By default, only the base packages are displayed. Deselect Show Base Packages Only to display
all packages.
Server DN
Identity Manager Version
Identity Manager Edition
The Identity Vault Credentials window appears.
4 In Identity Vault Credentials window, enter values as shown in the following table.
Username The name of the user, for example, Admin, if the user is an administrator.
5 Select Save Password, if you want to save your password for easy logins in the future.
6 Click OK.
The Identity Vault and the Driver Set appears in the Modeler window as shown in the following
image.
7 In the right pane, drag and drop the REST Server from the Tools tab to the Modeler.
8 In the Driver Configuration Wizard, select REST Base (Contains the base functionality for a
driver. You must install a driver base configuration package first).
9 Click Next.
10 Select the optional features to install for the REST driver, the options are:
REST Default Package
REST JSON Package: This package contains the default JSON configurations
11 Click Next.
The package dependencies window appears.
13 On the Driver Information page, specify a name for the driver, then click Next.
14 On the Install REST Base page, fill in the following fields for the Subscriber options, and click
Next.
NOTE: Fields marked with ** indicate common fields that appear for all Authentication
Methods.
Field Description
Access Token URL Specify the URL of the server used for requesting token access.
Authorization Query Options grant_type: It is the method the application procures an access
token.
Enter the value as password.
client_id: The client_id is a public identifier for the
connected application.
Enter the <client identification value>.
For example:
<3MVG97quAmFZJfVwk3ylU.8elhRYBqG9h25m3TWewozjKn
FIY0HrhOEJl7LMET9HHocaHnTB1k04kophr1CgW>
issuer: The authorization server's URL that uses the https
protocol.
Secret Authorization Query These parameters are set to configure a refresh token. Though not
Options mandatory, if configured the set refresh token value is not overridden
with the new value when the access token expires. This may cause login
NOTE: The * indicates mandatory issues until the new refresh token is added.
fields and ^ indicates non
mandatory fields. refresh_token^: Refresh Token is a web token to acquire new
access tokens when current access tokens expire or become
invalid. The authorization server of the connected system provides
refresh tokens to the Identity Manager to obtain new access token,
without user interaction in the backend.
client_secret^: It is a secret pass phrase associated with the
refresh token.
Generate JWT Token: The JSON Web token is an access request token in the JSON
Web Token (JWT) format. It is an encrypted data string consisting of a header,
payload, and a signature, and is used to transfer authorization data in client-
server applications to authenticate the resource identity.
If you select Generate JWT Token, the following fields appear:
Field Description
Enter Bearer Token: Enter a bearer token if you already have one, and configure
the refresh_token and client_secret and set the passwords accordingly.
Field Description
If you select Anonymous: only Authorization Header Fields, Truststore file, Set mutual
authentication parameters, Http Connection Timeout, Proxy host and port, HTTP errors to
retry, and Base URL for REST Resources fields appear.
15 On the Install REST Base page, for the Publisher Options fill in the following fields, then click
Next.
Field Description
Publisher Setting Specify the publisher setting for the REST driver. Based on the selection the
other fields appear. The available options are:
Poll
Publish
Other options:
KMO name: When this server is configured to accept HTTPS connections,
this is the KMO name in eDirectory. The KMO name is the name before the
- in the RDN. Leave this field blank when a keystore file is issued or when
HTTPS connections are not used.
Keystore file: When this server is configured to accept HTTPS connections,
this is the path and the name of the keystore file. For example;
C:\security\keystore. Leave this field blank when a KMO name is
used or when HTTPS connections are not used.
Keystore password: When this server is configured to accept HTTPS
connections, this is the keystore file password. Leave this field blank when
a KMO name is used or when HTTPS connections are not used.
Server key alias: When this server is configured to accept HTTPS
connections, this is the key alias. Leave this field blank when a KMO name is
used or when HTTPS connections are not used.
Server key password: When this server is configured to accept HTTPS
connections, this is the key alias password (not the keystore password).
Leave this field blank when a KMO name is used or when HTTPS
connections are not used.
Require Mutual authentication: When using SSL, it is common to do only
server authentication. However, if you want to force both client and server
to present certificates during the handshake process, select Required.
Heartbeat interval in minutes: Heartbeat is the interval to be specified for
data synchronization between Identity Manager and the connected system.
Leave this field blank to turn off the heartbeat.
16 (Conditional) Fill in the following fields for the Remote Loader information, then click Next.
To Connect To Remote Loader:
16a Select Yes or No to determine if the driver will use the Remote Loader.
16b If you select No, skip to Step 12.
16c If you select Yes, use the following information to complete the configuration of the
Remote Loader:
Field Description
Host Name Specify the IP address or DNS name of the server where the Remote
Loader is installed and running.
Port Specify the port number for this driver. Each driver connects to the Remote
Loader on a separate port. The default value is 8090.
KMO Specify the key name of the Key Material Object that includes keys and
certificates for SSL. You use this parameter only when an SSL connection
exists between the Remote Loader and the Identity Manager engine.
Other Parameters Specify any other parameter required in the connection string. The
parameter must be a key-value pair. For example, paraName1=paraValue1
Remote Loader Password Specify a password to control access to the Remote Loader. It must be the
same password that is specified as the Remote Loader password on the
Remote Loader.
Driver Password Specify a password for the driver to authenticate to the Identity Manager
server. It must be the same password that is specified as the Driver Object
Password on the Remote Loader.
17 Review the summary of tasks that will be completed to create the driver, then click Finish.
Host Specify the IP address or DNS name of the server hosting the Identity Vault.
Username Specify the DN of the user object used to authenticate to the Identity Vault.
IMPORTANT: When you start the driver for the first time, don't add new users to the Publisher
channel until the first polling interval completes because the driver treats all users as existing users
and stores them in the change cache without sending them to the Identity Manager engine. It sends
the new users to the Identity Manager engine from the next polling interval. Therefore, ensure that
new users are added to the Publisher channel after the first polling cycle completes.
This integration module requires a separate activation. After purchasing the integration module, you
will receive activation details in your NetIQ Customer Center.
If you create a new REST driver in a driver set that already includes an activated driver from this
integration module, the new driver inherits the activation from the driver set.
If you create the driver in a driver set that has not been previously activated with this integration
module, the driver will run in the evaluation mode for 90 days. You must activate the driver with this
integration module during the evaluation period; otherwise, the driver will be disabled.
If driver activation has expired, the trace displays an error message indicating that you need to
reactivate the driver to use it. For information on activation, refer to Activating Identity Manager in
the NetIQ Identity Manager Overview and Planning Guide.
The following sections provide information to help you upgrade an existing driver:
“Supported Upgrade Paths” on page 49
“Upgrading the Driver” on page 49
2g Click Apply.
2h (Conditional) Fill in the fields with appropriate information to upgrade the package, then
click Next.
Depending on which package you selected to upgrade, you must fill in the required
information to upgrade the package.
2i Read the summary of the packages that will be installed, then click Finish.
2j Review the upgraded package, then click OK to close the Package Management page.
For detailed information, see the “Upgrading Installed Packages” in the NetIQ Designer for
Identity Manager Administration Guide.
Prerequisites
Before installing the patch, complete the following steps:
1 Take a back-up of the current driver configuration.
2 (Conditional) If the driver is running with the Identity Manager engine, stop the Identity Vault
and the driver instance.
3 (Conditional) If the driver is running with a Remote Loader instance, start the Remote Loader
instance and the driver instance.
4 In a browser, navigate to the NetIQ Patch Finder Download Page.
5 Under Patches, click Search Patches.
6 Specify Identity Manager nn REST DRIVER nn in the search box.
7 Download and unzip the contents of the patch file to a temporary location on your server.
For example, IDM45_REST_1001.zip.
The following sections provide information to help you understand the available customization to
make the driver connect to any RESTful service:
“Modifying Java Extensions” on page 53
“Modifying the JSON/XML Payload” on page 53
“Using driver-operation-data” on page 54
You can modify the following requests and responses using Java extensions:
Subscriber request document to the connected application.
Subscriber response document for Identity Manager.
Publisher request document sent through the Publisher channel to the connected application.
Publisher response document received through the publisher channel to Identity Manager.
For more information, see Appendix B, “Using Java Extensions,” on page 95.
5. Click the icon to disable the policy as shown in the following image.
Using driver-operation-data
You can use the policies to add a new <driver-operation-data> element to the Subscriber
channel, or submit a new custom created <driver-operation-data> element. The <driver-
operation-data> element is processed irrespective of the configured handlers. For more
information, see “Understanding Driver Operation Data” on page 19.
If the remote Web service you are accessing allows HTTPS connections, you can configure the driver
to take advantage of this increased security.
IMPORTANT: Only certificates from a Java keystore are accepted. Make sure that the keystore for
the certificates is a Java keystore.
Securing Communication 55
3 Import the self-signed certificate into the client’s trust store:
The steps to import the certificate vary depending on the client that connects to the Publisher
channel’s HTTPS listener. If the client uses a typical Java keystore, you can perform the following
steps to create the keystore:
3a Use the keytool executable that is included with any Java JDK.
For more information on keytool, see Keytool - Key and Certificate Management Tool.
3b Enter the following command at a command prompt:
56 Securing Communication
3 Configure the Subscriber channel to use the trust store you created in Step 2:
3a In iManager, in the Roles and Tasks view, click Identity Manager > Identity Manager
Overview.
3b Locate the driver set containing the REST driver, then click the driver’s icon to display the
Identity Manager Driver Overview page.
3c On the Identity Manager Driver Overview page, click the driver’s icon again, then scroll to
Subscriber Settings.
3d In the Keystore File setting, specify the path to the trust store you created in Step 2.
4 Click Apply, then click OK.
Securing Communication 57
58 Securing Communication
7 Managing the Driver
7
As you work with the REST driver, there are a variety of management tasks you might need to
perform, including the following:
Starting, stopping, and restarting the driver
Viewing driver version information
Using Named Passwords to securely store passwords associated with the driver
Monitoring the driver’s health status
Backing up the driver
Inspecting the driver’s cache files
Viewing the driver’s statistics
Using the DirXML Command Line utility to perform management tasks through scripts
Securing the driver and its information
Because these tasks, as well as several others, are common to all Identity Manager drivers, they are
included in one reference, the NetIQ Identity Manager Driver Administration Guide.
IMPORTANT: The configuration parameters, sample values and examples mentioned in this chapter
are for reference purposes only. You must ensure not to use them directly in your production
environment.
NA Access Token URL The URL of the server used for requesting token access.
Server URL issuer The authorization server's URL that uses the https protocol.
User subject The user’s unique identity for which the access token is being
requested.
client_auth_type client_auth_type The client's authorization types configured for granting access to
the application.
Digital Signature recipient_keystore The keystore recipient alias used to look up the digital signature
which contains the public key in Salesforce. The following steps
explain how to create the recipient_keystore.
Refresh Token refresh_token Refresh Token is a web token to acquire new access tokens when
current access tokens expire or become invalid. The authorization
server (Salesforce) provides refresh tokens to the Identity
Manager to obtain new access token without user interaction in
the backend.
Consumer Secret client_secret The client secret is used to establish the ownership of the
client_id.
IMPORTANT: Ensure to replace the variable values in the REST end point URL as per
Salesforce specifications. The sample values are shown as follows, and applicable for the
REST end point examples mentioned in other sections.
<tenant name> with ap16, ap17, etc.
<current version> with v20.0, v20.1, etc.
<association> with salesforce-userid, salesforce-groupid, etc.
Modifying a user: If there are any changes made to the user details such as, user's first
name, last name, contact details, email ID etc, they will be synchronized with Salesforce.
The REST end point for Salesforce to modify a user: <https://<tenant
name>.salesforce.com/services/data/<current version>/sobjects/User/
<salesforce-userid>
NOTE: The user can be disabled in case of separation or termination of their services.
Field Description
Username The name of the user, for example, Admin, if the user is an administrator.
12 Select Save Password, if you want to save your password for easy logins in the future.
13 Click OK.
The Identity Vault and the Driver Set appears in the Modeler window.
14 In the right pane, drag and drop the REST Server from the Tools tab to the Modeler.
15 In the Driver Configuration Wizard, select REST Base (Contains the base functionality for a
driver. You must install a driver base configuration package first).
16 Click Next.
17 Select the optional features to install for the REST driver, the options are:
REST Default Package
REST JSON Package: This package contains the default JSON configurations
REST Password Sync: This packages contains the policies that enable the REST driver to
synchronize passwords. If you want to synchronize passwords, verify that this option is
selected. For more information, see the NetIQ Identity Manager Password Management
Guide.
18 Click Next.
The package dependencies window appears.
19 (Conditional) Click OK to install the package dependency listed.
NOTE: If there are any dependent packages associated with the selected package, you must
install them to proceed.
NOTE: Configuring a JWT Token is preferred over a Bearer Token, as it is more secured with a
digital server certificate, and enables you to perform all operations without any access
restrictions.
23 There are no publisher options to be specified in the subsequent Publisher Options screen, as
the publisher channel is not supported for Salesforce application, hence click Next.
24 Review the summary of tasks that will be completed to create the driver, then click Finish. The
configured driver appears in the designer screen.
25 After competing the above steps, refer to “Configuring Resources to Synchronize” on page 73,
to configure the resources to synchronize with Salesforce.
IMPORTANT: For any operation performed on the Salesforce application using OAuth 2.0, an access
token is sent for authorization of the user from Salesforce. The access token expires post the session
idle time set for Salesforce, or in case of a system restart. The session idle time for access token
expiry is set to 4 hours in the Salesforce application by default. However, the session idle time is
configurable as per your requirement. Salesforce displays Unauthozied Access error or an Invalid
Session error for any request initiated with an expired access token. The presence of a refresh token
helps to re-establish the failed session internally by generating a new access token without the user
having to log in again.
NOTE: The * indicates mandatory fields and ^ indicates non mandatory fields.
Set mutual authentication parameters^: Select Show Keystore file: Specify the path and the name of
if you want to set mutual authentication information. the keystore file that contains the trusted
certificates for the remote server to provide
mutual authentication. For example,
C:\security\keystore. Leave this field
blank when mutual authentication is not used.
Keystore password: Specify the password for
the keystore file. Leave this field blank when
mutual authentication is not used.
Http Connection Timeout^: Specify the HTTP errors <307 408 503 504>, and specify the HTTP
that must return a retry status. Error codes must be a connection time out value. The driver waits for the
list of integers separated by spaces. time specified and terminates the HTTP connection.
The timeout value must be greater than 0.
Proxy host and port^: Specify the host address and 192.168.0.0:port. Choose an unused port number on
the host post when a proxy host and port are used. your server. Otherwise, leave this field blank.
HTTP errors to retry^: Specify the HTTP errors that <307 408 503 504>
must return a retry status. Error codes must be a list
of integers separated by spaces.
Base URL for REST Resources*: The URL to which the <https://ap16.salesforce.com/>
endpoint paths of Salesforce are appended.
Set mutual authentication parameters^: Select Show Keystore file: Specify the path and the name of
if you want to set mutual authentication information. the keystore file that contains the trusted
certificates for the remote server to provide
mutual authentication. For example,
C:\security\keystore. Leave this field
blank when mutual authentication is not used.
Keystore password: Specify the password for
the keystore file. Leave this field blank when
mutual authentication is not used.
Http Connection Timeout^: Specify the HTTP errors <307 408 503 504>, and specify the HTTP
that must return a retry status. Error codes must be a connection time out value. The driver waits for the
list of integers separated by spaces. time specified and terminates the HTTP connection.
The timeout value must be greater than 0.
Proxy host and port^: Specify the host address and 192.168.0.0:port. Choose an unused port number on
the host post when a proxy host and port are used. your server. Otherwise, leave this field blank.
HTTP errors to retry^: Specify the HTTP errors that <307 408 503 504>
must return a retry status. Error codes must be a list
of integers separated by spaces.
Base URL for REST Resources*: The URL to which the For example: <https://
endpoint paths of Salesforce are appended. ap16.salesforce.com/>
Set mutual authentication parameters^: Select Show Keystore file: Specify the path and the name of
if you want to set mutual authentication information. the keystore file that contains the trusted
certificates for the remote server to provide
mutual authentication. For example,
C:\security\keystore. Leave this field
blank when mutual authentication is not used.
Keystore password: Specify the password for
the keystore file. Leave this field blank when
mutual authentication is not used.
Http Connection Timeout^: Specify the HTTP errors <307 408 503 504>, and specify the HTTP
that must return a retry status. Error codes must be a connection time out value. The driver waits for the
list of integers separated by spaces. time specified and terminates the HTTP connection.
The timeout value must be greater than 0.
Proxy host and port^: Specify the host address and 192.168.0.0:port. Choose an unused port number on
the host post when a proxy host and port are used. your server. Otherwise, leave this field blank.
HTTP errors to retry^: Specify the HTTP errors that <307 408 503 504>
must return a retry status. Error codes must be a list
of integers separated by spaces.
Base URL for REST Resources*: The URL to which the For example: <https://
endpoint paths of Salesforce are appended. ap16.salesforce.com/>
6 Provide a schema name, for example <User>, as shown in the image to configure handlers.
7 Set the Configure Handlers to Custom, and click instance_1 to add the schema name.
8 Add a Rest Handler Details instance by clicking the icon, and specify the details as shown in
the following table:
Method Specify the method for the selected The options are:
operation GET: the method to perform a fetch
operation
POST: the method to perform a create
or add operation
PUT: the method to update
PATCH: the method to modify
DELETE: the method to delete
9 Click OK.
REST Handler Sample URL Extension Operation Method REST end point URL
Details
IMPORTANT: The below mentioned policies are examples and must be used for reference purposes
only. You must ensure not to use them directly in your production environment.
You can log Identity Manager events by using the Event Auditing Service. Using this service in
combination with the driver log level setting provides you with tracking control at a very granular
level. For more information, see the Administrator Guide to NetIQ Identity Reporting.
This section contains the following information on error messages:
“Hidden JSON Content in Output Transformation Policy Channels” on page 81
“REST Driver Is Unable to Sync Configured Parameters and Passwords While Upgrading” on
page 81
“Driver Shim Errors” on page 82
“Troubleshooting Driver Processes” on page 82
“Driver Reports an Error When a Password or an Attribute Value Contains the < Character” on
page 82
This section provides information about the Driver Configuration and Global Configuration Values
properties for the REST driver. These are the only unique properties for drivers. All other driver
properties (Named Password, Engine Control Values, Log Level, and so forth) are common to all
drivers. Refer to “Driver Properties” in the NetIQ Identity Manager Driver Administration Guide for
information about the common properties.
The information is presented from the viewpoint of iManager. If a field is different in Designer, it is
marked with a Designer icon.
“Driver Configuration” on page 83
“Global Configuration Values” on page 92
Driver Configuration
In iManager:
In Designer:
1 Open a project in the Modeler.
2 Right-click the driver icon or line, then select click Properties > Driver Configuration.
The Driver Configuration options are divided into the following sections:
“Driver Module” on page 84
“Authentication” on page 84
“Startup Option” on page 84
“Driver Parameters” on page 85
“ECMAScript” on page 92
“Global Configuration” on page 92
Driver Properties 83
Driver Module
The driver module changes the driver from running locally to running remotely or the reverse.
Java: Use this option to specify the name of the Java class that is instantiated for the shim
component of the driver. This class can be located in the classes directory as a class file, or in the
lib directory as a .jar file. If this option is selected, the driver is running locally. Select this option
to run the driver locally.
The Java class name is: com.novell.nds.dirxml.driver.rest.RESTDriverShim
Native: This option is not used with the REST driver.
Connect to Remote Loader: Used when the driver is connecting remotely to the connected system.
Designer includes two suboptions:
Remote Loader Client Configuration for Documentation: Includes information on the Remote
Loader client configuration when Designer generates documentation for the driver.
Driver Object Password: Specifies a password for the Driver object. If you are using the Remote
Loader, you must enter a password on this page. Otherwise, the remote driver does not run.
The Remote Loader uses this password to authenticate itself to the remote driver shim.
Name: Displays the java class name.
Driver Object Password: Use this option to set a password for the driver object. If you are using the
Remote Loader, you must enter a password on this page or the remote driver does not run. This
password is used by the Remote Loader to authenticate itself to the remote driver shim.
Authentication
The authentication section describes the parameters required for authentication to the connected
system. This section is not applicable for the Identity Manager driver for REST. The authentication
method for REST driver is Anonymous, Basic or OAuth2.0.
Startup Option
The Startup Option section allows you to set the driver state when the Identity Manager server is
started.
Auto start: The driver starts every time the Identity Manager server is started.
Manual: The driver does not start when the Identity Manager server is started. The driver must be
started through Designer or iManager.
Disabled: The driver has a cache file that stores all of the events. When the driver is set to Disabled,
this file is deleted and no new events are stored in the file until the driver state is changed to Manual
or Auto Start.
84 Driver Properties
Driver Parameters
The Driver Parameters section lets you configure the driver-specific parameters. When you change
driver parameters, you tune driver behavior to align with your network environment.
The parameters are presented by category:
“Driver Settings” on page 85
“Subscriber Settings” on page 85
“Resources” on page 89
“Publisher Options” on page 90
Driver Settings
Custom Java Extensions: Select Show if you have developed custom Java classes to extend the driver
shim’s functionality. Otherwise, select Hide.
Document Handling: Select Implemented if you have developed a custom Java class to process
data as XML documents. Otherwise, select None.
Class: Specify the class by using a complete package identifier. For example,
com.novell.DocumentModifier.
Init Parameter: Specify the parameter to pass to the init() method of the specified class.
The init method is responsible for parsing the information contained in this string. Leave
this field blank if the configuration string is not required for the class.
Schema: Select Implemented if you have developed a custom Java class to provide the
application schema to the driver and specify the Class and Init Parameter values. Otherwise,
select None.
For more information, see Appendix B, “Using Java Extensions,” on page 95.
Subscriber Settings
Authentication Method: Select the method for authentication with the RESTful service. The
available options are:
Anonymous: The user name and password is not required in Anonymous authentication
method.
Basic: The driver uses the specified ID and password for authentication when processing the
requests.
OAuth2.0: The driver uses the specified access token URL, ID and password for authentication
when processing the request.
If Anonymous is selected, fill in the following parameters:
Driver Properties 85
Parameters Description
Truststore file Specify the name and path of the keystore file
containing the trusted certificates used when the
remote server is configured to provide server
authentication. For example,
C:\security\truststore. Leave this field
empty when server authentication is not used.
Http Connection Timeout Specify the HTTP connection timeout value. The
driver waits for the time specified and terminates the
HTTP connection. The timeout value must be greater
than zero.
Proxy host and port Specify the host address and the host port when a
proxy host and port are used. For example:
192.10.1.3:18180.
Or, if a proxy host and port are not used, leave this
field empty.
HTTP errors to retry Specify the HTTP errors that must return a retry
status. Error codes must be a list of integers
separated by spaces. For example, 307 408 503 504.
Base URL for REST Resources Specify the common part of the REST resource URL.
This is the part of the URL remaining after excluding
the URL extension of the resource. For example,
http://ipaddress:port/.
86 Driver Properties
If Basic is selected, fill in the following parameters:
Parameters Description
Truststore file Specify the name and path of the keystore file
containing the trusted certificates used when the
remote server is configured to provide server
authentication. For example,
C:\security\truststore. Leave this field
empty when server authentication is not used.
Http Connection Timeout Specify the HTTP connection timeout value. The
driver waits for the time specified and terminates the
HTTP connection. The timeout value must be greater
than zero.
Proxy host and port Specify the host address and the host port when a
proxy host and port are used. For example:
192.10.1.3:18180.
Or, if a proxy host and port are not used, leave this
field empty.
Driver Properties 87
Parameters Description
HTTP errors to retry Specify the HTTP errors that must return a retry
status. Error codes must be a list of integers
separated by spaces. For example, 307 408 503 504.
Base URL for REST Resources Specify the common part of the REST resource URL.
This is the part of the URL remaining after excluding
the URL extension of the resource. For example,
http://ipaddress:port/.
Parameters Description
Access Token URL Specify the URL of the server used for requesting
token access.
88 Driver Properties
Parameters Description
Truststore file Specify the name and path of the keystore file
containing the trusted certificates used when the
remote server is configured to provide server
authentication. For example,
C:\security\truststore. Leave this field
empty when server authentication is not used.
Http Connection Timeout Specify the HTTP connection timeout value. The
driver waits for the time specified and terminates the
HTTP connection. The timeout value must be greater
than zero.
Proxy host and port Specify the host address and the host port when a
proxy host and port are used. For example:
192.10.1.3:18180.
Or, if a proxy host and port are not used, leave this
field empty.
HTTP errors to retry Specify the HTTP errors that must return a retry
status. Error codes must be a list of integers
separated by spaces. For example, 307 408 503 504.
Base URL for REST Resources Specify the common part of the REST resource URL.
This is the part of the URL remaining after excluding
the URL extension of the resource. For example,
http://ipaddress:port/.
Resources
Configure Resources to synchronize: Click the icon to add a class name of the user resource
present in application schema.
Schema name: Specify the class name of the user resource in the application schema. For
example, Users, Groups, and Entitlement.
Configure Handlers: Select the appropriate customer handlers. The available options are
Default and Custom.
If you select Custom, fill in the following parameters:
Driver Properties 89
Rest Handler Details: Click the icon to add rest custom handler information.
URL Extension: Specify the relative URL extension where the resource is located. The driver
shim appends this URL extension to the base URL. The URL extension also includes the
necessary URL placeholder. A placeholder is defined as a variable embedded within the URL.
The driver-operation-data element replaces this with the URL token element during data
transformation.
For example, /Users/<version>. In this example, version is the placeholder and the driver
replaces this with the URL token element in the driver-operation-data element.
<driver-operation-data class-name="User" command="add" method="put"
uri="https://172.16.0.0:XXXX/User/rest123">
<request>
<url-token version="1.0"/>
<header content-type="application/json"/>
<value>{"CN":[{"value":"rest6789"}],"Full
Name":[{"value":"rest6789 rest6789"}],"Given
Name":[{"value":"rest6789"}],","Surname":[{"value":"rest6789"}],"Login
Disabled":[{"value":"true"}]}
</value>
</request>
</driver-operation-data>
Operation: Select the required operation for Identity Manager operation.
Method: Select the HTTP method to use. The options are: GET, POST,PATCH,PUT, and DELETE.
Optional Header Fields: Click the icon to add optional header name and value.
Publisher Options
Publisher Settings: Specify the publisher settings. You can select either Publish Mode or Poll Mode
as the publisher setting. If Publish Mode is selected, the driver pushes the events to the Identity
Vault. In the Publish mode, the driver exposes the REST endpoints to receive the events. These
events are then pushed to the Identity Vault. If Poll Mode is selected, the driver periodically pulls the
data from the connected RESTful service.
In Publish Mode is selected, fill in the following parameters:
Parameters Description
Listening IP address and port Specify the IP address of the server where the REST
driver is installed and the port number that this driver
listens on.
90 Driver Properties
Parameters Description
Keystore file Specify the keystore name and path to the keystore
file. This file is used when the server is configured to
accept HTTPS connections.
Keystore password Specify the keystore file password used with the
keystore file specified above when this server is
configured to accept HTTPS connections.
Server key alias Specify a Server key alias when this server is
configured to accept HTTPS connections.
Driver Properties 91
Parameters Description
Configure Resource for poll Click the icon to add a class name of the user
resource present in application schema.
Polling interval in minutes Specify the polling interval in minutes. Default is one
minute.
If Anonymous is selected, the values you specified for authentication ID and authentication password
are cleared.
ECMAScript
Displays an ordered list of ECMAScript resource files. The files contain extension functions for the
driver that Identity Manager loads when the driver starts. You can add additional files, remove
existing files, or change the order the files are executed.
Global Configuration
Displays an ordered list of Global Configuration objects. The objects contain extension GCV
definitions for the driver that Identity Manager loads when the driver is started. You can add or
remove the Global Configuration objects, and you can change the order in which the objects are
executed.
92 Driver Properties
To access the driver’s GCVs in iManager:
To add a GCV to the driver set, right-clickthe driver set icon , then click Properties > GCVs.
The global configuration values are organized as follows:
“Password Synchronization” on page 93
“Permission Collection and Reconciliation” on page 94
Password Synchronization
These GCVs enable password synchronization between the Identity Vault and the connected system.
In Designer, you must click the icon next to a GCV to edit it. This displays the Password
Synchronization Options dialog box for a better view of the relationship between the different GCVs.
In iManager, to edit the Password management options go to Driver Properties > Global
Configuration Values, and then edit it in your Password synchronization policy tab.
For more information about how to use the Password Management GCVs, see “Configuring
Password Flow” in the NetIQ Identity Manager Password Management Guide.
Application accepts passwords from Identity Manager: If True, allows passwords to flow from the
Identity Manager data store to the connected system.
Identity Manager accepts passwords from application: If True, allows passwords to flow from the
connected system to Identity Manager.
Publish passwords to NDS password: Use the password from the connected system to set the non-
reversible NDS password in eDirectory.
Publish passwords to Distribution Password: Use the password from the connected system to set
the NMAS Distribution Password used for Identity Manager password synchronization.
Driver Properties 93
Require password policy validation before publishing passwords: If True, applies NMAS password
policies during publish password operations. The password is not written to the data store if it does
not comply.
Reset user’s external system password to the Identity Manager password on failure: If True, on a
publish Distribution Password failure, attempts to reset the password in the connected system by
using the Distribution Password from the Identity Manager data store.
Notify the user of password synchronization failure via e-mail: If True, notifies the user by e-mail of
any password synchronization failures.
Click the Add icon add custom entitlements you want to selectively onboard and specify
Assignment Attribute Name for them.
94 Driver Properties
B Using Java Extensions
B
The functionality of the REST driver can be extended by using Java. You use an API defined by Java
interfaces to create your own custom Java classes that have access to the data passing through the
Subscriber and Publisher channels. These classes read and interpret the data, and, optionally, modify
the data.
You can also configure Java extensions in the Java class that is available in the driver shim
(com.novell.nds.dirxml.driver.rest.RESTDriverShim). The Java class consists of four
empty functions. You need to enter the functions to perform operations as required. For more
information, see Driver Development Kit in the Identity Manager Developer Documentation page.
This section contains the following information on using Java extensions:
“Overview” on page 95
“Creating and Configuring Java Extensions” on page 96
Overview
If the application you are using with the REST driver uses non-XML data that is not supported by the
REST driver, you can create Java extensions to convert the non-XML data to the JSON format
supported by the REST driver.
As illustrated in Figure B-1, there are five points where functionality can be extended:
Two in the Subscriber channel
Two in the Publisher channel
One to report the application schema
Subscriber Channel
Application
XML Bytes HTTP Requests (POST)
Convert bytes Publisher
to/from XML Transport
XML Bytes HTTP Response
Publisher Channel
The REST driver is designed to be flexible and extensible. For the Java programmer who wants to
extend or modify the capabilities of the driver, there are programming interfaces that can be used
for this purpose. These interfaces should be used only when you need to do transformations that
cannot be done in policies or style sheets.
The Javadoc describes these interfaces.
There are two Java interfaces that can be used to extend or customize the driver behavior. They are
DocumentModifiers and SchemaReporter.
DocumentModifiers is used to access and to modify the commands and events passing through the
driver shim, if this is desired. DocumentModifiers gives you access to the data as XML DOM
documents.
The other interface, SchemaReporter, can be used if you have a way of programatically determining
the classes and attributes used by the remote Web service. The advantage to this is that creating
schema mapping rules is easier if the schema can be dynamically determined.
Level Description
0 No debugging
1-3 Identity Manager messages. Higher trace levels provide more detail.
4 Previous levels along with Remote Loader, driver, driver shim, and driver connection
messages, driver parameters, driver security, driver schema, request and response XML
7 Previous levels and all REST responses from the connected system
For information about setting driver trace levels, see “Viewing Identity Manager Processes” in the
NetIQ Identity Manager Driver Administration Guide.
Trace Levels 99
100 Trace Levels
D Supported JSON Format
D
The Identity Manager driver for REST queries the exposed RESTful endpoints and the returns the
responses in JSON format.
The following is an example of the QUERY response in the supported JSON format.
{
"totalResults": 1,
"results": [
{
"src-dn": "\\SERVER-LINUX-TREE-45\\data\\users\\thomaswagner",
"class-name": "User",
"CN": [
"thomaswagner"
],
"Object Class": [
"User",
"Organizational Person",
"Person",
"ndsLoginProperties",
"Top"
],
"Password Allow Change": [
"true"
],
"Password Minimum Length": [
"4"
],
"Password Required": [
"true"
],
"Password Unique Required": [
"false"
],
"Public Key": [
"AQAAAAQAAAAgAGAAAADWACc7sIe2QAUFVSU0FG"
],
"Surname": [
"thomaswagner"
],
"Full Name": [
"thomaswagner thomaswagner"
],
"Revision": [
"6"
],
"Given Name": [
"thomaswagner"
],
"GUID": [
The following is an example of the ADD request in the supported JSON format.
{
"cn": "Sam2",
"title": [
"Sr Engineer",
"Manager",
"Mr. "
],
"streetAddress": [
{
"component": "566666"
},
{
"component": "area numero",
"postal code": "566666"
}
]
}
The following is an example of the MODIFY request in the supported JSON format.