Damit AD Connect auf ein Active Directory bzw. einen AD Forest zugreifen kann, wird ein Benutzer (Service Account) mit bestimmten Berechtigungen auf einer Active Directory OU benötigt. Bei einer normalen Installation wird dieser Benutzer über den AD Connect Wizzard automatisch angelegt und berechtigt. Möchte man die Berechtigungen jedoch selbst setzten hilft dabei das AdSyncConfig Powershell Modul.
Warum soll ich die Berechtigungen manuell setzten?
Ein Beispiel warum die Berechtigungen manuell gesetzt werden müssen könnte sein, dass man den AD Forest eines Kunden anbinden soll, auf diesen man aber keinen direkten Admin-Zugriff hat. Mithilfe dieses Moduls könnte der Kunden-Domain-Administrator die Berechtigungen setzen und übergibt einem am Ende nur den Benutzer für den AD Connector Account oder man möchte einfach mehr Kontrolle über die gesetzten Berechtigungen haben.
Wo finde ich das Modul?
Dieses Modul findet man auf jenem Server auf dem AD Connect installiert ist
unter „C:\Program Files\Microsoft Azure Active Directory Connect\AdSyncConfig\AdSyncConfig.psm1“.
Auf ans Werk
Zu aller erst wird aber noch ein Benutzer in der Ziel-Domäne benötigt. In meinem Beispiel nenne ich diesen Benutzer „ADConnect“.
Im nächsten Schritt muss das AdSyncConfig.psm1 Modul von dem bestehenden ADConnect Server in einen neuen Ordner kopiert werden wo das Powershell Script es finden kann. Ich erstelle dazu einen neuen Unterordner „Modul“ und kopiere dorthin die PSM1 Datei.
Die folgenden Befehle müssen auf dem Domain Controller als Administrator ausgeführt werden, wo die Berechtigungen benötigt werden.
Um die benötigten Befehle ausführen zu können, muss das Modul in Powershell zunächste geladen werden.
Import-Module .\Module\AdSyncConfig.psm1
Get-Command -Module AdSyncConfig
In der Variable $TargetOUs muss man alle OUs angeben auf denen man die Berechtigungen setzten will.
$TargetOUs = "OU=Users,DC=domain,DC=at","OU=Groups,DC=domain,DC=at"
Im folgenden Code-Block werden die benötigten Berechtigungen gesetzt. Welche Einstellungen genau benötigt hängt von der benötigten Konfiguration ab. In meinem Beispiel wird speziell die Basis (Grundkonfiguration), MS-DS-Consistency-Guid und Password Hash Synchronization gesetzt, da ich eine Konfiguration verwende die darauf aufbaut. Welche Berechtigungen (Beispiel für Exchange Hybrid oder Skype) zusätzlich gesetzt werden könne findet man unter https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-configure-ad-ds-connector-account.
$ADConnectorAccountName = Get-ADUser -Filter * | Out-GridView -PassThru
foreach ($OU in $TargetOUs){
Write-Host "[*] Configure Basic Read-Only Permissions on OU $OU"
Set-ADSyncBasicReadPermissions -ADConnectorAccountDN
$ADConnectorAccountName.DistinguishedName -ADobjectDN $OU
Write-Host "[*] Configure MS-DS-Consistency-Guid Permissions on OU $OU"
Set-ADSyncMsDsConsistencyGuidPermissions -ADConnectorAccountDN
$ADConnectorAccountName.DistinguishedName -ADobjectDN $OU
Write-Host "[*] Set Permissions for Password Hash Synchronization on OU $OU"
Set-ADSyncPasswordHashSyncPermissions -ADConnectorAccountDN
$ADConnectorAccountName.DistinguishedName
}