SetPassword in JDBC

Sets the password in a JDBC database.

A set-password workflow propagates a password from DirX Identity to the accounts of one connected system. It is triggered when a user or an administrator changes a password in the Identity Store, or when the password synchronization workflows distribute a password change. The workflow reads the password over the setPassword channel of the Identity Store port and writes it through the target system port; it does not synchronize any other account attribute.

Because a set-password workflow carries credentials, its ports decrypt the password attribute explicitly through the decrypt.attribute parameter, and failures are reported by a dedicated password notification connector instead of the regular notification connector.

SetPassword in JDBC sends password changes from the Identity Store to a connected system of type JDBC. You use it when the account already exists in the relational target system and you only want to drive the password update through the target connector.

The workflow stays in the same target-system model as the JDBC provisioning workflow, using tsresource JDBC and tscluster JDBC. It keeps accounts, groups, and members available for object resolution, while the target side uses setPassword and passes the request through both CryptFilter and JDBCFilter.

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

SetPassword in JDBC

Category

Target Realtime / JDBC

Technology

Java-based real-time workflow

LDAP object class

dxmIDMWorkflowDefinition

Workflow type

ProvisionTS

Connected system / controller type

JDBC

Configuration wizard

wf-Provisioning-SetPassword.xml

Active in the factory data

FALSE

Factory data version

8.0

Factory data path

Workflows/Default/Target Realtime/JDBC/SetPassword in JDBC

Prerequisites

  • Create a connected directory of type JDBC with the bind profile JDBC Database Admin.

  • Link that connected directory to a target system of type JDBC in the Identity Store.

  • Make sure the Java-based Server can reach the Identity Store through Domain_Admin and the connected directory through JDBCConnector.

Workflow and Activities

Activity Type Component description Description Ports

error

error

provisioningActivity

Error Activity

Message

join

ProvisionTS

provisioningActivity

Join activity for the provision-to-TS workflow

IdentityDomain, notify, ts

Ports

Activity Port Component description Connector Connected directory Bind profile SSL

error

Message

errorPort

ErrorNotifyMailConnector

-

-

not set

join

IdentityDomain

provisioningPort

LdapConnector

Identity Store

Domain_Admin

not set

join

notify

notificationPort

NotifyMailPwdConnector

-

-

not set

join

TS

provisioningPort

JDBCConnector

JDBC

JDBC Database Admin

not set

Channels

Table 1. Channels of port IdentityDomain (activity join)
Channel Description Reference type Delta type

accounts

Channel for accounts

OneToOne

SearchAttributes

groups

Channel for groups

OneToOne

SearchAttributes

members

Channel for account - group memberships

OneToOne

SearchAttributes

Table 2. Channels of port TS (activity join)
Channel Description Reference type Delta type

accounts

Channel for accounts

OneToOne

SearchAttributes

groups

Channel for groups

OneToOne

SearchAttributes

members

Channel for account - group memberships

OneToOne

SearchAttributes

setPassword

Channel for setting a password

OneToOne

SearchAttributes

Filters

Port Filter Description Sequence

TS

CryptFilter

decryption

1

TS

JDBCFilter

jdbc filter

2

Configuration Parameters

Table 3. Workflow parameters of SetPassword in JDBC
Parameter Default value

timeout

P0Y0M4DT0H0M0S

tscluster

JDBC

tsresource

JDBC

Table 4. Parameters of activity error
Parameter Default value

resourcefamily

Mail

retrylimit

3

timeout

P0Y0M1DT0H0M0S

waitbeforeretry

P0Y0M0DT2H0M0S

Table 5. Parameters of port Message (activity error)
Parameter Default value

decrypt.attribute

dxmPassword

Table 6. Parameters of activity join
Parameter Default value

resourcefamily

JDBC

retrylimit

3

timeout

P0Y0M1DT0H0M0S

waitbeforeretry

P0Y0M0DT0H30M0S

Table 7. Parameters of port IdentityDomain (activity join)
Parameter Default value

decrypt.attribute

password

Table 8. Parameters of port notify (activity join)
Parameter Default value

decrypt.attribute

userPassword

Table 9. Parameters of port TS (activity join)
Parameter Default value

decrypt.attribute

pw

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 reads the account context from IdentityDomain and sends the password update to TS. It keeps accounts, groups, and members in scope, and the target request passes through CryptFilter and JDBCFilter before it reaches JDBCConnector.

If the run finishes with a password notification, the workflow uses notify through NotifyMailPwdConnector. If the update fails, the workflow switches to error and sends the failure information through Message.

Operation

  1. You start the workflow for a password change that belongs to an account in the JDBC target system.

  2. join reads the required object context from IdentityDomain.

  3. On TS, CryptFilter decrypts the target-side password value and JDBCFilter prepares the JDBC-specific request.

  4. JDBCConnector writes the resulting password change through setPassword.

  5. The workflow can send the password notification through notify.

  6. If the target update fails, the workflow switches to error and sends the failure information through Message.

The workflow is delivered inactive (dxmActive is FALSE). Copy it into your own scenario before you enable it.