EXO Empfängerrichtlinien und EmailAddressPolicyEnabled
Über den Schalter "EmailAddressPolicyEnabled" wird in Exchange gesteuert, ob die Mailadresse und ProxyAddresses eines Exchange Empfängers über die Empfängerrichtlinien oder manuell verwaltet werden. In Exchange Online gibt es den Schalter aber steht auf $False. Schludert hier ADSync oder ist das Feld nicht wichtig und gibt es Empfängerrichtlinien in Exchange Online? Ausgangspunkt war die Frage eines Kunden, ob ein "Remote Move Request" etwas an den Empfängerrichtlinien dreht. Das habe ich nachgestellt.
Exchange OnPremises
Ich habe in meiner Laborumgebung folgende Konfiguration. Die meisten Empfänger sind "Standard" mit EmailAddressPolicyEnabled=$true.
[PS] C:\>Get-Recipient | ft primarysmtpaddress,EmailAddressPolicyEnabled
Das ist wichtig und sollte so sein, da der HCW - Hybrid Configuration Wizard bei der Einrichtung die Empfängerrichtlinien dergestalt anpasst, dass eine "<tenantname>.mail.onmicrosoft.com"-Adresse addiert wird.
[PS] C:\>(Get-EmailAddressPolicy "Default Policy").EnabledEmailAddressTemplates
Damit ist sichergestellt, dass jeder Empfänger eine passende Adresse hat, die mit der späteren Migration durch einen Remote Move Request. All diese Informationen werden dann durch ADSync auch ins Entra ID und Exchange Online repliziert.
Um eine Variant beim test zu haben, habe ich ein Testpostfach absichtlich "manuell" konfiguriert:
[PS] C:\>Set-Mailbox test1 -PrimarySmtpAddress Test1_1@uclabor.de -EmailAddressPolicyEnabled $false [PS] C:\>Get-Mailbox test1 | fl EmailAddressPolicyEnabled EmailAddressPolicyEnabled : False
Exchange Online
Auch in Exchange Online gibt es tatsächlich Empfängerrichtlinien. Sie finden Sie aber nicht im Exchange Admin Center oder einem anderen Portal, sondern nur in der Exchange Online PowerShell. Per Default gibt es genau eine "Default Policy".
Get-EmailAddressPolicy ` | fl Identity,*recipientfilter,HasEmailAddressSetting,` *AddressTemplates,RecipientFilterApplied,IncludedRecipients
Es gibt sogar weitere Commandlets zu den RecipientPolicies in Exchange Online
Ich habe bislang noch nicht analysiert, was passieren würde. Microsoft hat das Thema nicht dokumentiert und es ist wohl am besten, hier nichts zu konfigurieren.
Selbst die "Default Policy" wurde bislang noch nie angewendet, wenn ich dem leeren Feld "LastUpdatedRecipientFilter" glauben soll. Ein manuelles Update ist auch nicht möglich, denn das Commandlet "Update-EmailAddressPolicy" gibt es nicht in Exchange Online:
https://learn.microsoft.com/en-us/powershell/module/exchange/update-emailaddresspolicy
- Update-Recipientpolicy
https://learn.microsoft.com/en-us/powershell/module/exchange/update-emailaddresspolicy?view=exchange-ps
Der Versuch die "Default Policy" so zu ändern, dass meine eigene SMTP-Domain anstelle der "onmicrosoft.com"-Adresse genutzt wird, wurde mangels Berechtigungen abgewiesen.
Set-EmailAddressPolicy "Default Policy" -EnabledEmailAddressTemplates 'SMTP:@msxfaq.net' Write-ErrorMessage : |System.InvalidOperationException|Sie sind nicht berechtigt, diesen Vorgang an einer E-Mail-Adressenrichtlinie "Default Policy" durchzuführen.
Ich war natürlich Global Admin und Exchange Administrator in meinem Tenant und laut Dokumentation ist das Commandlet schon für Exchange Online verfügbar.
- Set-EmailAddressPolicy
https://learn.microsoft.com/de-de/powershell/module/exchange/set-emailaddresspolicy?view=exchange-ps
Ich würde behaupten, dass hier noch Commandlets bereitgestellt werden, die keine Funktion mehr haben
Aber das ist vielleicht gar nicht notwendig, denn durch den Abgleich mit ADSync sind alle OnPremises Objekte auch in Exchange Online vorhanden und verwaltet. Eine Ausgabe von Get-Recipient in der Exchange Online PowerShell liefert hier idealerweise alle Empfänger, die auch im lokalen Active Directory gelistet werden. Zusätzlich gibt es weitere Objekte, die es nur in der Cloud gibt und ohne Group Writeback nicht im lokalen AD nachgeführt werden. Insofern ist die unterschiedliche Menge erklärbar:
Was aber auffällt, ist die Einstellung der "EMailAddressPoliciesEnabled" in Exchange Online. Das Feld ist bei allen Objekten auf "False" gesetzt. Im Gegensatz zu OnPremises kann ich das Feld auch nicht auf "True" setzen.
Den Parameter gibt es gar nicht und es ist wohl gar nicht vorgesehen, dass Exchange Online durch einen Service verwaltet werden. Auch das erscheint logisch, denn das Entra ID bzw. der Entra ID ProvisioningService hat die Hoheit über alle Felder.
- Set-Mailbox
https://learn.microsoft.com/de-de/powershell/module/exchange/set-mailbox?view=exchange-ps
Remote Move Request
Ein Kunde hat mir gesagt, dass beim Remote Move Request eines User von Exchange OnPremises zu Exchange Online angeblich das Feld "EmailAddressPolicyEnabled" von "False" auf "True" verändert wird. Daher habe ich den User "Test1" in meiner Umgebung entsprechend auf "False" gestellt und vorbereitet.
Phase | Beschreibung |
---|---|
Vor dem MoveRequest |
Ausgangssituation war eine OnPremises
SharedMailbox mit abgeschalteten
Empfängerrichtlinien |
Während des MoveRequest |
Die Migration zu Exchange Online war auf "Synced", d.h. alle Elemente waren schon in die Cloud übertragen und das System wartet nur auf meinen Abschluss
|
Move abgeschlossen |
Zuletzt habe ich dann die Migration abgeschlossen und dabei kontrolliert, was MRS über EWS an den lokalen Server übergibt.
Tipp: Wenn Sie "Get-Recipient" nutzen, erhalten Sie die gleiche Information unabhängig vom Empfängertyp |
Dies war nur ein Test von mehreren Versuchen aber zu keiner Zeit hat der Remote Move Request etwas am Feld "EmailAddressPolicyEnabled" verändert. Auch eine Migration von Exchange Online zurück zu Exchange OnPremises hat keine Änderung gebracht. Durch die Änderung im lokalen AD von "Mailbox" zu "RemoteMailbox" und wieder zurück hat natürlich ADSync etwas zu tun bekommen. Allerdinge haben sich nur wenige Felder geändert:
Der "legacyExchangeDN" hat sich geändert, während dann der vorherige DN als "X500"-Adresse in die ProxyAddresses addiert wurde. Auch die Pflege des RemoteRecipientType und der msExchElcMailboxFlags ist nicht unerwartet.
ADSync
Zuletzt habe ich mir noch mal ADSync angeschaut, ob hier eine Regel zum Abgleich des Felds greifen könnten. Statt nun in den Tiefen des ADSync Regelwerks zu suchen, habe ich einfach lokal die Einstellung von "$False" auf "$True" umgestellt
Wir sehen gut, dass die Information nicht ein eigenes AD-Feld ist, sondern die GUID {26491cfc-9e50-4857-861b-0cb8df22b5d7} vom Feld "PoliciesExcluded" zu "PoliciesIncluded" verschoben wird. Eine Kontrolle beim nächsten ADSync-Lauf zeigte keinerlei zu ändernde Inhalte.
- Office 365 - ADSync Felder
- Azure AD Connect-Synchronisierung: Mit
Azure Active Directory synchronisierte
Attribute
https://docs.microsoft.com/de-de/azure/active-directory/connect/active-directory-aadconnectsync-attributes-synchronized#lync-online-subsequently-known-as-skype-for-business - Azure AD Connect sync: Attributes
synchronized to Azure Active Directory
https://docs.microsoft.com/en-us/azure/active-directory/hybrid/reference-connect-sync-attributes-synchronized - How the proxyAddresses attribute is
populated in Azure AD
https://support.microsoft.com/en-us/help/3190357/how-the-proxyaddresses-attribute-is-populated-in-azure-ad
Zusammenfassung
Microsoft hat mit Exchange 5.5 schon die Funktion eingeführt, dass über konfigurierte Richtlinien die Mailadressen z.B. anhand der Felder "Vorname" und "Nachname" gebildet werden. In Exchange 2000/2003 hat ein eigener "Recipient Update Service" (Exchange 2000/2003 RUS) die Empfänger asynchron mit Mailadressen versorgt und seit Exchange 2007 machen das direkt die Exchange Commandlets, wenn Sie über das Exchange Admin Center (EAC) oder Exchange PowerShell die Empfänger verwalten. Daher sollte sie nie an Exchange vorbei per LDAP, ADSIEDIT o.ä. an den AD-Feldern etwas ändern.
Mit Exchange Online gibt es quasi keine Empfängerrichtlinien mehr, zumindest sind sie per Admin-Portal nicht mehr sichtbar aber per PowerShell durchaus einsehbar und sogar änderbar. Aber das ist auch gar nicht erforderlich, denn die wenigsten Firmen werden mit "Cloud Only"-Konten arbeiten und hier wird der UPN auch zur Mailadresse und zusätzliche Adressen pflegen Sie einfach manuell, per Exchange Admin Center oder Exchange Online PowerShell. Alle Firmen, die aber weiter mit einem lokalen Active Directory und einem Verzeichnisabgleich arbeiten, müssen die Exchange Empfänger sowieso im lokalen Active Directory mit Exchange OnPremises oder der Recipient Management PowerShell verwalten und hier werden die Empfängerrichtlinien dann angewendet. ADSync sorgt im Anschluss dafür, das die ProxyAddresses auch in Exchange Online ankommen. Insofern folgt auch Exchange Online den lokal konfigurierten Empfängerrichtlinien.
Damit ist aber auch verständlich, dass in Exchange Online alle Objekte mit "EmailAddressPolicyEnabled:$False" konfiguriert sind. Es mach nämlich gar keinen Sinn, wenn ein Prozess in Exchange Online etwas an den ProxyAddresses verändert, da diese Informationen durch ADSync nie ins lokale AD übertragen werden.
So genau stimmt das natürlich nicht Exchange Online und EntraID nehmen sich schon die Freiheit heraus, bestimmte ProxyAddresses in Exchange Online zu hinterlegen, wenn Sie nicht von OnPremises kommen, z.B. wird der UPN auch immer als SMTP-Adresse addiert und auch die SIP-Adressen für Voicemail etc. kommt ganz ohne ADSync oder Empfängerrichtlinien in Exchange Online hinzu.
Weitere Links
- HCW - Hybrid Configuration Wizard
- Remote Move Request - Kurzfassung
- ADSync / AADConnect
- PrimarySMTPAdress und Recipientpolicies
- MOERA - Microsoft Online Email Routing Address
- EXO PowerShell Automation
- LES - Last Exchange Server
- E2K7 Empfängermanagement
- E2K7:RUS
- Recipient Management PowerShell
- Office 365 - ADSync Felder
- Office 365 Email Address Policies
https://practical365.com/office-365-email-address-policies/ - Office365-AddBulkEmailAddressses.ps1
https://evotec.xyz/hub/scripts/office365-addbulkemailaddressses-ps1/ - Email address policies in Office 365
https://www.nucleustechnologies.com/blog/email-address-policies-in-office-365/ - Azure AD Connect-Synchronisierung: Mit
Azure Active Directory synchronisierte
Attribute
https://docs.microsoft.com/de-de/azure/active-directory/connect/active-directory-aadconnectsync-attributes-synchronized#lync-online-subsequently-known-as-skype-for-business - Microsoft Entra Connect Sync: Mit
Microsoft Entra ID synchronisierte Attribute
https://learn.microsoft.com/de-de/entra/identity/hybrid/connect/reference-connect-sync-attributes-synchronized - Azure AD Connect sync: Attributes
synchronized to Azure Active Directory
https://docs.microsoft.com/en-us/azure/active-directory/hybrid/reference-connect-sync-attributes-synchronized - How the proxyAddresses attribute is
populated in Azure AD
https://support.microsoft.com/en-us/help/3190357/how-the-proxyaddresses-attribute-is-populated-in-azure-ad