Ident_Salesforce_Realtime
Sample workflow to provision a Salesforce directory from a DirX Identity target system.
A provisioning workflow transfers the account, group and membership changes that DirX Identity has calculated for a target system into the connected system, and acknowledges the result back into the Identity Store. It is the workflow that executes what privilege resolution has decided: when a user gains or loses a privilege, the resolution writes the resulting account or membership change into the target system subtree of the Identity Store, and this workflow applies that change to the connected system.
The workflow processes single requests as they arrive, so it reflects changes with little delay. Use the corresponding validation workflow to detect changes that were made in the connected system outside of DirX Identity.
Ident_Salesforce_Realtime is the provisioning workflow for connected systems of type Salesforce. It keeps Salesforce users, contacts, accounts, profile assignments, permission-set assignments, and memberships synchronized with the corresponding target system subtree in the Identity Store. The sample parameters identify the target system as tsresource sample-ts in cluster My-Company.
The workflows in this reference are delivered as factory data and are loaded into the Connectivity configuration database during the initial configuration. They are samples: use the Identity Manager to copy a workflow into your own scenario and adapt the copy. Do not change the delivered objects, because a product update can replace them.
At a Glance
Name |
|
Category |
Target Realtime / Salesforce |
Technology |
Java-based real-time workflow |
LDAP object class |
|
Workflow type |
|
Connected system / controller type |
|
Configuration wizard |
|
Active in the factory data |
FALSE |
Factory data version |
8.4 |
Factory data path |
|
Prerequisites
-
A connected directory of type
Salesforce, with the bind profileAdminset to a Salesforce account that may create, modify, and delete the users and related objects that this workflow manages. -
SSL is switched on for the
TSport, so the Java-based Server must trust the certificate that is presented by the Salesforce endpoint. -
A target system of type
Salesforcein the Identity Store that is linked to that connected directory, and a completed initial load, so that the target system subtree reflects the current Salesforce content. -
The Java-based Server that runs the workflow must be able to reach both Salesforce and the Identity Store.
Workflow and Activities
| Activity | Type | Component description | Description | Ports |
|---|---|---|---|---|
|
|
|
Error Activity |
|
|
|
|
Join activity for the provision-to-TS workflow |
|
Ports
| Activity | Port | Component description | Connector | Connected directory | Bind profile | SSL |
|---|---|---|---|---|---|---|
|
|
|
|
- |
- |
not set |
|
|
|
|
- |
- |
not set |
|
|
|
|
|
|
not set |
|
|
|
|
- |
- |
not set |
|
|
|
|
|
|
TRUE |
Channels
| Channel | Description | Reference type | Delta type |
|---|---|---|---|
|
Channel for members |
OneToOne |
SearchAttributes |
|
Channel for Salesforce Accounts |
OneToOne |
SearchAttributes |
|
Channel for Salesforce Contacts |
OneToOne |
SearchAttributes |
|
Channel for groups (Salesforce PermissionSets) |
OneToOne |
SearchAttributes |
|
Channel for groups (Salesforce Profiles) |
OneToOne |
SearchAttributes |
|
Channel for accounts (Salesforce Users) |
OneToOne |
SearchAttributes |
| Channel | Description | Reference type | Delta type |
|---|---|---|---|
|
Channel for members |
OneToOne |
SearchAttributes |
|
Channel for setting a password |
OneToOne |
SearchAttributes |
|
Channel for Salesforce Accounts |
OneToOne |
SearchAttributes |
|
Channel for Salesforce Contacts |
OneToOne |
SearchAttributes |
|
Channel for groups (Salesforce PermissionSets) |
OneToOne |
SearchAttributes |
|
Channel for groups (Salesforce Profiles) |
OneToOne |
SearchAttributes |
|
Channel for accounts (Salesforce Users) |
OneToOne |
SearchAttributes |
Configuration Parameters
| Parameter | Default value |
|---|---|
|
P0Y0M4DT0H0M0S |
|
My-Company |
|
sample-ts |
| Parameter | Default value |
|---|---|
|
|
|
3 |
|
P0Y0M1DT0H0M0S |
|
P0Y0M0DT2H0M0S |
| Parameter | Default value |
|---|---|
|
dxmPassword |
| Parameter | Default value |
|---|---|
|
Salesforce |
|
3 |
|
P0Y0M1DT0H0M0S |
|
P0Y0M0DT0H30M0S |
| Parameter | Default value |
|---|---|
|
event |
|
userPassword |
|
MQSERIES |
|
false |
| Parameter | Default value |
|---|---|
|
userPassword |
| Parameter | Default value |
|---|---|
|
userPassword |
| Parameter | Default value |
|---|---|
|
Password |
A Java-based real-time workflow runs as a permanently loaded configuration in the Java-based Server (IdS-J). It is triggered by a request or an event rather than by a schedule. Each workflow consists of activities; an activity opens one port per system it talks to, and each port uses a connector to reach that system.
Most provisioning workflows contain a join activity that performs the actual work and an error
activity that receives requests which still fail after all retries and sends a notification about
them. The retrylimit, waitbeforeretry and timeout parameters of an activity control how often
and how long a failed request is retried before it is handed to the error activity.
The event port publishes change events over JMS, and the notify port sends e-mail notifications.
Neither port is bound to a connected directory.
The join activity does the provisioning work. Its IdentityDomain port reads the affected Salesforce users, accounts, contacts, profiles, permission sets, and memberships from the Identity Store, and its TS port writes that state into Salesforce on the matching channels. CryptFilter decrypts protected values before the request is sent to Salesforce.
A request that fails is retried up to 3 times (retrylimit) with 30 minutes between the attempts (waitbeforeretry). If it still fails, the error activity takes it over and sends a notification through the Message port; the workflow parameter timeout gives a request 4 days before it is discarded.
Operation
-
Privilege resolution and other target system changes write the affected Salesforce objects into the
sample-tstarget system subtree of clusterMy-Companyin the Identity Store and mark them for provisioning. -
The Java-based Server passes the resulting request to the
joinactivity of this workflow. -
The
IdentityDomainport reads the affected entry from the Identity Store over the matching channel. -
The
TSport applies the change in Salesforce, including password updates on thesetPasswordchannel when they are part of the request. -
The result is written back into the Identity Store so that the state of the target system entry reflects what happened in Salesforce.
-
The
eventport publishes the change as a JMS event for applications that listen to provisioning events; thenotifyport sends the configured e-mail notifications. -
Requests that fail permanently are handed to the
erroractivity, which reports them by e-mail.
The workflow is delivered inactive (dxmActive is FALSE). Copy it into your own scenario, connect the copy to your connected directory and activate the copy.