Cybersecurity
DevOps Cloud (ADM)
IT Operations Cloud
Now the SharePoint driver is configured to synchronize AD identities to the SharePoint server. To synchronize LDAP identities do the changes outlined in steps 2 to 9.
<definition display-name="AD Driver" dn-space="dirxml" dn-type="slash" name="drv-ad-driver-dn" type="dn">
Replace attribute “display-name” with a suitable name of your choice.
Replace attribute “name” with “drv-ldap-driver-dn”
Provide an LDAP driver dn as its value. This dn corresponds to the driver which synchronizes identities from the LDAP connected system configured as the IP provider for SharePoint server.
This step is optional. This will ensure that the user is available in the LDAP server before it is synchronized to SharePoint. Also if you are using the IDV as the LDAP ID provider this step is not required.
From the user class
NOVLSPNTDCFG-sub-mp.Subscriber.<Sharepoint driver DN>
In the Match Users rule replace DirXML-ADAliasName with CN. Change the actions node to:
<actions>
<do-find-matching-object scope="subtree">
<arg-match-attr name="CN">
<arg-value type="string">
<token-src-attr name="CN"/>
</arg-value>
</arg-match-attr>
</do-find-matching-object>
</actions>
NOVLSPNTDCFG-sub-cp.Subscriber.<Sharepoint driver DN>
<rule>
<description>Check for needed User attributes</description>
<conditions>
<or>
<if-class-name mode="nocase" op="equal">User</if-class-name>
</or>
<or>
<if-op-attr name="DirXML-Associations" op="not-available"/>
<if-op-attr name="CN" op="not-available"/>
<if-op-attr name="Full Name" op="not-available"/>
</or>
</conditions>
<actions>
<do-veto/>
</actions>
</rule>
If you are configuring IDV as the SharePoint ID provider this policy is not required and should be disabled.
<conditions>
<and>
<if-class-name mode="nocase" op="equal">User</if-class-name>
<if-xpath op="true">count(add-attr[@attr-name='DirXML-Associations']/value[component[@name='nameSpace']/text()='1' and component[@name='volume' and contains(.,$drv-ldap-driver-dn)]])=0</if-xpath>
</and>
</conditions>
<actions>
<do-status level="warning">
<arg-string>
<token-text xml:space="preserve">Vetoed the add because there is no association for the LDAP driver "$drv-ldap-driver-dn$"</token-text>
</arg-string>
</do-status>
<do-veto/>
</actions>
NOVLSPNTDCFG-sub-ctp.Subscriber.<Sharepoint driver DN>
<actions>
<do-set-local-variable name="attrValue" scope="policy">
<arg-string>
<token-xpath expression="./new-name"/>
</arg-string>
</do-set-local-variable>
<do-strip-xpath expression="../rename"/>
<do-set-dest-attr-value name="CN">
<arg-value type="string">
<token-local-variable name="attrValue"/>
</arg-value>
</do-set-dest-attr-value>
</actions>
<conditions>
<and>
<if-operation op="equal">modify</if-operation>
<if-op-attr name="CN" op="available"/>
</and>
</conditions>
<actions>
<do-set-local-variable name="CNattrValue" scope="policy">
<arg-node-set>
<token-op-attr name="CN"/>
</arg-node-set>
</do-set-local-variable>
<do-strip-op-attr name="CN"/>
<do-set-dest-attr-value name="CN">
<arg-value>
<token-xpath expression="$CNattrValue[1]"/>
</arg-value>
</do-set-dest-attr-value>
</actions>
<conditions>
<and>
<if-operation disabled="true" op="not-equal">query</if-operation>
<if-op-attr name="CN" op="available"/>
</and>
</conditions>
<actions>
<do-reformat-op-attr name="CN">
<arg-value type="string">
<token-text xml:space="preserve">i:0#.f|ldapmember|</token-text>
<token-src-attr name="CN"/>
</arg-value>
</do-reformat-op-attr>
</actions>
Modify the Normalize LoginName rule to convert the LoginName attribute back to a value which IDV can understand.
<actions>
<do-set-local-variable name="LoginNameNodeSet" scope="policy">
<arg-node-set>
<token-split delimiter="|">
<token-op-attr name="LoginName"/>
</token-split>
</arg-node-set>
</do-set-local-variable>
<do-reformat-op-attr name="LoginName">
<arg-value type="string">
<token-xpath expression="$LoginNameNodeSet[last()]"/>
</arg-value>
</do-reformat-op-attr>
</actions>