Attributes missing in different stages of user lifecycle

Hello!

I am trying to implement user lifecycle with script connector, and I see attributes missing at delete user time (i.e. deleting user via openiam gui: administrative action: delete β†’ perform now).

Below example of user connector attribute at add user time (via csv synchronization):

{
  "identityName" : "userName",
  "identityValue" : "CRISTHIAN.TEST",
  "originalIdentityValue" : "CRISTHIAN.TEST",
  "attributes" : [ {
    "name" : "startDateTime",
    "values" : [ {
      "value" : "1759755070150",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "lastName",
    "values" : [ {
      "value" : "TEST",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "status",
    "values" : [ {
      "value" : "ACTIVE",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "displayName",
    "values" : [ {
      "value" : "CRISTHIAN TEST",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "userId",
    "values" : [ {
      "value" : "8a8081d0997861570199a645311a00da",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "jobTitle",
    "values" : [ {
      "value" : "ASESOR DE TIENDAS",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "firstName",
    "values" : [ {
      "value" : "CRISTHIAN",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "groups",
    "values" : [ {
      "value" : "EJECUTIVOTEL38,TG Invoice Reception,TG N Gestion de Reclamos,TG N V360 - View Paraguay",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "email",
    "values" : [ {
      "value" : "CRISTHIAN2@OPENIAM.COM",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "eventUUID",
    "values" : [ {
      "value" : "c212e655-24e7-510b-89bb-7dde32d6eca7",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "id",
    "values" : [ {
      "value" : "11114",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "role.name",
    "values" : [ {
      "value" : "ASESOR DE TIENDAS",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  } ],
  "operation" : "REPLACE",
  "type" : "USER",
  "metaData" : {
    "requestID" : "79f13f85107f453683862e2c585a9aaa",
    "executionMode" : null,
    "managedSystemId" : "8a808178953d149801956809b4d243e8",
    "url" : "http://openiam-catcher.dev-k8s.telecel.net.py",
    "port" : 80,
    "communicationProtocol" : "CLEAR",
    "login" : "test",
    "password" : "test",
    "attributes" : [ {
      "name" : "managedSystemName",
      "values" : [ {
        "value" : "Siebel",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "managedSystemType",
      "values" : [ {
        "value" : "CRM",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "DELETE_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/SiebelUserDelete.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "ADD_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/SiebelUserAdd.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "MODIFY_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/SiebelUserAdd.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "SEARCH_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/SearchUser.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "SEARCH_SCOPE",
      "values" : [ {
        "value" : "SUBTREE_SCOPE",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "TEST_CONNECTION_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/TestConnection.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "SUSPEND_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/example/user/SuspendScriptConnector.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "RESUME_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/example/user/ResumeScriptConnector.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    } ]
  },
  "userPassword" : null,
  "changePrimaryKey" : false
}

Below, example of user connector object at delete time:

{
  "identityName" : "userName",
  "identityValue" : "CRISTHIAN.TEST",
  "originalIdentityValue" : null,
  "attributes" : [ {
    "name" : "displayName",
    "values" : [ {
      "value" : "CRISTHIAN TEST",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "id",
    "values" : [ {
      "value" : "11114",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "startDateTime",
    "values" : [ {
      "value" : "1759755070150",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "lastName",
    "values" : [ {
      "value" : "TEST",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "eventUUID",
    "values" : [ {
      "value" : "c212e655-24e7-510b-89bb-7dde32d6eca7",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "role.name",
    "values" : [ {
      "value" : "ASESOR DE TIENDAS",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "userId",
    "values" : [ {
      "value" : "8a8081d0997861570199a645311a00da",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "firstName",
    "values" : [ {
      "value" : "CRISTHIAN",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "status",
    "values" : [ {
      "value" : "REMOVE",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  }, {
    "name" : "jobTitle",
    "values" : [ {
      "value" : "ASESOR DE TIENDAS",
      "operation" : "REPLACE"
    } ],
    "primaryKey" : false
  } ],
  "operation" : "REPLACE",
  "type" : "USER",
  "metaData" : {
    "requestID" : "fcb45554942543d29e6e3ea28d85b9fe",
    "executionMode" : null,
    "managedSystemId" : "8a808178953d149801956809b4d243e8",
    "url" : "http://openiam-catcher.dev-k8s.telecel.net.py",
    "port" : 80,
    "communicationProtocol" : "CLEAR",
    "login" : "test",
    "password" : "test",
    "attributes" : [ {
      "name" : "managedSystemName",
      "values" : [ {
        "value" : "Siebel",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "managedSystemType",
      "values" : [ {
        "value" : "CRM",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "DELETE_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/SiebelUserDelete.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "ADD_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/SiebelUserAdd.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "MODIFY_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/SiebelUserAdd.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "SEARCH_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/SearchUser.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "SEARCH_SCOPE",
      "values" : [ {
        "value" : "SUBTREE_SCOPE",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "TEST_CONNECTION_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/siebel/user/TestConnection.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "SUSPEND_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/example/user/SuspendScriptConnector.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    }, {
      "name" : "RESUME_HANDLER",
      "values" : [ {
        "value" : "/connector/groovy/example/user/ResumeScriptConnector.groovy",
        "operation" : "NO_CHANGE"
      } ],
      "primaryKey" : false
    } ]
  },
  "userPassword" : null,
  "changePrimaryKey" : true
}

The missing attributes in the delete object are groups and email, both are present as items in the policy map

image

image

Also, I have another question, why in both cases, for the attributes, the operation is REPLACE?

Tested with OpenIAM 4.2.1.11

Thanks in advance!

Hello Cristhian,

In the policy map, you are currently pulling the value from idmValue.
Instead, you will need to use a Groovy script to retrieve the attribute correctly.

Please let me know if I can provide more assistance.

Thanks,

Ameet

Hi Ameet!

After reviewing our use case, the groups attribute isn’t needed, so we can omit it.

Can you provide an example script that I can use to get the email address?

Thanks!

Hi ccaballero646,

You can take groovy as an example to get the email address of the AD connector (mail.groovy)

mail.groovy (1.9 KB)

1 Like