ADSync / AADConnect

ADSync ist die Komponenten im AADConnect-Paket, welches Identitäten aus dem lokale Active Directory in das Azure AD synchronisiert.

Microsoft Consultant Exchange & Skype for Business (m/w)
Kommen Sie zu Net at Work. Wir haben spannende Projekte bei innovativen Kunden. Unser Team arbeitet kollegial und kooperativ – ständiger Austausch und Weiterbildung sind bei uns Standard.
https://www.netatwork.de/unternehmen/karriere/

Schaue Sie sich auch mal den Nachfolger in Form von AzureAD Cloud Sync an.

Achtung: ADSync 1.x ist End of Support am 31. Aug 2022
https://azure.microsoft.com/en-us/updates/action-required-upgrade-to-the-latest-version-of-azure-ad-connect-before-31-august-2022/
Mittlerweile werden nur noch bestimmte Versionen von ADSync unterstützt
https://learn.microsoft.com/en-us/azure/active-directory/hybrid/reference-connect-version-history#retiring-azure-ad-connect-2x-versions

Hinweis: ADSync ist nur die "Synchronisations-Engine" zum Abgleich. Das komplette Paket aus ADSync, ADFS und Bereitstellungsassistent heißt AADConnect.

Seit 2013 gibt es schon Beta-Versionen von ADSync und Ende 2014 wurde ADSync released. Dennoch gibt auch Anfang 2015 noch alten "DirSync". Diese Seite beschreibt den Einsatzzweck von ADSync, die unterschiede zum vorherigen DirSync und die Einschränkungen.

Kurzbeschreibung

Wie schon beim Office 365:DirSync ist die Aufgabe der Abgleich zwischen zwei Verzeichnisdienste. Hier dem Active Directory On-Premises mit dem Verzeichnis in der Cloud. Viele sprechen dabei von "Office 365". Real ist es das Azure AD, welches von Office 365 genutzt wird. Dazu wird ein Server aufgesetzt, der auf der einen Seite per LDAP mit dem Active Directory spricht und auf der anderen Seite per Webservice mit dem Azure AD. Sowohl der alte DirSync als auch der ADSync nutzen zur Cloud eine besondere API, die übrigens nicht von anderen Produkten genutzt werden kann. Aber der ADSync unterscheidet sich natürlich von dem bisherigen DirSync aber auch vom Azure AD Connector, der für FIM getrennt verfügbar ist. eine genauere Beschreibung hierzu finden Sie auf der Seite DirSync Auswahl.

“Multi-forest Directory Sync with Single Sign-On Scenario”
Quelle: https://msdn.microsoft.com/en-us/library/azure/dn510976.aspx 
„DirSync represents a packaged implementation of FIM that is optimized and isolated to a scenario that enables you to connect a single On-Premd Active Directory forest with your Azure AD tenant”
·         use DirSync if you haven’t deployed FIM yet and you need to synchronize from a single-forest Active Directory forest to Azure AD.
·         use DirSync if FIM you have deployed FIM and you need to synchronize from a single-forest Active Directory forest to Azure AD.
·         use the Azure AD connector if you need to synchronize from a multi-forest Active Directory to Azure AD.
·         use the Azure AD connector if you need to synchronize from a non-Active Directory source to Azure AD.

Q: Can you have multiple forests with a single tenant?
A: Yes, with FIM Connector für Office 365 or with the upcoming AADirSync tool.
Quelle: http://blogs.technet.com/b/educloud/archive/2013/08/02/multi-forest-and-multi-tenant-scenarios-with-office-365.aspx

You cannot run two ADSync instances connecting to one Office 365 tenant.
Quelle: http://community.office365.com/en-us/f/613/t/290676.aspx
 Also braucht man eine geroutete interne Verbindung, damit der ADSync auf alle Forests zugreifen kann

Installation und Konfiguration

ADSync kann ebenso wenig zaubern wie DirSync. Vor der Einrichtung sollten Sie alle Checks aus DirSync Check durchlaufen haben.

Achtung: ADSync kann nicht mit IPv6-Only, d.h. der Server hat keine IPv4-Adresse, genutzt werden
Siehe auch FAQ unter https://docs.microsoft.com/de-de/azure/active-directory/hybrid/reference-connect-faq

Die Installation von ADSync erfolgt durch einen Assistenten, der die meisten Aufgaben alleine richtig macht. Microsoft selbst hat entsprechende Installationsanleitungen samt Bilder veröffentlicht. Das lohnt sich wohl, da viele Office 365 Installationen vielleicht von weniger versierten Administratoren oder dem Kunden selbst durchgeführt werden. Ich erspare mir daher die Bilder, die einzelnen Schritte und die Aufzählung der Voraussetzungen und verweise auf die Microsoft Seiten.

Es ist natürlich klar, dass Sie ein Dienstkonto On-Prem brauchen, welches zumindest alles lesen kann und bei aktiviertem Kennwort-Sync oder sogar Hybrid-Mode auch die entsprechenden erweiterten Rechte bekommt. Zudem sollten sie in Office 365 ein Dienstkonto einrichten, der "Globaler Administrator" ist, keine Lizenz braucht und vor allem sein Kennwort nie ändern muss.

Microsoft Azure Active Directory Sync Services (49MB)
http://www.microsoft.com/en-us/download/details.aspx?id=44225

Achtung
Wenn Sie das Installationsverzeichnis ändern, dann achten Sie auf passende NTFS-Rechte.

Eine Stelle ist wichtig, wenn mehrere Forests als Quelle dienen müssen:

Wenn nur ein Forest (Default) als Quelle genutzt wird, ist die Einstellung hier passend. Wer aber mehrere Forests als Quelle nutzt und ein Benutzer daher in mehreren Forests auch angelegt ist, sollten Sie vorab ein Feld suchen, welches allen Objekten gemeinsam ist. Solche Szenarien sind z.B. Ressourceforests mit LinkedMailboxen. Hier wäre dann die msExchangeMasterAccountSID interessant. Aber auch das allgemeine Feld "Mail" kann zum Matching herhalten. Es ist aber unbedingt erforderlich, dass es solch ein Feld in einer Multi Forest Umgebung gibt und während der gesamten Betriebszeit korrekt gesetzt wird. Ansonsten erhalten Sie in Office 365 mehrere Objekte.

Das nächste Fenster bestimmt, welche erweiterten Funktionen genutzt werden sollen. Genau genommen geben Sie hiermit an, welche Felder auch in der Gegenrichtung übertragen werden müssen. Wer Exchange Hybrid nutzt, muss auch Änderungen an den Mailadressen in der Cloud auf die OnMPremises-Welt abbilden. Ebenso natürlich der KennwortSync.

Danach werden die verschiedenen Verbindungen zusammengefasst angezeigt und die Konfiguration durchgeführt. Am Ende kommt noch die Frage, ob gleich eine Synchronisation erfolgen soll.

Wenn Sie vorher noch Filterregeln einrichten wollen, damit nicht alle Objekte der Quelle in die Cloud gehen, dann sollten Sie hier die Checkbox entfernen. Als Folge wird aber der geplante Task für die regelmäßige Synchronisation nicht aktiviert. Dies müssen Sie nach Anpassung der Filter dann manuell nachholen.

Achtung:
Ehe Sie weiter machen, müssen Sie sich neu anmelden, damit das aktuelle Konto die neue Gruppenmitgliedschaft und damit die Rechte bekommt.

Dazu legt das Setup mehrere Gruppen an, über die Berechtigungen für ADSync vergeben werden.

 

Das Setup legt automatisch ein Dienstkonto im lokalen Active Directory an, mit dem das DirSync-Task gestartet werden. Dieses Konto benötigt für den Kennwort-Sync natürlich die Rechte. Zudem wird ein neuer Dienst "Microsoft Azure AD Sync" angelegt:

Auch wen der Dienst "läuft" tut er doch nur etwas, wenn er per Taskplaner oder manuell per Kommandozeile angestoßen wird. Dazu gibt es eine eigene EXE, die mit einem Parameter gesteuert wird.

REM Voller Abgeleich jetzt starten
"c:\Program Files\Microsoft Azure AD Sync\Bin\DirectorySyncClientCmd.exe initial 

REM Differenzieller Abgeleich jetzt starten
"c:\Program Files\Microsoft Azure AD Sync\Bin\DirectorySyncClientCmd.exe delta 

Das Programm kommt erst dann wieder zurück, wenn es alle Aktionen ausgeführt hat. Es ist damit optimal als Prozess in eine Provisoining-Plattform einzubinden, die lokal die Anwender verwaltet und erst nach Abschluss des lokalen Provisioning die Replikation in die Cloud anstoßen soll.

 

Den Assistent zur ersten Konfiguration können Sie immer wieder von Hand starten um z.B.: neuen Domänen zu addieren oder zu entfernen, die Dienstkonten in de Cloud zu ändern oder die erweiterten Funktion (Exchange Hybrid, Kennwort-Sync etc.) zu ändern. Das Icon dazu liegt auf dem Desktop des Benutzer, welcher ADSync installiert hat oder kann auch manuell aufgerufen werden

"C:\Program Files\Microsoft Azure Connection Tool\DirectorySyncTool.exe"

Filtern

Beachten Sie dazu auch die ausführlichere Seite ADSync Filterung

Die meisten kleineren Firmen werden diesen Bereich überspringen, da sie nichts filtern wollen. Technisch können Sie sehr wohl sowohl Objekte, auf Basis von Domänen, OUs und LDAP-Feldern, filtern und pro Objekt auch noch einzelne Felder ausschließen. Dabei sollten Sie zwei Dinge sich merken:

  • Filter auf OU-Ebene oder Domäne
    Diese verhindern, dass die Objekte aus dem Quell-Forest in das Metadirectory importiert werden. Wenn Sie nachträglich an diesen Filtern etwas ändern, müssen Sie einen "Full Import" fahren
  • Filter über Gruppenmitgliedschaft
    Dieser Filter wirkt auf den Export in die Cloud. Es werden also alle Objekte aus dem Quell-Forest in das Metadirectory übertragen und erst beim Export zu Office 365 gefiltert. Das ist wichtig, wenn Sie z.B. eine MultiForest-Umgebung oder mit Resource Forests arbeiten. Her werden dann mehrere Objekte beim Import ggfls. "zusammengeführt"

Die Konfiguration sollten Sie hierzu ausschließlich über den AADConnect-Assistenten (AzureADConnect.exe) durchführen.

Für die Verwaltung der Filter gab es beim alten "DirSync" noch den klassischen MIIS-Client ("C:\Program Files\Microsoft Azure ADSync\UIShell\miisclient.exe"), der auch einen guten Überblick über die Jobs und deren Status liefert. Dieses GUI gibt es auch beim ADSync aber nur beim DirSync konnten Sie hier umfangreich Änderungen anwenden.

Heute können Sie mit AADConnect/ADSync Regeln besser im "Synchronization Rules Editor" (C:\Program Files\Microsoft Azure AD Sync\UIShell\SyncRulesEditor.exe) vornehmen. Dies ist die neue Verwaltungsoberfläche zur Anpassung von Regeln und Einrichten von Filtern auf Attributebene

Hier sind alle Regeln und Zuordnungen in einer eigenen GUI, die im Hintergrund natürlich die MIIS-Connectoren verwaltet. Allerdings ist auch dieser Weg steinig und nicht ganz ungefährlich.

Wenn Sie die in den Links angegeben Anleitungen folgen, dann erscheint dort immer ein Attribut "cloudFiltered". Die ist weder ein Feld im Active Directory der Quelle noch in Office 365, sondern ist ein Feld im Metaverse des MIIS, also in der lokalen SQL-Datenbank. Alle Objekte, bei denen dieses Feld auf "true" gesetzt ist, werden durch den ausgehenden Connector in Richtung Office 365 nicht exportiert.

Im Gegensatz zu früheren Anleitungen im Office 365:DirSync Setup wird hier also nicht mehr der eingehende Connector beschränkt, so dass die Objekte erst gar nicht im Metaverse erscheinen, sondern die vom lokalen Active Directory eingehend replizierten Objekte werden im Metaverse nur noch entsprechend gekennzeichnet.

Password Hash Sync

Beachten sie dazu auch die eigene Seite Password Hash Sync (PHS)

Natürlich kann auch ADSync die Kennworte in die Cloud übertragen und auch hier sind es genauer die Hash-Werte, denn die Kennworte liegen im Active Directory nicht im Klartext vor. Aber die Hashwerte in der Cloud reichen, damit Anwender sich an Diensten in der Cloud mit dem gleichen Kennwort anmelden können, wie an lokalen Diensten. Damit sparen insbesondere kleinere Firmen den Aufwand eines ADFS-Servers. Damit dies funktioniert, müssen zwei Dinge erfüllt sein:

  • Berechtigungen
    Das ADSync-Dienstkonto muss in ihrer lokalen Domäne die Rechte “Replicating Directory Changes” und “Replicating Directory Changes All” bekommen. Beide Rechte sind erforderlich.
  • ADSync Konfiguration
    Schon weiter oben haben Sie beim Setup die Checkboxen zum Thema PasswordSync gesehen. Hiervon muss zumindest "Password Synchronization" aktiv sein

 Das Zurückschreiben von der Cloud nach On-Prem ist nur erforderlich, wenn ihre Anwender wirklich das Kennwort auch in der Cloud ändern können. Dazu benötigen Sie aber eine passende Lizenz:

Basic doesn’t have writeback für passwords. You’ll need the AAD-P SKU here.
Quelle: http://azure.microsoft.com/en-us/pricing/details/active-directory/

Auch hier ist die Microsoft Dokumentation sehr gut und ich spare mir weitere Beschreibungen. Wenn Sie zur generellen Betrachtung dieser Technik Informationen suchen, dann finden Sie diese auf der Seite Office 365':Password Sync.

Update und AutoUpdate

AADConnect und der darin enthaltene ADSync wird immer mal wieder aktualisiert.

Das passiert sogar recht regelmäßig (monatlich) und nachdem Sie die aktuellste Version herunter geladen haben, können Sie diese einfach über die bestehende Installation drüber installieren. Das Setup erkennt die bestehende Installation und bietet ein Update an.

Danach startet aber wieder der Assistent und Sie müssen die Konfiguration noch einmal durchlaufen. Dazu ist es wieder erforderlich, die Anmeldedaten für Office 365 anzugeben. Mit der Version 1.1.180 ist mir das erste mal die Option "Auto Upgrade" aufgefallen.

Angeblich gibt es diese Option schon seit 1.1.105 und sie war bei mir auch aktiv. Allerdings hat sich mein System dennoch nicht automatisch aktualisiert. Allerdings habe ich nun auch die Ursache in der Dokumentation gefunden:

Wenn auf dem Server die Synchronization Service Manager-Benutzeroberfläche geöffnet ist, wird das Upgrade angehalten, bis die Benutzeroberfläche geschlossen wird.
Quelle: https://azure.microsoft.com/de-de/documentation/articles/active-directory-aadconnect-feature-automatic-upgrade/

Über die PowerShell kann die Konfiguration diesbezüglich überprüft und auch geändert werden.

PS C:\> Get-ADSyncAutoUpgrade
Enabled

# Moegliche Optionen sind:
Set-ADSyncAutoUpgrade -AutoUpgradeState Disabled
Set-ADSyncAutoUpgrade -AutoUpgradeState Enabled
Set-ADSyncAutoUpgrade -AutoUpgradeState Suspended

Das "automatische Update" protokolliert seine Aktionen im Application Eventlog (Quelle "Azure AD Connect Update) sichtbar sind. Ein passender Filter zeigt die Events an:

Die Events sind sehr aussagekräftig, wenngleich Sie bis auf wenige Ausnahmen alle die EventID 904 haben. Dennoch sind die Beschreibungen hilfreich und verweisen auf Logdateien (Bei mir in C:\Users\Default\AppData\Local\AADConnect) mit weitergehenden Informationen.

Die aktuelle Version des installierten ADSync/AADConnect bekommen Sie mit folgender Konfiguration aus

Get-ADSyncGlobalSettingsParameter `
   | Where-Object {$_.Name -like "Microsoft.Synchronize.ServerConfigurationVersion" } `
   | Select Value

Value
-----
1.1.130.0

ADSync Sync V2 Endpoint

Im Dezember 2020 hat Microsoft eine neue "V2" als Schnittstelle für ADSync frei gegeben. Die bisherige Schnittstelle hatte einige Einschränkungen, die aber nur in ganz seltenen Fällen sie betroffen haben dürften:

  • Performance
    Wenn Sie in "ganz großen" Umgebungen unterwegs sind, dann kann ADSync ziemlich langsam werden. Vor einigen Jahren habe ich einem ADSync mit >100.00 Objekten eingerichtet und da die Cloud auch "drosselt", hat es viele Stunden gedauert. Auch größere Updates an vielen Objekten, z.B. Änderungen des Firmennamens im AD-Attribute "Company" haben ADSync schön ins schwitzen gebracht. Die Neue API soll hier viel besser arbeiten.
  • Gruppen mit >50.000 Mitgliedern
    Es dürfte wohl nur ganz wenige Firmen geben, die in ihrem Active Directory so viele Objekte haben UND diese Objekte auch noch alle in einer großen Gruppen als Mitglied geführt werden. Aber die bisherige API konnte so eine Gruppe nicht synchronisieren. Mit der neuen API wurde das Limit auf 250.000 Mitglieder angehoben

Der Wechsel auf V2 erfolgt aktuell noch nicht automatisch sondern ist eine manuelle Konfiguration und sie benötigen mindestens Azure AD Connect Version 1.5.30.0 oder neuer. Danach können Sie dann auf der lokalen PowerShell der installierten ADSync-Instant folgende Schritte durchlaufen:

Set-ADSyncScheduler -SyncCycleEnabled $false
Import-Module 'C:\Program Files\Microsoft Azure AD Sync\Extensions\AADConnector.psm1'
Set-ADSyncAADConnectorExportApiVersion 2 
Set-ADSyncAADConnectorImportApiVersion 2

Wenn Sie die 50.000er Grenze bei Gruppenmitgliedern anpassen wollen, dann müssen Sie die ADSync Regeln noch anpassen. Beachten Sie dabei die Hinweise von Microsoft zum Anpassen der Regeln.

Sie sollten nie die "Default Rules" ändern sondern immer eine Kopie mit niedriger "Precedence" anlegen und die originale Regel nur deaktivieren.

  1. Regel "Out to AAD - Group Join" zu ihrem Tenant suchen (Meist mit Precedence 137)
  2. Editieren und dabei eine Kopie erstellen und deren "Precedence z.B. auf 99 oder was anderes kleineres stellen
  3. Unter "Transformation" die Zeile zu "Member" suchen und in Source die Nummer auf den eigenen Bedarf anpassen

Danach können Sie dann den Scheduler wieder wie folgt aktivieren:

Set-ADSyncScheduler 
   -SyncCycleEnabled $true

Im Azure Portal können Sie kontrollieren, wie lange ADSync danach läuft.

Weitere Links

Microsoft Consultant Exchange & Skype for Business (m/w)
Kommen Sie zu Net at Work. Wir haben spannende Projekte bei innovativen Kunden. Unser Team arbeitet kollegial und kooperativ – ständiger Austausch und Weiterbildung sind bei uns Standard.
https://www.netatwork.de/unternehmen/karriere/