2.2.15 SyncConfig-join

This XML element is an identity attribute. This XML element specifies the search criteria for matching a connector space object with a metaverse object. Any join candidates found by the join search at synchronization time are then resolved to a single join target. Once a metaverse object has been identified as the join target, it is automatically joined to the connector space object.

The Join Rules are expressed in XML and are responsible for configuring:

  • the search criteria

  • the method of join resolution/validation

  • how to handle ambiguous results

  • scoping of join rules by CD object types

The XML schema of this identity attribute when transferred as an identity attribute value is defined as follows:

 <?xml version="1.0" encoding="utf-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:rm="http://schemas.microsoft.com/2006/11/ResourceManagement"
    targetNamespace="http://schemas.microsoft.com/2006/11/ResourceManagement">
   <xs:element name="SyncConfig-join" type="xs:string" />
 </xs:schema>

This XML element is defined as having a value which is a string encoding of a sequence of zero or more join-profile XML elements, which are defined in the next section.

This XML element MUST be provided by a client when requesting a Create operation of an object of the ma-data object type. If a client intends to change the search criteria, the client MUST provide this XML element when requesting a Put operation of an object of the ma-data object type. A client MUST NOT request a Put operation to remove this XML element from an object.

The following is an example of an identity attribute value containing a set of Join Rules:

 <rm:SyncConfig-join>
   <join-profile  cd-object-type="user">
     <join-criterion id="{934A9523-A3CA-4BC5-ADA0-D6D95D979429}">
       <search mv-object-type="user">
         <attribute-mapping  mv-attribute="uid">
           <direct-mapping>
             <src-attribute>empId</src-attribute>
           </direct-mapping>
         </attribute-mapping>
         <attribute-mapping  mv-attribute="company">
           <constant-mapping>
             <constant-value>Microsoft</constant-value>
           </constant-mapping>
         </attribute-mapping>
       </search>
       <resolution type="scripted">
         <script-context>Criterion1</script-context>
       </resolution>
     </join-criterion>
     <join-criterion id="{534A9523-A3CA-4BC5-ADA0-D6D95D979425}">
       <search mv-object-type="user">
         <attribute-mapping  mv-attribute="mail">
           <direct-mapping>
             <src-attribute>alias</src-attribute>
           </direct-mapping>
         </attribute-mapping>
       </search>
       <resolution type="scripted">
         <script-context>Criterion2</script-context>
       </resolution>
     </join-criterion>
   </join-profile>
   <join-profile cd-object-type="prov-user">
     <join-criterion id="{5C875108-D0CD-471a-9D9C-BC3E9C2C4A12}">
       <search  mv-object-type="user">
         <attribute-mapping  intrinsic-attribute="true" mv-attribute="object-id">
           <direct-mapping>
             <src-attribute>mv-object-id</src-attribute>
           </direct-mapping>
         </attribute-mapping>
       </search>
       <resolution type="none"/>
     </join-criterion>
   </join-profile>
   <join-profile cd-object-type="contact">
     <join-criterion id="{134A9523-A3CA-4BC5-ADA0-D6D95D979421}">
       <search mv-object-type="user">
         <attribute-mapping intrinsic-attribute="false" mv-attribute="mail">
           <direct-mapping>
             <src-attribute>mail</src-attribute>
           </direct-mapping>
         </attribute-mapping>
       </search>
       <resolution type="none"/>
     </join-criterion>
   </join-profile>
 </rm:SyncConfig-join>