IDM 4.01 ID Provider Configuration

over 9 years ago
The ID Provider driver is shipped with IDM 4.01 and allows you to generate simple unique IDs. This is very useful if you want to create unique IDs for new users or to populate UnixUID and UnixGID.

It installs like many other drivers, but there are some simple tricks I would like to show in this small document.

1) ID Provider policies container

The ID Provider driver needs a policies container to store and retrieve the unique id creation policies.

The default policies container is created by designer in the ID Provider driver container.

If the drivers fails to start with the following error:

DirXML Log Event -------------------
Driver: \IDSATRAINING\idsa\services\Driver Set\ID-Provider
Channel: Publisher
Status: Fatal
Message: Error initializing ID Server.
[08/19/11 14:14:24.790]:ID-Provider PT:
DirXML Log Event -------------------
Driver: \IDSATRAINING\idsa\services\Driver Set\ID-Provider
Channel: Publisher
Status: Fatal
Message: Code(-9005) The driver returned a "fatal" status indicating that the driver should be shut down. Detail from driver: Error initializing ID Server.<appl

- Check id-provider driver authentication
- Check policies container DN in id-provider driver configuration
  If the driver still fails to start:
- Create a new policies container in the driver set container (not in the id-driver container) with iManager
- Delete the id-provider driver in iManager
- Deploy the id-provider driver again . (check authentication and policies container again)

2) ID Provider special parameters

If you decide to set IDs with the ID Provider driver, you can use the "client option" of the driver.

Just set the "ID Generation map" and the driver filter accordingly. (see Novell documentation). The default configuration updates the workforceID with the wfid policy.

3) Using the ID Provider from other driver policies.

If you need to get unique IDs from other driver policies, you must call the java class that gets the ID from the RMI server:

For example, you can call it from the Generic Null driver: (the RMIserver variable is set at the driver level)

Very Important: Don't forget to define the Java Name space at the policy level with the namespace editor. See following image.

If you are successful, the trace file will show that:

[08/19/11 16:42:44.226]:Generic Null ST:      (if-operation equal "add") = TRUE.
[08/19/11 16:42:44.226]:Generic Null ST: Rule selected.
[08/19/11 16:42:44.227]:Generic Null ST: Applying rule 'Get unique ID from rmi server'.
[08/19/11 16:42:44.227]:Generic Null ST: Action: do-set-local-variable("RMIPort",scope="policy","1199").
[08/19/11 16:42:44.228]:Generic Null ST: arg-string("1199")
[08/19/11 16:42:44.228]:Generic Null ST: token-text("1199")
[08/19/11 16:42:44.229]:Generic Null ST: Arg Value: "1199".
[08/19/11 16:42:44.229]:Generic Null ST: Action: do-set-local-variable("UIDRule",scope="policy","wfid").
[08/19/11 16:42:44.230]:Generic Null ST: arg-string("wfid")
[08/19/11 16:42:44.231]:Generic Null ST: token-text("wfid")
[08/19/11 16:42:44.231]:Generic Null ST: Arg Value: "wfid".
[08/19/11 16:42:44.232]:Generic Null ST: Action: do-set-local-variable("IDClient",scope="policy","Generic Null driver").
[08/19/11 16:42:44.233]:Generic Null ST: arg-string("Generic Null driver")
[08/19/11 16:42:44.233]:Generic Null ST: token-text("Generic Null driver")
[08/19/11 16:42:44.234]:Generic Null ST: Arg Value: "Generic Null driver".
[08/19/11 16:42:44.234]:Generic Null ST: Action: do-set-local-variable("Tracelevel",scope="policy","4").
[08/19/11 16:42:44.235]:Generic Null ST: arg-string("4")
[08/19/11 16:42:44.235]:Generic Null ST: token-text("4")
[08/19/11 16:42:44.235]:Generic Null ST: Arg Value: "4".
[08/19/11 16:42:44.236]:Generic Null ST: Action: do-set-local-variable("MyUniqueID",scope="policy",arg-node-set(token-xpath("id:getNextID($RMIServer,$RMIPort,$UI
[08/19/11 16:42:44.236]:Generic Null ST: arg-node-set(token-xpath("id:getNextID($RMIServer,$RMIPort,$UIDRule,$IDClient,$Tracelevel)"))
[08/19/11 16:42:44.237]:Generic Null ST: token-xpath("id:getNextID($RMIServer,$RMIPort,$UIDRule,$IDClient,$Tracelevel)")
[08/19/11 16:42:44.411]:Generic Null ST: Token Value: "WF-1004".
[08/19/11 16:42:44.412]:Generic Null ST: Arg Value: {"WF-1004"}.
[08/19/11 16:42:44.412]:Generic Null ST:Policy returned:
[08/19/11 16:42:44.413]:Generic Null ST:
<nds dtdversion="4.0" ndsversion="8.x">

Good luck!
Comment List
Related Discussions