Connecting SailPoint and Oracle HCM Cloud SaaS
To connect SailPoint with Oracle HCM Cloud, perform the following tasks:
Adding the Source in SailPoint
To connect to SailPoint, perform the following steps. Once the connection is made, you can configure it to meet your company's needs.
Important
By default, the provisioning feature is disabled, and the connector only supports read-only operations. To support provisioning operations, you must manually enable the feature in the source configuration.
To configure a new source:
- Sign in to SailPoint.
- Go to Admin > Connections > Sources.
- Select Create New.
- Search for the connector by entering the name in the search box, and then select Configure.
- In the Source Name field, enter a unique and descriptive name for your source. Source names cannot exceed 128 characters.
- In the Description field, provide additional details about the source to help distinguish it from similar sources. This field allows a maximum of 2,000 characters.
- In the Source Owner field, begin typing the name of an owner. Matches appear after you type two or more letters. For more information, refer to Assigning a Source Owner.
- (Optional) Select a governance group to grant its members source or role sub-admin level oversight of the source and its access. For more information, refer to Creating and Managing Governance Groups.
- If this source represents a primary system containing your organization's personnel records, select the Authoritative Source checkbox. For more information, refer to Creating Identity Profiles.
- Select Continue. The source is created, and you are navigated to the Source Setup > Base Configuration page. Continue to configure your connected source there.
Base Configuration
Provide the base configuration parameters. Information you entered in the Create New Source dialog is automatically entered into the fields in the Base Configuration page. You can edit this information if necessary.
- Enter a unique name and description for the source.
-
In the Source Owner dropdown list, select the identity that owns this source.
- To find a source owner, begin entering their name.
-
(Optional) If enabled for your organization, select the Use a Credential Provider checkbox to manage the source's authentication using a credential provider.
Note
To add a credential provider, go to Admin > Connections > Credential Providers. For more information about credential providers, refer to Credential Providers.
-
Configure the authentication to allow SailPoint to connect to the source. Refer to Connection Settings for more information.
-
(Optional) In the Governance Group for Source Management dropdown list, select a governance group to associate with this source. For more information about governance groups, refer to Associating Governance Groups with a Source.
-
(Optional) Choose whether to enable or disable provisioning for the source. Provisioning is disabled by default.
-
Enable Provisioning - Set the toggle to Enabled to allow the source to create, update, and deactivate accounts in the connected source system.
-
Disable Provisioning - Set the toggle to Disabled to disable provisioning for the source. Disabling provisioning will prevent the creation, updating, or deactivating of accounts on this source.
-
-
Select Save.
Connection Settings
Use the settings on this page to create a secure, direct connection to the source. These instructions also describe how to configure an export file for use by the Oracle HCM source.
- Go to Connection Settings.
- In File Transport, SFTP mode will be used for accessing the file.
- Enter the Host name where the file is located.
- Enter the Port number that will be used to establish a connection.
- Enter the Username to use during the file transfer.
-
For Authentication Type, select Basic or Public Key. Basic is the default.
-
Basic
Enter the Password for the user to use during the file transfer.
-
Public Key
Provide the following details:
- SSH Private Key - Enter the private key content to use to establish a connection. Paste the full private key in PEM or OpenSSH format. Do not enter a file path.
- (Optional) SSH Private Key Passphrase - Enter the passphrase for the private key.
Note
The public key that matches this private key must already be installed for the SFTP account. SSH public key authentication is separate from the PGP keys used to sign or decrypt worker files.
-
-
Provide the fully qualified paths to the Oracle HCM file exports in the FTP server. This enables the connector to differentiate between New Hires and Rehires. It also enables the source to populate data points which enable it to trigger the Joiner, Mover, and Leaver workflows more effectively.
For example:
- In the Active Workers File Path field, enter the fully qualified path of the Active Workers CSV extract file. The first line of the file must contain the column headers.
- In the Future Workers File Path field, enter the fully qualified path of the Future Workers CSV extract file. The first line of the file must contain the column headers.
- In the Terminated Workers File Path field, enter the fully qualified path of the Terminated Workers CSV extract file. The first line of the file must contain the column headers.
-
Select Disable Integrity Check to skip the integrity check while establishing the connection to the source. This needs to be done when a PGP public key is not available to sign the file.
-
Enter the PGP Public Key generated at the Oracle Fusion HCM system in the same format as shown below:
-
Enter the PGP Private Key generated at the Oracle Fusion HCM system in the same format as shown below:
-
Enter the PGP Private Key Password generated at the Oracle Fusion HCM system.
-
Enter the unique end point URL to connect to the Oracle Fusion HCM managed system.
For example:
Note
SailPoint recommends using HTTPS for a secured connection.
-
In API Authentication Settings, for Authentication Type, select Basic Authentication or OAuth 2.0 JWT User Assertion. Basic Authentication is the default.
Note
Existing basic authentication configurations continue to work without changes.
-
Basic Authentication
Enter the Username and Password that connects with the end point database.
-
OAuth 2.0 JWT User Assertion
Note
One signing certificate signs both the user assertion and the client assertion.
For Oracle-side setup, refer to Configuring OAuth 2.0 JWT User Assertion.
Provide the following details:
- Username - The username is the subject of the user assertion. Enter the identity-domain Username. Use that value when the username and email differ.
- OAuth Token URL - Enter the Oracle token endpoint that receives the user assertion and the client assertion.
- OAuth Client ID - Enter the Client ID from the confidential application OAuth configuration page. Do not use the Fusion service parameter
IDCS_CONNECTOR_CLIENT_ID. - OAuth Scope - Enter the Fusion Applications client scope. Copy it from the confidential application Resources table, or from the Fusion service parameter
IDCS_CONNECTOR_CLIENT_SCOPE. Scope values differ by instance. Do not rebuild the string from a screenshot. Do not use the Spectra / Oracle BOSS scopeurn:opc:resource:fusion::boss/. - OAuth Audience - Enter the audience expected by Oracle Identity Cloud Service. The audience is the JWT
audclaim, normallyhttps://identity.oraclecloud.com/. It is separate from the Fusion primary audience used inside the scope. - Signing Key ID - Enter the certificate alias (
kid). - Signing Private Key - Enter the PEM-formatted private key.
- (Optional) Private Key Passphrase - If the signing private key is encrypted, enter its passphrase.
-
-
Enable Via API Authentication if you want to use the API authentication credentials you provide instead of the SFTP server authentication.
- Select Enter.
Configuring OAuth 2.0 JWT User Assertion
Follow Configure OAuth to Access Oracle Fusion Cloud Applications REST APIs, section Configure OAuth Using User Assertion Grant Type.
Note
Do not change the name of the OAuth token issuer.
Identifying the Identity Domain and Token URL
- Sign in to the OCI Identity and Access Management console as an administrator of the identity domain associated with the Fusion Applications instance.
- Open that domain and copy the Domain URL from the domain details page.
- The OAuth Token URL is the Domain URL plus
/oauth2/v1/token. The same endpoint is listed inhttps://<domain-url>/.well-known/idcs-configuration.
Registering the Confidential Application
- In that identity domain, open Integrated applications and select Add application.
- Select Confidential Application and select Launch workflow.
- Enter an application name. Skip the other fields and select Submit.
- In OAuth configuration, select Edit OAuth, then Configure this application as a client now.
- Under Authorization, select only JWT assertion.
- Under Client type, select Trusted. A trusted client can request access tokens with a signed JWT assertion.
- Select Import certificate and import the public signing certificate that matches the private key stored in SailPoint. Set the certificate alias to the JWT Key Identifier (
kid). That alias is the connector Signing Key ID. - Under Token issuance policy, set Authorized resources to specific.
- Turn on Add resources. Select Add scope, select Oracle Applications Cloud (Fusion), and add the Fusion client scope described in Generating the OAuth Scope. Remove any resource that is not required.
- From the Actions menu, select Activate, then Activate application.
- On the OAuth configuration page, copy the Client ID. That value is the connector OAuth Client ID. Do not use the Fusion service parameter
IDCS_CONNECTOR_CLIENT_ID.
Also import the same public certificate in the same domain under Security > Trusted partner certificates, using the same alias as the JWT kid. Oracle stores one certificate on the confidential application. The connector uses the matching private key to sign both the user assertion and the client assertion.
Generating the OAuth Scope
The connector OAuth Scope is the Fusion Applications client scope. Do not use the Spectra / Oracle BOSS scope (urn:opc:resource:fusion::boss/).
- In the same identity domain, open Oracle Cloud Services and select Oracle Applications Cloud (Fusion).
- Go to OAuth configuration > Configure application APIs that need to be OAuth protected > Scopes.
-
Copy the primary audience. Oracle shows it in one of these forms:
urn:opc:resource:fa:instanceid=<fusion-instance-id>urn:opc:resource:faaas:fa:<pod-system-name>
-
Copy the resource scope. For this connector, use
urn:opc:resource:consumer::all. -
Concatenate the primary audience and the resource scope with no space and no extra slash. For example:
-
Add that exact string on the confidential application Resources list.
- Enter the same string in the connector OAuth Scope field. Copy it from the Resources table, or from the Fusion service parameter
IDCS_CONNECTOR_CLIENT_SCOPE. Scope values differ by instance. Do not rebuild the string from a screenshot.
OAuth Audience is the JWT aud claim, normally https://identity.oraclecloud.com/. It is separate from the Fusion primary audience used inside the scope.
Mapping Oracle Values to Connector Fields
| Oracle Value | Connector Field |
|---|---|
Domain URL + /oauth2/v1/token |
OAuth Token URL |
| Confidential Application Client ID | OAuth Client ID |
Primary audience concatenated with urn:opc:resource:consumer::all |
OAuth Scope |
https://identity.oraclecloud.com/ |
OAuth Audience |
Certificate alias (kid) |
Signing Key ID |
| Matching private key | Signing Private Key |
| Identity-domain Username | Username (user assertion subject) |
The API username must be the identity-domain Username. Use that value when the username and email differ.
Aggregation Settings
For more information about aggregation, refer to Loading Account Data.
Use the settings available in Aggregation Settings to adjust aggregation processes as required for your organization.
Note
- When full aggregation is triggered, the connector always reads data from CSV files.
- Past and Future offsets for full aggregation are configured under Filter Condition when generating the extract. For more information about filter conditions, refer to the Oracle HCM Cloud Export File Guide.
- The Past Termination Offset and Future Offset values are applicable only when delta aggregation is triggered.
-
Enable aggregation options as per your requirements:
- Aggregate Employes will aggregate employee type workers.
- Aggregate Contractors will aggregate contractor type workers.
- Aggregate Pending Workers will aggregate pending worker type workers.
- Aggregate Non Workers will aggregate non worker type workers.
Note
Selection of at least one person type is mandatory
-
Enter the Page Size as the number of records to aggregate in a single page when iterating over large datasets, from 1 to 499 records. The default is 100 records.
- Enable Delta Aggregation to aggregate accounts that have changed since the last execution. For more information about supported ATOM feeds, refer to Delta Aggregation via ATOM Feeds.
- Configure the Delta Aggregation Page Size as the number of records to aggregate in a single page when iterating over large datasets, from 1 to 499 records. The default is 100 records.
-
Enable Delta Aggregation Via Worker CSV Extractor to aggregate delta accounts by using the Worker CSV Extractor.
Note
Selecting this option configures the connector to read from the delta file paths specified below. When disabled, ATOM Feeds API is used by default.
- Enter the fully qualified file path and file name of the delta Active Workers CSV extract file in Delta Active Workers File Path.
- Enter the fully qualified file path and file name of the delta Future Workers CSV extract file in Delta Future Workers File Path.
- Enter the fully qualified file path and file name of the delta Terminated Workers CSV extract file in Delta Terminated Workers File Path.
-
Enter the Past Termination Offset as the number of past days to aggregate terminated workers. For example, the number 14 will aggregate workers whose termination date is within a 14 day range in the past.
Note
This date offset setting applies only to single account aggregation and delta aggregation by using the ATOM Feeds API. It does not apply if Delta Aggregation Via Worker CSV Extractor is enabled.
-
Enter the Future Offset as the number of days in advance to aggregate future hires and terminations. For example, the number 14 will aggregate workers 14 days in advance of their joining date.
Note
This date offset setting applies only to single account aggregation and delta aggregation by using the ATOM Feeds API. It does not apply if Delta Aggregation Via Worker CSV Extractor is enabled.
-
Define Retryable Errors, which are error messages from the Oracle Fusion HCM system that, when returned, tell the connector to retry failed operations. Enter the error message in the field provided and press Enter to add it to the list.
- Enter the Connection Timeout as the duration of inactivity the connector allows before terminating its connection to the source. The default is 1 minute.
- Select Save.
Delta Aggregation via ATOM Feeds
The Oracle HCM Cloud SaaS connector supports delta aggregation for accounts. Delta aggregation aggregates accounts that have changed since the last aggregation.
Note
When Delta Aggregation Via Worker CSV Extractor is disabled, the connector uses the Oracle HCM ATOM Feeds API for delta aggregation. For more information about aggregation settings, refer to Aggregation Settings.
Supported ATOM Feeds
When delta aggregation uses the ATOM Feeds API, the Oracle HCM Cloud connector supports the following Atom feeds:
| Atom Feed | Feed Code | Description |
|---|---|---|
| New Hire | newhire |
Triggered when an employee is hired, a terminated employee is rehired, or a future-dated new hire is created. |
| Employee Assignment Update | empassignment |
Triggered when assignment, salary, or manager information is created, updated, corrected, or deleted, or when assignment flexfields are updated. |
| Employee Update | empupdate |
Triggered when person details such as name, email, phone, address, national identifier, passport, citizenship, religion, or flexfields are created, updated, or corrected. |
| Termination | termination |
Triggered when an employee is terminated. |
| Person Work Relationship Cancelled | cancelworkrelship |
Triggered when a work relationship is cancelled. |
| Employee Work Relationship Updated | workrelshipupdate |
Triggered when the work relationship of an active employee is updated, including changes to the start date and other configured attributes. |
Attribute Mapping
The Oracle HCM Cloud SaaS connector uses a combination of REST API, Atom Feeds, and File Export to read data from the Oracle Fusion HCM source. The attribute name in the Oracle File export can be anything you choose. However, the parameter names in the REST API and Atom Feed are rigidly configured. To keep all the information in sync, you must map the attributes properly.
Note
For a list and correlation information of the API parameters, refer to Employees for account attributes and Assignments for entitlement attributes in the Oracle documentation. The linked documents are not maintained by SailPoint and are subject to change without notice.
Caution
Failure to properly map an attribute will result in data not being fetched for the specified attribute. This may result in inconsistent behavior between full, delta, and single account aggregation processes.
For example, the three attribute names in the following list all describe the same account attribute. In this example, they describe a given worker's start date. However, it might go by a different attribute name in the Workers Attribute column or the Atom Feeds column.
HIRE_DATE- The worker's start date according to the CSV file/Schema Attribute for full aggregation processes.workRelationships.StartDate- The worker's start date according to the Workers Attribute for single account aggregation.DateStart- The worker's start date according to the Atom Feeds Attribute for delta aggregation processes.
In the following table, each row represents a single mapped account attribute. You configure which attribute name in each account data file that the connector uses for the attribute. With the information provided earlier, you can map the attribute like it is in the first row. Two other attributes, PERSON_NUMBER and WORKER_TYPE, are provided as additional examples.
| CSV/Schema Attribute | Workers Attribute | Atom Feeds Attribute |
|---|---|---|
| HIRE_DATE | workRelationships.StartDate | DateStart |
| PERSON_NUMBER | PersonNumber | PersonNumber |
| WORKER_TYPE | workRelationships.WorkerType | PeriodType |
To map an attribute:
- In the CSV/Schema Attribute field, enter the attribute's name in the CSV file extracted from the Oracle HCM source.
- In the Workers Attribute field, enter the corresponding Workers API attribute name of the extract column header.
- In the ATOM Feeds Attribute field, enter the corresponding Atom feeds API attribute name of the extract column header.
- (Optional) Select Add Another to add another row to the list to map an additional attribute. Repeat steps 1-3 as needed for each attribute.
- Select Save.
Note
If you want to map an attribute, but there is no corresponding parameter in either the Workers Attribute or Atom Feeds available from Oracle, reach out to Oracle's support team create a new parameter.
JSON Path Mapping
Warning
The PERSON_NUMBER attribute should not be updated in the JSON Path Mapping.
Full Aggregation
The Oracle HCM Cloud SaaS connector will aggregate the attributes associated with the primary work relationship and corresponding assignments based on the dates. In order to change this behavior, specify the attribute value as specified below in JSON Path Mapping. This will enable the customer to fetch the work relationship and Job Information in accordance with your requirements.
The following API response is an example of how to specify the JSON path query for the workRelationships attribute:
"workRelationships": [
{
"PeriodOfServiceId": 300000034528102,
"LegislationCode": "IN",
"WorkerType": "E",
"PrimaryFlag": true,
"StartDate": "2022-08-11",
"assignments": [
{ "AssignmentId": 300000034528108,
… }
]
},
"PeriodOfServiceId": 300000034528226,
"LegislationCode": "IN",
"WorkerType": "N",
"PrimaryFlag": false,
"StartDate": "2022-08-23",
"assignments": [
{"AssignmentId": 300000034528233,
… }
]
Case 1
If concurrent workRelationships are active and you want to fetch the attribute from primary workRelationships such as PeriodOfServiceId, then the JSON path for attribute mapping is:
Case 2
If concurrent workRelationships are active and you want to fetch the attribute from secondary workRelationships such as PeriodOfServiceId, then the JSON path for attribute mapping is:
Case 3
If multiple workRelationships attributes are active, the API response looks like the following:
"workRelationships": [
{
"PeriodOfServiceId": 300000034528102,
"LegislationCode": "IN",
"WorkerType": "E",
"PrimaryFlag": true,
"StartDate": "2022-08-11",
"assignments": [
{"AssignmentId": 300000034528108,
"AssignmentType": "E",
"PrimaryFlag": true,
"PrimaryAssignmentFlag": true,
… }
]
},
"PeriodOfServiceId": 300000034528226,
"LegislationCode": "IN",
"WorkerType": "N",
"PrimaryFlag": false,
"StartDate": "2022-08-23",
"assignments": [
{"AssignmentId": 300000034528233,
"AssignmentType": "P",
"PrimaryFlag": false,
"PrimaryAssignmentFlag": true,
… }
]
If you want to fetch the attribute from assignments which is primary and belongs to a particular AssignmentType such as AssignmentId, then the JSON path for attribute mapping is:
workRelationships..assignments[?(@.PrimaryAssignmentFlag==true && @.AssignmentType=='E' && @.PrimaryFlag==true)].AssignmentId
- Select Add Another to add a new entry.
- In each row, enter a CSV/Schema Attribute name, its corresponding JSON Path, and ATOM Feeds Attribute.
- (Optional) Select Add Another to add more rows to the list.
- Select Save.
Delta Aggregation
The Oracle ATOM feed API response is divided into the following parts:
- Context
- Changed Attributes
By default, the Oracle HCM Cloud Connector fetches the information from the Changed Attributes section. If you want to change this behavior, the JSON Path mapping section can be used. For example,
Context" : [ {
"PersonNameId" : "300000040265075",
"PersonName" : " 7939first",
"PersonNumber" : "7939",
"WorkEmail" : "test@gmail.com",
"PrimaryPhoneNumber" : "",
"PersonId" : "300000040265074",
"PeriodType" : "E",
"WorkerType" : "EMP",
"DMLOperation" : "UPDATE",
} ],
"Changed Attributes" : [ {
"OrderName" : {
"old" : "test",
"new" : "test 7939first"
}
}, {
"ListName" : {
"old" : "test",
"new" : "test1"
}
}, {
"FirstName" : {
"old" : null,
"new" : "7939first"
}
}, {
"FullName" : {
"old" : "test",
"new" : "7939first"
}
},
}, {
"Title" : {
"old" : null,
"new" : "MR."
}
}, {
"MiddleNames" : {
"old" : null,
"new" : "7939middle"
}
} ]
}]
In the following example, the PersonName attribute is not available in Changed Attributes. Therefore, the connector will not fetch the value out of the box. To fetch it, you can specify the following JSON path.
Review and Test
Perform a test to confirm the connection to SailPoint.
- Go to Review and Test.
-
Confirm that the entries in each field are correct.
If you note any mistakes, return to the section and make corrections.
-
Select Test Connection.
SailPoint Application Onboarding
SailPoint application onboarding enables you to easily onboard new applications and create sources following the successful onboarding of a discovery source. To use this feature, continue to Discovered Applications in the SailPoint user interface.
For more information, refer to Application Onboarding in the SailPoint SaaS documentation.
Documentation Feedback
Feedback is provided as an informational resource only and does not form part of SailPoint’s official product documentation. SailPoint does not warrant or make any guarantees about the feedback (including without limitation as to its accuracy, relevance, or reliability). All feedback is subject to the terms set forth at https://developer.sailpoint.com/discuss/tos.













