4 Configuring the Generic REST Connector

You must configure the connector to let Oracle Identity Manager connect to the target system. You must also configure the connector to set it up to perform reconciliation and provisioning operations.

4.1 Configuring the IT Resource for the Target System

The IT resource for your target system is created after you install the connector. An IT resource is composed of parameters that store connection and other generic information about a target system. Oracle Identity Manager uses this information to connect to a specific installation or instance of your target system and perform reconciliation and provisioning operations.

The list of IT resource parameters for the Generic REST connector can be grouped into the following categories:

  • Connection-related parameters

  • Authentication parameters

  • Parser parameters

  • Additional configuration parameters

This section provides information about the following topics related to IT resource configuration:

4.1.1 Specifying Values for the IT Resource Parameters

The IT resource for the target system contains connection information about the target system. Oracle Identity Manager uses this information during provisioning and reconciliation.

When you run the metadata generator, the IT resource corresponding to this connector is automatically created in Oracle Identity Manager. You must specify values for the parameters of this IT resource as follows:

  1. Log in to Oracle Identity System Administration.
  2. In the left pane, under Configuration, click IT Resource.
  3. In the IT Resource Name field on the Manage IT Resource page, enter the name of the IT resource, and then click Search. The name of the IT resource is the value of the itResourceName property in the GenericRestConfiguration.groovy file.
  4. Click the edit icon for the IT resource.
  5. From the list at the top of the page, select Details and Parameters.
  6. Specify values for the parameters of the IT resource. See Configuring the IT Resource for the Target System for information about IT resource parameters.
  7. To save the values, click Update.

4.1.2 Connection Parameters

Connection parameters are used by the connector to establish a connection between Oracle Identity Manager and your target system for exchange of identity information.

Table 4-1 lists the connection-related IT resource parameters.

Table 4-1 Connection IT Resource Parameters

Parameter Description

Configuration Lookup

Name of the lookup definition that holds connector configuration entries that are used during connector operations.

Note: This is a mandatory parameter.

Connector Server Name

If you have deployed the Generic RESTconnector in the Connector Server, then enter the name of the IT resource for the Connector Server.

host

Host name or IP address of the computer hosting the target system.

Sample value: www.example.com

Note: This is a mandatory parameter.

port

Port number at which the target system is listening.

Sample value: 80

Note: This is a mandatory parameter.

proxyHost

Name of the proxy host used to connect to an external target system.

Sample value: www.example.com

proxyPort

Proxy port number

Sample value: 80

proxyUser

Proxy user name of the target system user account that Oracle Identity Manager uses to connect to the target system.

proxyPassword

Password of the proxy user ID of the target system user account that Oracle Identity Manager uses to connect to the target system.

connectionTimeOut

An integer value that specifies the number of milliseconds after which an attempt to establish the connection between the target system and Oracle Identity Manager times out.

Sample value: 100000

socketTimeOut

An integer value that specifies the number of milliseconds after which the wait for a response from the target system times out.

Sample value: 100000

4.1.3 Authentication Parameters

Authentication parameters are used by the target system to authenticate an application. The set of IT resource parameters for which you must specify values depends on the value that you enter for the authenticationType parameter.

The authenticationType parameter holds the type of authentication used by your target system. By default, the connector supports the following types of authentication:

  • HTTP Basic Authentication

  • OAuth 2.0 JWT

  • OAuth 2.0 Client Credentials

  • OAuth 2.0 Resource Owner Password

  • Manually input access token and refresh token

Apart from the authentication types listed, if you target system uses any other authentication type, then you must write your own implementation which requires development effort. The following are the possible values for the authenticationType parameter:

  • For HTTP Basic Authentication: basic
  • For OAuth 2.0 JWT: jwt
  • For OAuth 2.0 Client Credentials: client_credentials
  • For OAuth 2.0 Resource Owner Password: password
  • For manual input of access token and refresh token: other
  • For custom authentication implementation: custom

Note:

This section provides information about IT resource parameters for all authentication types. Enter values only for IT resource parameters corresponding to the authentication type you specify.

HTTP Basic Authentication

Table 4-2 lists the set of IT resource parameters for which you must enter values when the authenticationType parameter is set to basic.

Table 4-2 HTTP Basic Authentication IT Resource Parameters

Parameter Description

username

User name or User ID of the account that Oracle Identity Manager must use to connect to and access the target system during reconciliation and provisioning operations.

Sample value: johnsmith

password

Password of the account that Oracle Identity Manager must use to connect to and access the target system during reconciliation and provisioning operations.

Sample value: password

OAuth 2.0 JWT

Table 4-3 lists the set of IT resource parameters for which you must enter values when the authenticationType parameter is set to jwt.

Table 4-3 OAuth 2.0 JWT IT Resource Parameters

Parameter Description

aud

Enter the intended audience of the JWT. The value can either be a URI or token endpoint URL of the authorization server.

Sample value: https://www.example.com/oauth2/v3/token

iss

Enter a value that uniquely identifies the entity that issued the JWT.

Sample value: 527901474-ugnvd5uh21p598cf9h6cd@developer.example.com

scope

Enter the scope of the access token being issued.

Sample value: https://www.example.com/auth/adm.direct.group, https://www.example.com/auth/adm.direct.user

sub

Enter a value that identifies the principal to which the JWT is being issued.

Sample value: admin@example.com

privateKeyLocation

Enter the absolute path to the private key used to sign the access token.

Sample value: C:\Users\jdoe\Desktop\Connector_Server_111210\connector_server_java-1.4.0\bundles\googleapps.p12

privateKeySecret

Enter the secret key for the private key that is being used to sign the access token.

tokenLifespan

Enter the life span of the access token in milliseconds.

Sample value: 3600

signatureAlgorithm

Enter the algorithm used for signing the access token.

Sample value: RS265

privateKeyFormat

Enter the format of the private key used to sign the access token.

Sample value: PKCS12

OAuth 2.0 Client Credentials

Table 4-4 lists the set of IT resource parameters for which you must enter values when the authenticationType parameter is set to client_credentials.

Table 4-4 OAuth2.0 Client Credentials IT Resource Parameters

Parameter Description

clientId

Enter the client identifier (a unique string) issued by the authorization server to the client during the registration process.

Sample value: XDWTh0r2eWuULCDVt

clientSecret

Enter the value used to authenticate the identity of your client application.

Sample value: clZsdZisTOoYN5NITirarIDepDkiJTGHdzNFT0m

authenticationServerURL

Enter the URL of the authorization server that authenticates the client (by validating the client ID and client secret), and if valid, issues an access token.

Sample value: https://api.example.com/oauth2/token

OAuth 2.0 Resource Owner Password

Table 4-5 lists the set of IT resource parameters for which you must enter values when the authenticationType parameter is set to password.

Table 4-5 OAuth 2.0 Resource Owner Password IT Resource Parameters

Parameter Description

username

Enter the user name or user ID of the resource owner.

Sample value: johnsmith

password

Enter the password of the resource owner.

Sample value: password

clientId

Enter the client identifier issued to the client during the registration process.

Sample value: XDWTh0r2eWuULCDVt

Note: This is an optional parameter.

clientSecret

Enter the client secret used to authenticate the identity of the client application.

Sample value: clZsdZisTOoYN5NITirarIDepDkiJTGHdzNFT0m

Note: This is an optional parameter.

authenticationServerUrl

Enter the URL of the authorization server (token endpoint) that authenticates the client (by validating client ID and client secret) and the resource owner credentials, if valid, issues an access token.

Sample value: https://api.example.com/oauth2/token

Manual Input of Access Tokens and Refresh Tokens

This section discusses the IT resource parameter for which you must enter a value when the authenticationType parameter is set to other.

In this authentication mechanism, the connector expects the value of the access token and refresh token to be directly passed through the customAuthHeaders IT resource parameter. The customAuthHeaders parameter must hold the access token and refresh token values that must be passed through an HTTP authorization header.

Custom Authentication

This section discusses the IT resource parameter for which you must enter a value when the authenticationType parameter is set to custom.

If you have implemented custom authentication, then you must enter a value for the customAuthClassName parameter. The customAuthClassName parameter must hold the name of the class implementing the custom authentication logic that you created while performing the procedure described in Implementing Custom Authentication.

4.1.4 Parser Parameters

By default, the Generic REST connector supports only JSON parsing during reconciliation runs. If the reconciliation data from your target system is not in JSON format, then you must write a custom parser implementation for your data format.

Table 4-6 lists the IT resource parameters related to parsing

Table 4-6 Parser IT Resource Parameters

Parameter Description
jsonResourcesTag

Enter the JSON tag value that is used for parsing a response payload. The connector will consider the value that you enter in this parameter as an unwanted outer tag while parsing responses. You can skip entering a value for this parameter if there is no unwanted outer tag in your response payload.

Enter a value for this parameter in the following format:

OBJ_CLASS=OUTER_ATTR_NAME

In this format, OBJ_CLASS is the name of the object class for which a response payload is being parsed. OUTER_ATTR_NAME is the name of the outer tag in the response payload.

For example, consider the following JSON value for a User object:
"Resources":"{

        "user1":"{value1}",
        "user2":"{value2}"
        }

Because the name of the object class for a User object is __ACCOUNT__, for the given example, the value of the jsonResourcesTag parameter is __ACCOUNT__=Resources.

Note: You must enter a value for this parameter only if the data from your target system is in JSON format. For more than one JSON tag, the values must be comma separated.

customParserClassName Enter the name of the class implementing the custom parser logic that you created while performing the procedure described in Implementing Custom Parsing.

Note: Enter a value for this parameter only if you are using a custom parser implementation.

4.1.5 Additional Configuration Parameters

All additional configuration IT resource parameters are target system specific. Table 4-7 lists the IT resource parameters related to target system configuration. The supported operation types for all the parameters listed in this table are CREATEOP, DELETEOP, SEARCHOP, UPDATEOP, ADDATTRIBUTE, and REMOVEATTRIBUTE. You must use the ADDATTRIBUTE or REMOVEATTRIBUTE operations only if you want to use a separate request payload for each child table add and remove operation. Otherwise, use the UPDATEOP or DELETEOP operations.

Note:

In this guide, attributes in an object class that can be managed only through a separate rest endpoint rather than the same endpoint of the base object class have been referred to as special attributes.

Table 4-7 Configuration IT Resource Parameters

Parameter Description

simpleMultivaluedAttributes

Enter a comma-separated list of simple multivalued attributes to be managed by the connector.

You must enter values for this parameter in the following format: OBJ_CLASS.ATTR_NAME

Sample value: "__ACCOUNT__=alias","__GROUP__=alias"

opTypes

Enter the HTTP operation type for each object class that is to be managed by the connector.

Values must be comma separated and in the following format: OBJ_CLASS.OPERATION=HTTP_OPERATION

In this format, OBJ_CLASS is the connector object class, OPERATION is the connector operation (for example, CreateOp, UpdateOp, or SearchOp), and HTTP_OP is the HTTP operation (for example, GET, PUT, or POST).

Sample value: "__ACCOUNT__.CREATEOP=POST","__ACCOUNT__.DELETEOP=DELETE","__GROUP__.CREATEOP=POST","__ACCOUNT__.alias.CREATEOP=POST","__ACCOUNT__.alias.UPDATEOP=POST","__ACCOUNT__.alias.DELETEOP=DELETE","__GROUP__.alias.CREATEOP=POST","__GROUP__.alias.UPDATEOP=POST","__GROUP__.alias.DELETEOP=DELETE","__ACCOUNT__.__GROUP__.CREATEOP=POST","__ACCOUNT__.__GROUP__.UPDATEOP=POST","__ACCOUNT__.__GROUP__.DELETEOP=DELETE"

relURIs

Enter the relative URLs for all operations of each object class.

Enter a value for this parameter in one of the following formats:

  • For attributes: OBJ_CLASS.OP=REL_URL

  • For special attributes: OBJ_CLASS.ATTR_NAME.OP=REL_URL

  • For attributes that have the same relative URL for multiple operations: OBJ_CLASS=REL_URL or OBJ_CLASS.ATTR_NAME=REL_URL

  • If you want to filter records based on a filter criteria during reconciliation, then use $(Filter Suffix)$. Here, replace $(Filter Suffix)$ with the filter criteria that you specify as part of the Filter Suffix attribute of the scheduled job.

  • If you have to pass the unique ID of the user as part of endpoint URL, use $(__UID__)$. Here, replace $(__UID__)$ with the unique ID of the user.

  • If you have to pass any attribute other than the unique ID of the user, then represent it in one of the following formats:
    • For a single-valued attribute: $(attr_name)$

      Here, replace $(attr_name)$ with the name of the attribute in the target system.

    • For an embedded object: $(OBJ_CLASS.ATTR_NAME)$

      For example, $(__GROUP__.id)$.

Sample value: "__ACCOUNT__.CREATEOP=/admin/directory/v1/users","__ACCOUNT__.SEARCHOP=/admin/directory/v1/users/$(Filter Suffix)$","__ACCOUNT__=/admin/directory/v1/users/$(__UID__)$","__GROUP__.CREATEOP=/admin/directory/v1/groups","__GROUP__=/admin/directory/v1/groups/$(__UID__)$","__GROUP__.SEARCHOP=/admin/directory/v1/groups/$(Filter Suffix)$","__ACCOUNT__.alias=/admin/directory/v1/users/$(__UID__)$/aliases","__ACCOUNT__.alias.DELETEOP=/admin/directory/v1/users/$(__UID__)$/aliases/$(alias)$","__GROUP__.alias.DELETEOP=/admin/directory/v1/groups/$(__UID__)$/aliases/$(alias)$","__ACCOUNT__.__GROUP__=/admin/directory/v1/groups/$(__GROUP__.id)$/members","__ACCOUNT__.__GROUP__.DELETEOP=/admin/directory/v1/groups/$(__GROUP__.id)$/members/$(__UID__)$","__ACCOUNT__.__GROUP__.SEARCHOP=/admin/directory/v1/groups?userKey=$(__UID__)$"

nameAttributes

Enter the name attribute for all object classes that are handled by the connector. This value specifies the mapping between the _NAME_ connector attribute and the corresponding target system attribute for each object class that the connector handles.

Format: OBJ_CLASS.ATTR_NAME

Note: All values in this parameter must be comma separated.

uidAttributes

Enter the __UID__ attribute for each object class that the connector handles. A __UID__ attribute is a target system attribute that uniquely identifies an account in the target system. This target system attribute name must be unique and need not be autogenerated.

Format: OBJ_CLASS.ATTR_NAME

In this format, OBJ_CLASS is the connector object class and ATTR_NAME is the name of the attribute that uniquely identifies an account in the target system.

Note: All values in this parameter must be comma separated.

statusAttributes

Enter the mapping between the _ENABLE_ connector attribute the target attribute that holds the status for each object class this connector handles.

Format: OBJ_CLASS.ATTR_NAME

Sample value: "__ACCOUNT__.suspended"

Note: All values in this parameter must be comma separated.

statusDisableValue

Enter the boolean value that indicates the value that must be sent to the target system during a disable operation.

Note: You must enter a value for this parameter only if the target system expects a different value for a disable operation, from what OIM sends by default.

Sample values: true or false or 0 or 1

statusEnableValue

Enter the boolean value that indicates the value that must be sent to the target system during an enable operation.

Note: You must enter a value for this parameter only if the target system expects a different value for an enable operation, from what OIM sends by default.

Sample values: true or false or 0 or 1

specialAttributeHandling

Enter the list of special attributes whose values must be sent to the target system in separate calls, one at a time. If you do not specify a value for this parameter, then the connector will send all values for a given special attribute in a single call.

Format: OBJ_CLASS.ATTR_NAME.OP=SINGLE

Note: All values in this parameter must be comma separated.

Sample value: "__ACCOUNT__.alias.CREATEOP=SINGLE","__GROUP__.alias.CREATEOP=SINGLE","__ACCOUNT__.alias.UPDATEOP=SINGLE","__GROUP__.alias.UPDATEOP=SINGLE","__ACCOUNT__.__GROUP__.CREATEOP=SINGLE","__ACCOUNT__.__GROUP__.UPDATEOP=SINGLE"

specialAttributeTargetFormat

Enter the format in which a special attribute is present in the target system.

Format: OBJ_CLASS.ATTR_NAME= TARGET_FORMAT

In this example, TARGET_FORMAT is the format in the format of the special attribute in the target system.

For example, consider the following target endpoint value:

{
                "kind": "admin#directory#aliases",
                "etag": etag,
                "aliases": [
                                        "kind": "admin#directory#alias",
                                        "id": string,
                                        "etag": etag,
                                        "primaryEmail": string,
                                        "alias": string
                                        ]
                }

In this example, the alias attribute is present as aliases.alias in the target system endpoint. Therefore, you must set the value of this parameter to __ACCOUNT__.alias=aliases.alias.

Sample value: "__ACCOUNT__.alias=aliases.alias","__GROUP__.alias=aliases.alias","__ACCOUNT__.__GROUP__=groups"

httpHeaderContentType

This parameter holds the content type expected by the target system in the header. The content type can be application/json.

httpHeaderAccept

This parameter holds the accept type expected by the target system in the header. The content type can be application/json.

sslEnabled

If the target system requires SSL connectivity, set the value of this parameter to true.

customHeaders

Enter any custom or additional header values that must be sent to the target system.

Format: HEADER_NAME1=VALUE1, HEADER_NAME2=VALUE2, . . . HEADER_NAMEn=VALUEn

customAuthHeaders

Enter any additional header values that must be sent to the target system only during authentication.

customPayload

Enter a comma-separated list of request payload formats for target system attributes that do not adhere to the standard JSON format.

Format: OBJ_CLASS.ATTRNAME.OP=PAYLOAD_FORMAT

Note: If you must pass the unique ID of the user as part of a custom payload, then represent it as $(__UID__)$. If you must pass the value of any other attribute, then represent it as $(ATTRIBUTE_NAME)$ .

Sample value: "__ACCOUNT__.__GROUP__.UPDATEOP={ \"user\": { \"id\": \"$(__UID__)$\"}, \"group\": { \"id\": \"$(id)$\" } }"

targetObjectIdentifier

Enter the name of the attribute used for identifying the required target object during reconciliation.

Format: OBJ_CLASS.ATTR_NAME=TARGET_OBJ_ATTR_NAME;VAL

passwordAttribute

Enter the name of the target system attribute that is mapped to the __PASSWORD__ attribute of the connector in OIM.

uriPlaceHolder

Enter a comma-separated list of key-value pairs for replacing place holders in the relURIs.

Format: KEY;VALUE

customAuthConfigParams

Enter any configuration parameters that you may use in the custom authentication class.

Format: PARAM_NAME1=VAL1,PARAM_NAME2=VAL2, . . . PARAM_NAMEn=VALn

customParserConfigParams

Enter any configuration parameters that you may use in the custom parser class.

Format: "PARAM_NAME1=VAL1,PARAM_NAME2=VAL2, . . . PARAM_NAMEn=VALn"

enableEmptyString

Enter a boolean string which indicates that an empty string must be sent to the target system, rather than a null value.

4.2 Performing Postinstallation Tasks

Postinstallation for the connector involves configuring Oracle Identity Manager, enabling logging to track information about all connector events, and configuring SSL. It also involves performing some optional configurations such as localizing the user interface.

4.2.1 Configuring Oracle Identity Manager

You must create a UI form and an application instance for the resource against which you want to perform reconciliation and provisioning operations. In addition, you must run the entitlement and catalog synchronization jobs.

Note:

Perform the procedures described in this section only if you are using the connector in the target resource configuration mode.

These procedures are described in the following sections:

4.2.1.1 Creating and Activating a Sandbox

You must create and activate a sandbox to begin using the customization and form management features. You can then publish the sandbox to make the customizations available to other users.

See Creating a Sandbox and Activating and Deactivating a Sandbox in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager.

4.2.1.2 Creating a New UI Form

See Creating Forms By Using the Form Designer in Oracle Fusion Middleware Administering Oracle Identity Manager for instructions on creating a new UI form. While creating the UI form, ensure that you select the resource object corresponding to the Generic REST connector that you want to associate the form with. In addition, select the Generate Entitlement Forms check box.

4.2.1.3 Associating the Form with the Application Instance

By default, an application instance is automatically created after you install the connector. The name of this application instance is the one that is specified as the value of the applicationInstanceName entry in the GenericRestConfiguration.groovy file. If you did not specify a value for the applicationInstanceName entry, then the application instance name will be the same as the value of the ITResourceDefName entry. You must associate this application instance with the form created in Creating a New UI Form.

See Managing Application Instances in Oracle Fusion Middleware Administering Oracle Identity Manager for instructions on modifying an application instance to associate it with a form.

After updating the application instance, you must publish it to an organization to make the application instance available for requesting and subsequent provisioning to users. However, as a best practice, perform the following procedure before publishing the application instance:

  1. In Identity System Administration, deactivate the sandbox.
  2. Log out of Identity System Administration.
  3. Log in to Oracle Identity Self Service and activate the sandbox that you deactivated in Step 1.
  4. In the Catalog, check for the Application Instance UI (form fields) and ensure that it appears correctly.
  5. Publish the application instance only if everything appears correctly. Otherwise, fix the issues and then publish the application instance.

    See Publishing an Application Instance to Organizations in Oracle Fusion Middleware Administering Oracle Identity Manager.

4.2.1.4 Publishing a Sandbox

Before you publish a sandbox, perform the following procedure as a best practice to validate all sandbox changes made till this stage as it is hard to revert changes once a sandbox is published:
  1. In Identity System Administration, deactivate the sandbox.
  2. Log out of Identity System Administration.
  3. Log in to Identity Self Service using the xelsysadm user credentials and then activate the sandbox that you deactivated in Step 1.
  4. In the Catalog, ensure that the Generic REST application instance form appears with correct fields.
  5. Publish the sandbox. See Publishing a Sandbox in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager.

4.2.1.5 Harvesting Entitlements and Sync Catalog

To harvest entitlements and sync catalog:
  1. Run the scheduled jobs for lookup field synchronization discussed in Scheduled Job for Lookup Field Synchronization.
  2. Run the Entitlement List scheduled job to populate Entitlement Assignment schema from child process form table.
  3. Run the Catalog Synchronization Job scheduled job.

    See Also:

    Predefined Scheduled Tasks in Oracle Fusion Middleware Administering Oracle Identity Manager

4.2.2 Managing Logging for the Generic REST Connector

You can set a log level based on Oracle Java Diagnostic Logging and enable logging in the Oracle WebLogic Server.

The following topics contain detailed information:

4.2.2.1 Understanding Log Levels

Oracle Identity Manager uses Oracle Java Diagnostic Logging (OJDL) for logging. OJDL is based on java.util.logger. To specify the type of event for which you want logging to take place, you can set the logs to one of the following available levels:

  • SEVERE.intValue()+100

    This level enables logging of information about fatal errors.

  • SEVERE

    This level enables logging of information about errors that might allow Oracle Identity Manager to continue running.

  • WARNING

    This level enables logging of information about potentially harmful situations.

  • INFO

    This level enables logging of messages that highlight the progress of the application.

  • CONFIG

    This level enables logging of information about fine-grained events that are useful for debugging.

  • FINE, FINER, FINEST

    These levels enable logging of information about fine-grained events, where FINEST logs information about all events.

These log levels are mapped to ODL message type and level combinations as shown in Table 4-8.

Table 4-8 Log Levels and ODL Message Type:Level Combinations

Log Level ODL Message Type:Level

SEVERE.intValue()+100

INCIDENT_ERROR:1

SEVERE

ERROR:1

WARNING

WARNING:1

INFO

NOTIFICATION:1

CONFIG

NOTIFICATION:16

FINE

TRACE:1

FINER

TRACE:16

FINEST

TRACE:32

The configuration file for OJDL is logging.xml, which is located at the following path:

DOMAIN_HOME/config/fmwconfig/servers/OIM_SERVER/logging.xml

Here, DOMAIN_HOME and OIM_SERVER are the domain name and server name specified during the installation of Oracle Identity Manager.

4.2.2.2 Enabling Logging

To enable logging in Oracle WebLogic Server:

  1. Edit the logging.xml file as follows:

    1. Add the following blocks in the file:

      <log_handler name='genericrest-handler' level='[LOG_LEVEL]' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
      <property name='logreader:' value='off'/>
           <property name='path' value='[FILE_NAME]'/>
           <property name='format' value='ODL-Text'/>
           <property name='useThreadName' value='true'/>
           <property name='locale' value='en'/>
           <property name='maxFileSize' value='5242880'/>
           <property name='maxLogSize' value='52428800'/>
           <property name='encoding' value='UTF-8'/>
         </log_handler>
      
      <logger name="ORG.IDENTITYCONNECTORS.GENERICREST" level="[LOG_LEVEL]" useParentHandlers="false">
           <handler name="genericrest-handler"/>
           <handler name="console-handler"/>
         </logger>
      
    2. Replace both occurrences of [LOG_LEVEL] with the ODL message type and level combination that you require. Table 4-8 lists the supported message type and level combinations.

      Similarly, replace [FILE_NAME] with the full path and name of the log file in which you want log messages specific to connector operations to be recorded.

      The following blocks show sample values for [LOG_LEVEL] and [FILE_NAME] :

      <log_handler name='genericrest-handler' level='NOTIFICATION:1' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
      <property name='logreader:' value='off'/>
           <property name='path' value='/<%OIM_DOMAIN%>/servers/oim_server1/logs/genericrestLogs.log>"
           <property name='format' value='ODL-Text'/>
           <property name='useThreadName' value='true'/>
           <property name='locale' value='en'/>
           <property name='maxFileSize' value='5242880'/>
           <property name='maxLogSize' value='52428800'/>
           <property name='encoding' value='UTF-8'/>
         </log_handler>
       
      <logger name="ORG.IDENTITYCONNECTORS.GENERICREST" level="NOTIFICATION:1" useParentHandlers="false">
           <handler name="genericrest-handler"/>
           <handler name="console-handler"/>
         </logger>
      

    With these sample values, when you use Oracle Identity Manager, all messages generated for this connector that are of a log level equal to or higher than the NOTIFICATION:1 level are recorded in the specified file.

  2. Save and close the file.

  3. Set the following environment variable to redirect the server logs to a file:

    For Microsoft Windows:

    set WLS_REDIRECT_LOG=FILENAME
    

    For UNIX:

    export WLS_REDIRECT_LOG=FILENAME
    

    Replace FILENAME with the location and name of the file to which you want to redirect the output.

  4. Restart the application server.

4.2.3 Configuring SSL

You must configure SSL to secure data communication between Oracle Identity Manager and your target system.

To configure SSL:
  1. Obtain the SSL public key certificate for the REST-based target system.
  2. Copy the public key certificate of the REST-based target system to the computer hosting Oracle Identity Manager.
  3. Run the following keytool command to import the target system certificate into the Oracle WebLogic Server keystore:
    keytool -import -keystore KEYSTORE_NAME -storepass PASSWORD -file CERT_FILE_NAME -alias ALIAS
    In this command:
    • KEYSTORE_NAME is the full path and name of the DemoTrust keystore.

    • PASSWORD is the password of the keystore.

    • CERT_FILE_NAME is the full path and name of the certificate file.

    • ALIAS is the target system certificate alias.

    The following is a sample value for this command:

    keytool -import -keystore WEBLOGIC_HOME/server/lib/DemoTrust.jks -storepass DemoTrustKeyStorePassPhrase —file /home/target.cert —alias serverwl

    Note:

    • Change the parameter values passed to the keytool command according to your requirements. Ensure that there is no line break in the keytool arguments

    • Ensure that the system date for Oracle Identity Manager is in sync with the validity date of the SSL certificate to avoid any errors during SSL communication.

4.2.4 Localizing Field Labels in UI Forms

You can localize UI form field labels by creating and using a file containing localized versions for your target system fields.

To localize field label that you add to in UI forms:
  1. Create a properties file (for example, GR_ja.properties) containing localized versions for the column names in your target system (to be displayed as text strings for GUI elements and messages in Identity System Administration and Identity Self Service).
  2. Log in to Oracle Enterprise Manager.
  3. In the left pane, expand Application Deployments and then select oracle.iam.console.identity.sysadmin.ear.
  4. In the right pane, from the Application Deployment list, select MDS Configuration.
  5. On the MDS Configuration page, click Export and save the archive to the local computer.
  6. Extract the contents of the archive, and open the following file in a text editor:

    SAVED_LOCATION\xliffBundles\oracle\iam\ui\runtime\BizEditorBundle_en.x

  7. Edit the BizEditorBundle.xlf file in the following manner:
    1. Search for the following text:
      <file source-language="en"
      original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf"
      datatype="x-oracle-adf">
    2. Replace with the following text:
      <file source-language="en" target-language="LANG_CODE"
      original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf"
      datatype="x-oracle-adf">

      In this text, replace LANG_CODE with the code of the language that you want to localize the form field labels. The following is a sample value for localizing the form field labels in Japanese:

      <file source-language="en" target-language="ja"
      original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf"
      datatype="x-oracle-adf">
    3. Search for the application instance code. This procedure shows a sample edit for Generic Rest application instance. The original code is:
      <trans-unit id="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.UD_GENERIC_NAME_GIVEN_NAME__c_description']}">
      <source>Name Givenname</source>
      <target/>
      </trans-unit>
      <trans-unit id="sessiondef.oracle.iam.ui.runtime.form.model.GRGAForm1.entity.GRGAForm1EO.UD_GENERIC_NAME_GIVEN_NAME__c_LABEL">
      <source>Name Givenname</source>
      <target/>
    4. Open the properties file created in Step 1 and get the value of the attribute, for example, global.udf.UD_GENERIC_NAME_GIVEN_NAME = \u4567d.
    5. Replace the original code shown in Step c with the following:
      <trans-unit id="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.UD_GENERIC_NAME_GIVEN_NAME__c_description']}">
      <source>Name Givenname</source>
      <target>\u4567d</target>
      </trans-unit>
      <trans-unit id="sessiondef.oracle.iam.ui.runtime.form.model.GRGAForm1.entity.GRGAForm1EO.UD_GENERIC_NAME_GIVEN_NAME__c_LABEL">
      <source>Name Givenname</source>
      <target>\u4567d</target>
    6. Repeat Steps 7.a through 7.d for all attributes of the process form.
    7. Save the file as BizEditorBundle_LANG_CODE.xlf. In this file name, replace LANG_CODE with the code of the language to which you are localizing. Sample file name: BizEditorBundle_ja.xlf.
  8. Repackage the ZIP file and import it into MDS.

    Note:

    See Deploying and Undeploying Customizations in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager for more information about exporting and importing metadata files
  9. Log out of and log in to Oracle Identity Manager.

4.2.5 Clearing Content Related to Connector Resource Bundles from the Server Cache

When you deploy the connector, the resource bundles are copied from the resources directory on the installation media into the Oracle Identity Manager database. Whenever you add a new resource bundle to the connectorResources directory or make a change in an existing resource bundle, you must clear content related to connector resource bundles from the server cache.

To clear content related to connector resource bundles from the server cache you can either restart Oracle Identity Manager or run the PurgeCache utility. The following is the procedure to clear the server cache by running the PurgeCache utility:

  1. In a command window, switch to the OIM_HOME/server/bin directory.
  2. Enter one of the following commands:
    • On Microsoft Windows: PurgeCache.bat All

    • On UNIX: PurgeCache.sh All

    When prompted, enter the user name and password of an account belonging to the SYSTEM ADMINISTRATORS group. In addition, you are prompted to enter the service URL in the following format:

    t3://OIM_HOST_NAME:OIM_PORT_NUMBER

    In this format:

    • Replace OIM_HOST_NAME with the host name or IP address of the Oracle Identity Manager host computer.

    • Replace OIM_PORT_NUMBER with the port on which Oracle Identity Manager is listening.

    You can use the PurgeCache utility to purge the cache for any content category.