Application Delivery Management
Application Modernization & Connectivity
CyberRes
IT Operations Management
IDM REST driver (user account synchronization to the cloud)
OIM API Attrib Name |
eDirectory Attrib name |
active |
OID-Active (Aux class) |
orgref |
OID-OrgRef (Aux class) |
orgvalue |
OID-OrgValue (Aux class) |
department |
OID-Dept (Aux class) |
userType |
OID-EmpType (Aux class) |
id |
OID-id (Aux class) |
schemas |
OID-SCIMSchema (Aux class) |
title |
title |
userName |
CN |
displayName |
Full Name |
givenName |
Given Name |
middleName |
Initials |
Internet Email address |
familyName |
Surname |
Phone userType |
Telephone Number employeeStatus |
URL = https://11.111.111.11:73001/idaas/im/scim/v1/Users/
METHOD = POST
HEADERS
- Authorization = Basic eGVsc3lzYWRtOlA2c3N3b3JkM1BDTQ==
- Content-Type = application/scim json
INPUT (raw-JSON)
{
"schemas":
[
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User"
],
"userName": "TUSR123",
"name": {
"familyName": "Tom",
"givenName": "Jerry",
"middleName": "V"
},
"displayName": "Tom Jerry",
"emails":
[
{
"value": "TomJerry123@example.com",
"type": "work"
}
],
"phoneNumbers": [
{
"value": "123-456-7890",
"type": "work"
}
],
"userType": "EMP",
"title": "Tour Guide",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":
{
"department": "Tour Operations"
},
"urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User":
{
"homeOrganization":
{
"value": "4",
"$ref": "https://11.111.111.11:73001/idaas/im/scim/v1/Organizations/4"
}
}
}
IDM REST driver Configuration
Subscriber Channel
XXX-METADIR\Users\paddy" src-entry-id="39135" timestamp="1499210831#8">
<association state="associated">paddy</association>
<modify-attr attr-name="userType">
<remove-value>
<value timestamp="1487236827#3" type="string">Temporary</value>
</remove-value>
<add-value>
<value timestamp="1499210831#8" type="string">Contractor</value>
</add-value>
</modify-attr>
</modify>"
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.5.5.0">DirXML</product>
<contact>NetIQ Corporation</contact>
</source>
<input>
<driver-operation-data class-name="User" command="modify" event-id="server123#20170704232715#3#1:646172f1-5cb7-4f27-b8ec-f1726164b75c" src-dn="\XXX-METADIR\Users\paddy">
<request>
<url-token association="44016"/>
<header content-type="application/scim json"/>
<value>{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"replace","path":"urn:ietf:params:scim:schemas:core:2.0:User:userType","value":"Contractor"}]}</value>
</request>
</driver-operation-data>
</input> </nds>
<conditions>
<and>
<if-operation mode="regex" op="not-equal">instance</if-operation>
<if-operation mode="nocase" op="not-equal">driver-operation-data</if-operation>
</and>
</conditions>
<do-set-local-variable name="applicationCont" scope="policy">
<arg-string>
<token-xpath expression="rs:xdsToJSON($xmlInput)"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="applicationContentstring" scope="policy">
<arg-string>
<token-xpath expression="es:JSONRemArray($applicationCont)"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="applicationContent" scope="policy">
<arg-string>
<token-xpath expression="es:JSONparseADD($applicationContentstring)"/>
</arg-string>
</do-set-local-variable>
...
<do-if>
<arg-conditions>
<and>
<if-class-name op="available"/>
<if-class-name mode="nocase" op="not-equal">DirXML-Driver</if-class-name>
<if-operation mode="nocase" op="not-equal">modify</if-operation> </and>
</arg-conditions
…
<do-set-local-variable name="applicationCont" scope="policy">
<arg-string>
<token-xpath expression="rs:xdsToJSON($xmlInput)"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="applicationContentstring" scope="policy">
<arg-string>
<token-xpath expression="es:JSONRemArray($applicationCont)"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="applicationContent" scope="policy">
<arg-string>
<token-xpath expression="es:JSONparseADD($applicationContentstring)"/>
</arg-string>
</do-set-local-variable>
...
<do-if>
<arg-conditions>
<and>
<if-class-name op="available"/>
<if-class-name mode="nocase" op="not-equal">DirXML-Driver</if-class-name>
<if-operation mode="nocase" op="equal">modify</if-operation>
</and>
</arg-conditions>
…
<do-set-local-variable name="applicationCont" scope="policy">
<arg-string>
<token-xpath expression="rs:xdsToJSON($xmlInput)"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="applicationContentstring" scope="policy">
<arg-string>
<token-xpath expression="es:JSONRemArray($applicationCont)"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="applicationContent" scope="policy">
<arg-string>
<token-xpath expression="es:JSONmodconvert($applicationContentstring)"/>
</arg-string>
</do-set-local-variable>
…
Publisher Channel
<rule>
<description>Extract Match values</description>
<conditions>
<and>
<if-operation mode="nocase" op="equal">status</if-operation>
<if-association op="not-associated"/>
<if-local-variable mode="regex" name="varMatchvalues" op="equal">. </if-local-variable>
</and>
</conditions>
<actions>
<do-set-local-variable name="varSchema" scope="policy">
<arg-string>
<token-xpath expression="es:getschema($varMatchvalues)"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="varID" scope="policy">
<arg-string>
<token-xpath expression="es:getid($varMatchvalues)"/>
</arg-string>
</do-set-local-variable>
<do-set-local-variable name="varUsername" scope="policy">
<arg-string>
<token-xpath expression="es:getname($varMatchvalues)"/>
</arg-string>
</do-set-local-variable>
</actions>
</rule>
<rule>
<description>Check for association - Mod-no-Ass</description>
<conditions>
<and>
<if-operation mode="nocase" op="equal">status</if-operation>
<if-association op="not-available"/>
<if-local-variable mode="nocase" name="varSchema" op="equal">urn:ietf:params:scim:api:messages:2.0:ListResponse</if-local-variable>
</and>
</conditions>
<actions>
<do-add-association>
<arg-dn>
<token-text xml:space="preserve">Users\</token-text>
<token-local-variable name="varUsername"/>
</arg-dn>
<arg-association>
<token-text xml:space="preserve">$varUsername$</token-text>
</arg-association>
</do-add-association>
<do-set-op-association disabled="true">
<arg-association>
<token-local-variable name="varUsername"/>
</arg-association>
</do-set-op-association>
<do-set-dest-attr-value class-name="User" name="OID-id">
<arg-dn>
<token-text xml:space="preserve">Users\</token-text>
<token-local-variable name="varUsername"/>
</arg-dn>
<arg-value type="string">
<token-text xml:space="preserve">$varID$</token-text>
</arg-value>
</do-set-dest-attr-value>
<do-set-dest-attr-value name="OID-Active">
<arg-dn>
<token-text xml:space="preserve">Users\</token-text>
<token-local-variable name="varUsername"/>
</arg-dn>
<arg-value type="string">
<token-text xml:space="preserve">true</token-text>
</arg-value>
</do-set-dest-attr-value>
</actions>
</rule>
Automate user provisioning