MIM 2016: Galsync via Sync Rules Only

We have the OOB MIM Galsync MA which is great tool and comes fully customized specifically just for galsync. It also has the VB.net extension code for provisioning and custom MA. For those of us from the MIIS era, it’s a Christmas cake! But perhaps you don’t like extension code or you have been swept off by the “ease” of the sync rules and do not want to see any custom code, the question then is if there is a way to do galsync with sync rules? There is and I will show you. For a relatively straight forward galsync use case it should work.

Use Case

Two exchange orgs are exchanging their GAL via flat file, it could be due to legal reasons, they cannot connect to each other’s MA directly. OrgA sends a file to OrgB. There are no existing OrgA contacts in OrgB’s AD. The structure of OrgA’s file is simply

Firstname,lastname,email,phone

OrgB will import this file into the MV and use AD Domain service connector to export to AD. Here are the rules for OrgB

  1. Mailnickname will be OrgA email minus the “@”
  2. DisplayName will be “FN LN (OrgA)”
  3. LegacyExchangeDN will be Exchange Org DN + mailnickname [So that it X500 is always the same for that email]

Solution

  1. Create a MIM MA to connect to the Portal
  2. Go the MV designer, create an object called contact_orgA and select the following attributes

displayName

targetAddress

Mail

Mailnickname

Sn

telephoneNumber

givenName

  1. Go to Management Agents and create a new Delimited File MA. Select the OrgA file
  2. Create a new AD Domain Services MA. Point to the OrgB forest. Select OU for the contacts, select Contact object. Select the following AD attributes

displayName

targetAddress

Mail

Mailnickname

Sn

telephoneNumber

givenName

legacyexchangeDN

proxyaddress

  1. Set Deprov rule on disconnect to “stage a delete on next export”. On extension page select “Provisioning” and Exchange 2010 and http://exchangecasserver/powershell

Go to the Portal,

  1. Set up sync rule “OrgA Inbound”.
  2. Set a relationship: OrgA.email = MV.mail
  3. Set to create FIM object
  4. Set the following attribute flows

  1. Set up sync rule “OrgB Galsync AD Outbound”.
  2. Select use scope filter
  3. Set a scope: TargetAddress NOTEQUAL blank
  4. Set to create connected object
  5. Set the following attribute flows

Go to the Sync Engine

  1. Import the sync rules via the MIM MA
  2. Run Full Import on the OrgB Gal MA and OrgA Flat file MA
  3. Run Full Sync to process the rules
  4. Make sure the Exchange server is not stamping Contacts (see this)
  5. Run Export to create the mail contacts in OrgB