Azure AD User und Mailbox fehlen im On-Premises Active Directory
Ein Kunde von uns hat sich dazu entschieden, die On-Premises Exchange Infrastruktur nach Office365 auszulagern. Demnach wurden alle Postfächer in die Cloud transferiert, bei einigen sind allerdings ein paar Probleme aufgetaucht. Unter anderem gab es Postfächer, welche ausschließlich in der Cloud vorhanden waren. Selbst der AD-Benutzer existierte nur im Azure Active Directory, im On-Premises AD allerdings nicht. Es ist allerdings fundamental, dass die lokale Infrastruktur alle Benutzer und auch Postfächer kennt, denn einige Attribute lassen sich ausschließlich lokal setzen und bearbeiten. Um dieses Malheur aufzulösen, muss der Benutzer erst ins lokale AD integriert werden. Anschließend muss man am On-Premises Exchange eine Remote Mailbox für den User erstellen.
Azure User ins lokale AD synchronisieren
Der erste Schritt besteht darin, dem lokalen Active Directory beizubringen, dass der Azure User existiert. Da der Azure AD Sync ausschließlich Benutzer in die Cloud synchronisieren kann, in die andere Richtung allerdings nicht (ausgenommen bestimmte Attribute), müssen wir uns an einem kleinen Trick bedienen. Vielleicht habt ihr auch schon einmal etwas von einem Hard- und Soft-Match gehört. Dabei handelt es sich grundsätzlich um jene Methode, wie die Office365 und lokalen User erkannt und miteinander verknüpft werden.
Hard Matching
In neueren Versionen vom Azure AD Connect (ab 1.1.553.0) wird dafür das AD-Attribut „mS-DS-ConsistencyGUID“ herangezogen. Dieser Eintrag ist einmalig und bleibt auch über AD Cross Forest Migrationen hinweg immer gleich. Von daher kann der Sync relativ einfach feststellen: Besitzt der lokale AD-User die gleiche „mS-DS-ConsistencyGUID“ wie der Azure AD User, handelt es sich dabei um einen Match und das Objekt kann eindeutig miteinander verknüpft werden. Wer sich in dieses Thema genauer einlesen möchte, dem kann ich folgende Artikel ans Herz legen:
- Azure AD Connect: objectGUID vs. mS-DS-ConsistencyGuid, Part 1
- Azure AD Connect: objectGUID vs. mS-DS-ConsistencyGuid, Part 2
Soft Matching
Doch wie kann man zwei Objekte miteinander verknüpfen, welche nicht die gleiche „mS-DS-ConsistencyGUID aufweisen? In diesem Fall kommt der Soft-Matching Mechanismus ins Spiel. Hierbei wird der UserPrincipalName (UPN) und die E-Mail Adresse des Benutzers gefiltert. Gibt es einen Match zwischen einem lokalen und einem User in der Cloud, werden beide Objekte miteinander verknüpft. Und genau das machen wir uns zu Nutze.
Da wir nun die grundlegenden Mechanismen geklärt haben, können wir den Azure AD User im lokalen Active Directory erstellen. Wichtig ist dabei, dass wir Namen und PrimarySMTPAdresse genau so, wie sie in der Cloud verwendet wurden, übernehmen. Wichtig ist auch, dass das neu gesetzte lokale Passwort jenes in der Cloud überschreibt. Anschließend können wir den nächste Sync abwarten oder wir starten eine Powershell am Host, wo auch der Azure AD Connect läuft und führen folgenden Befehl aus:
Start-ADSyncSyncCycle -PolicyType Delta
Somit wurde der Sync manuell gestartet, nach wenigen Minuten sollte man das Azure AD aufsuchen und prüfen, ob nun der Wert vom Attribut „Verzeichnis synchronisiert“ auf „Ja“ gesprungen ist.
Außerdem kann man sich noch das Überwachungsprotokoll anschauen, in welcher jede Änderung, die der Azure Sync hervorgerufen hat, protokolliert wird.
RemoteMailbox für User erstellen
Mittlerweile wurde die Verknüpfung hergestellt, doch unser On-Premises Exchange kennt das Postfach des Users noch immer nicht. Damit wir diese Verbindung auch noch wiederherstellen, brauchen wir einmal eine Powershell zum Exchange Online Server und einmal die Management Shell am lokalen Exchange.
Wie man eine Verbindung mit dem Exchange Online mittels Powershell herstellen kann, kann man übrigens hier nachlesen: Connect to Exchange Online PowerShell
Zuerst brauchen wir die ExchangeGUID und ArchiveGUID (falls Archiv vorhanden) von der Cloud Mailbox. Dazu öffnen wir die Powershell und führen folgenden Befehl aus:
PS C:\Users\kschweiger> Get-Mailbox user.cloud | select Name, ExchangeGUID, ArchiveGUID Name ExchangeGuid ArchiveGuid ---- ------------ ----------- user.cloud 594fd053-1f81-4ad0-bc89-9f144c5a5183 de702a74-29dd-46d8-a712-0d033e56a69c
Anschließend wechseln wir auf die Management Shell und erstellen zu aller erst eine Remote Mailbox für den lokalen AD-User. Dabei wird der Benutzer als MailUser im AD angelegt und eine Verknüpfung zwischen On-Premises und Exchange Online hergestellt. Die RemoteRoutingAddress muss dabei natürlich durch die jeweilige Organisationsdomäne ersetzt werden.
Enable-RemoteMailbox user.cloud -RemoteRoutingAddress user.cloud@deinedomain.mail.onmicrosoft.com