Provisioning

Provisioning ensures the implementation of accounts settings on end systems according to the settings in IdM. The provisioning itself then only propagates information to the end system. It does not make the evaluation of which identities should be subject to provisioning on a particular system. This is the task of accounts aministration which is an integral part of IdM and precedes the provisioning itself.

Provisioning is an integral part of the ACC module (ACCount management)

As it has been already said, the provisioning is preceded by accounts administration. In most cases, provisioning is therefore run by the service ensuring accounts administration. If this service evaluates that such a change of the account which requires provisioning has occurred, it will call the service ProvisioningService. This service includes the following methods:

Provisioning line

To extend or reconfigure the provisioning mechanism, the processing has been moved to the events on the entity SysProvisioningOperation and to the individual processors treating this identity (the list of the registered processors has been extracted to the application on the module page). Calling the provisioning then takes places through publishing the events with the SysProvisioningOperation content through ProvisioningExecutor. The individual operations are serialized, saved in the line, and transmitted to the processors. If a provisioning error occurs or some of the processors stops working, then it is possible to find what happened in the agenda placed above the line (error code, return state). The GuardedStrings are not saved in the serialized state - the values are replaced and saved in a coded warehouse from which they are only read when needed (account re-calculation, provisioning implementation).

The operation content in SysProvisioningOperation is called ProvisioningContext and is divided into two logical units:

First the accountObject (wish), then the connectorObject which is the real provisioning input is calculated. When repeating the operation, a new connectorObject from an accountObject is always calculated so that the possible changes which could occur right on the end system are taken into consideration.

Once the object (defined by the identifier on the system and the idm entity) is in the line, all the other requests for the provisioning of the same objects fall directly into the line - consistent sequence of operations on one object in the end system.

Provisioning lines functions:

More about attribute strategies (attributes merge and etc.) is here: