Azure AD Connect - Custom Sync Rule for preferredLanguage

Hallo zusammen,

Ich habe kürzlich von einem Kunden die Anforderung erhalten, Sync Rules für AAD connect zu erstellen, welche das Setting vom Active Directory in einen vom Azure Active Directory unterstützten wert übersetzt.

Dies war die Ausgangslage beim Kunden

Active Directory Azure Active Directory
DE ch-DE
EN en-US
BE nl-BE

Ich schaue mir mal meinen Testuser im Azure Active Directory an

Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*
Get-AzureADUser -SearchString m.muster@icewolf.ch | fl *lang*, *loc*

Auf dem lokalen User im Active Directory ist nichts gesetzt.

Passe ich mal auf “BE” an

Auf dem AAD Connect Server stosse ich einen Delta Sync an

Import-Module ADSync
Start-ADSyncSyncCycle -PolicyType Delta

Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*
Get-AzureADUser -SearchString m.muster@icewolf.ch | fl *lang*, *loc*

Standardmässig synchronisiert der AAD connect also das Attribut nach Azure AD. Genau so wie es halt auch im Active Directory steht.

Beim Anpassen von Synchronization Rules, wird empfohlen den AAD Sync zu stoppen

Set-ADSyncScheduler -SyncCycleEnabled $false

C:\Program Files\Microsoft Azure AD Sync\UIShell\SyncRulesEditor.exe

Ich schaue mir mal an, bei welchen Inbound Rules vom Active Directory das Attribut benutzt wird

Ich schaue mir an, bei welchen Outbound Rules von Azure Active Directory das Attribut benutzt wird.

Nun erstelle ich eine neue Synchronization Rule

Name: Out to Azure AD – User preferredLanguageBE Connected System: Azure AD Connected System Object Type: user Metaverse Object Type: person Link Type: Join Precedence: 1 (Regeln 1 bis 99 sind für Custom Rules reserviert)

Beim Scoping Filter gebe ich die Objekte an, auf die die Regel angewendet werden soll

Scoping Filter: sourceObjectType EQUAL User cloudMastered NOTEQUAL True preferredLanguage EQUAL BE

Die Join rules lasse ich so stehen

Bei den Transformations konfiguriere ich, was rauskommen soll

Transformations: Constant preferredLanguage nl-BE Update

Set-ADSyncScheduler -SyncCycleEnabled $true
Start-ADSyncSyncCycle -PolicyType Delta

Dann warte ich ab, bis der Sync abgeschlossen ist

C:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exe

Ein Update hat es gegeben auf diesem Objekt (doppelklicken)

Und ich sehe, dass meine Sync Rule gezogen hat

Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*
Get-AzureADUser -SearchString t.turner@icewolf.ch | fl *lang*, *loc*

Das hat also geklappt und nun kann ich die Regel auch für die anderen zwei Sprachen einrichten.

Erst noch wieder den AAD Sync Sheduler stoppen

Set-ADSyncScheduler -SyncCycleEnabled $false

Bei den folgenden Regeln dann einfach bei der Precedence (Reihenfolge 2 und 3) eingeben

In der Übersicht sehe ich nun die Regeln 1 bis 3 welche von mir erstellt wurden

Testing:

Set-ADSyncScheduler -SyncCycleEnabled $true
Start-ADSyncSyncCycle -PolicyType Delta

Start-ADSyncSyncCycle -PolicyType Delta

Liebe Grüsse
Andres Bohren