Exchange Accepted Domains
Exchange weiß anhand seiner "Accepted Domains" sehr genau Bescheid, welche SMTP-Domains Exchange nutzen kann. Leider ist das kein Schutz gegen ein fehlerhaftes Provisioning. Denn leider erzwingen nicht alle Commandlets die Verwendung der richtigen Maildomänen. Exchange Online hingegen erzwingt die im Tenant definierten SMTP-Domänen. So kann ein Administrator absichtlich oder durch einen Tippfehler fehlerhafte Objekte anlegen. Hier am Beispiel einer Gruppe.
Falsches Provisioning
Das folgende Beispiele wurden mit der Exchange On-Premises-Umgebung von Net at Work nachgestellt. Ich habe dort einen Mailverteiler mit einer primären SMTP-Adresse angelegt, deren Domain (uclabor.de) nicht zu dieser Firma und nicht dem per Exchange Hybrid verbundenen Tenant gehört. Der Befehl war schnell umgesetzt:
New-DistributionGroup fctest ` -Members fcarius ` -PrimarySmtpAddress fctest@uclabor.de
Danach hatte ich eine mailaktivierte Sicherheitsgruppe, in der mein Postfach als Mitglied aufgenommen wurde.
OnPrem Verteiler
Ein Blick auf den Verteiler per PowerShell zeigt keine besonderen Auffälligkeiten. Beachten sie aber den Inhalt der Felder "Mail" und "EMailAddresses".
[PS] C:\>Get-DistributionGroup fctest |fl GroupType : Universal SamAccountName : fctest-1-583180161 BypassNestedModerationEnabled : False IsDirSynced : False ManagedBy : {uclabor.de/Users/Carius, Frank (ADM)} MemberJoinRestriction : Closed MemberDepartRestriction : Open MigrationToUnifiedGroupInProgress : False ExpansionServer : ReportToManagerEnabled : False ReportToOriginatorEnabled : True SendOofMessageToOriginatorEnabled : False AcceptMessagesOnlyFrom : {} AcceptMessagesOnlyFromDLMembers : {} AcceptMessagesOnlyFromSendersOrMembers : {} AddressListMembership : {\All Distribution Lists, \Alle Gruppen, \Default Global Address List, \Globale Standardadressliste} AdministrativeUnits : {} Alias : fctest ArbitrationMailbox : uclabor.de/Users/SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} BypassModerationFromSendersOrMembers : {} OrganizationalUnit : uclabor.de/Users CustomAttribute1 : CustomAttribute10 : CustomAttribute11 : CustomAttribute12 : CustomAttribute13 : CustomAttribute14 : CustomAttribute15 : CustomAttribute2 : CustomAttribute3 : CustomAttribute4 : CustomAttribute5 : CustomAttribute6 : CustomAttribute7 : CustomAttribute8 : CustomAttribute9 : ExtensionCustomAttribute1 : {} ExtensionCustomAttribute2 : {} ExtensionCustomAttribute3 : {} ExtensionCustomAttribute4 : {} ExtensionCustomAttribute5 : {} DisplayName : fctest EmailAddresses : {SMTP:fctest@uclabor.de} GrantSendOnBehalfTo : {} ExternalDirectoryObjectId : HiddenFromAddressListsEnabled : False LastExchangeChangedTime : LegacyExchangeDN : /o=UCLabor/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=0efcea124e3740bdaf58c01760276c67-fctest MaxSendSize : Unlimited MaxReceiveSize : Unlimited ModeratedBy : {} ModerationEnabled : False PoliciesIncluded : {} PoliciesExcluded : {{26491cfc-9e50-4857-861b-0cb8df22b5d7}} EmailAddressPolicyEnabled : False PrimarySmtpAddress : fctest@uclabor.de RecipientType : MailUniversalDistributionGroup RecipientTypeDetails : MailUniversalDistributionGroup RejectMessagesFrom : {} RejectMessagesFromDLMembers : {} RejectMessagesFromSendersOrMembers : {} RequireSenderAuthenticationEnabled : True SimpleDisplayName : SendModerationNotifications : Always UMDtmfMap : {emailAddress:328378, lastNameFirstName:328378, firstNameLastName:328378} WindowsEmailAddress : fctest@uclabor.de MailTip : MailTipTranslations : {} Identity : uclabor.de/Users/fctest IsValid : True ExchangeVersion : 0.10 (14.0.100.0) Name : fctest DistinguishedName : CN=fctest,OU=Modern Workplace,OU=Abteilung,DC=uclabor,DC=de Guid : f0e4d301-81bd-42fc-aff6-e9706b7ac9e3 ObjectCategory : uclabor.de/Configuration/Schema/Group ObjectClass : {top, group} WhenChanged : 09.07.2020 00:18:46 WhenCreated : 09.07.2020 00:06:06 WhenChangedUTC : 08.07.2020 22:18:46 WhenCreatedUTC : 08.07.2020 22:06:06 OrganizationId : Id : uclabor.de/Users/fctest OriginatingServer : NAWDC02.uclabor.de ObjectState : Changed
Interne Erreichbarkeit
Ich konnte sogar On-Premises "intern" eine Mail per Outlook an diese Adresse senden, die an die Mitglieder zugestellt wurde. Eine Einlieferung per SMTP war hier möglich, da der SMTP-Server von intern auch ohne Authentifizierung die Mails angenommen hat.
Send-MailMessage ` -SmtpServer localhost ` -From user1@msxfaq.de ` -To fctest@uclabor.de ` -Subject test20200709-0009
Entsprechend kam in Outlook die folgende Mail an:
Das "Mitglied" der Verteilergruppe lag sogar schon in Exchange Online. Das hat aber Exchange On-Premises nicht gestört, da die Mail lokal durch den Transport aufgeteilt und in die Cloud gesendet wurde.
ADSync Export
Interessant wird es nun, wenn ADSync diesen neuen Verteiler findet und zu Exchange Online repliziert. Das Fenster zeigt die ausgehende Replikation in den Tenant
Auch hier ist zu sehen, dass er z.B. "Mail" und "ProxyAddresses" zu Exchange Online schreibt. Es gibt keine Warnung und keinen Fehler im ADSync-Log
Office 365 Verteiler
Leider kommen die Felder dort aber nicht an. Das Exchange Online Control Panel zeigt andere Werte für "Mails" und "EMailAddresses" an.
Bedenken Sie, dass in dem Tenant nicht die Domain "UCLABOR.DE" registriert ist und er daher diese Adressen gar nicht nutzen darf. ProxyAddresses müssen ja weltweit eindeutig sein und Exchange Online erlaubt daher nur die Domains in den Feldern, die ihnen auch gehören.
Das gilt übrigends genauso für "interne Domänen" wie "firma.local" oder andere SMTP-Domänen in ihrer Exchange Welt, die sie im Tenant nicht eintragen können
Auswirkung auf die Erreichbarkeit
Wenn aber das Objekt in der Cloud nicht die Mailadresse "fctest@uclabor.de" hat, dann kann diese Adresse aus der Cloud auch nicht erreicht werden.
Exchange Online scheint nichts zu der On-Premises verwendeten Mailadresse zu wissen, sondern leitet die Mail direkt nach extern weiter. Da es die Adresse im "echten Tenant" mit uclabor.de nicht gibt, bekomme ich den NDR zurück. Also haben mich alle Eigenschaften in Exchange Online interessiert:
PS C:\> Get-DistributionGroup fctest | fl * PSComputerName : outlook.office365.com PSShowComputerName : False GroupType : Universal SamAccountName : fctest_ad255adfeb53870-1432971631 BypassNestedModerationEnabled : False IsDirSynced : True ManagedBy : {Organization Management} MemberJoinRestriction : Closed MemberDepartRestriction : Closed MigrationToUnifiedGroupInProgress : False ExpansionServer : ReportToManagerEnabled : False ReportToOriginatorEnabled : True SendOofMessageToOriginatorEnabled : False Description : {} BccBlocked : False AcceptMessagesOnlyFrom : {} AcceptMessagesOnlyFromDLMembers : {} AcceptMessagesOnlyFromSendersOrMembers : {} AddressListMembership : {\Default Global Address List, \All Distribution Lists, \Offline Global Address List, \All Recipients(VLV)...} AdministrativeUnits : {} Alias : fctest ArbitrationMailbox : SystemMailbox{15e25b94-0120-42b3-ae34-7aae37db8ded} BypassModerationFromSendersOrMembers : {} OrganizationalUnit : eurpr04a003.prod.outlook.com/Microsoft Exchange Hosted Organizations/carius.onmicrosoft.com CustomAttribute1 : CustomAttribute10 : CustomAttribute11 : CustomAttribute12 : CustomAttribute13 : CustomAttribute14 : CustomAttribute15 : CustomAttribute2 : CustomAttribute3 : CustomAttribute4 : CustomAttribute5 : CustomAttribute6 : CustomAttribute7 : CustomAttribute8 : CustomAttribute9 : ExtensionCustomAttribute1 : {} ExtensionCustomAttribute2 : {} ExtensionCustomAttribute3 : {} ExtensionCustomAttribute4 : {} ExtensionCustomAttribute5 : {} DisplayName : fctest EmailAddresses : {SMTP:fctest1938@carius.onmicrosoft.com, X500:/o=UCLabor/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=0efcea124e3740bdaf58c01760276c67-fctest} GrantSendOnBehalfTo : {} ExternalDirectoryObjectId : fe624a1b-6e8d-49e4-9705-96c8bda7fb08 HiddenFromAddressListsEnabled : False LastExchangeChangedTime : LegacyExchangeDN : /o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipien ts/cn=33be5152b69b48979f8300def571ccd5-fctest_ad25 MaxSendSize : Unlimited MaxReceiveSize : Unlimited ModeratedBy : {} ModerationEnabled : False PoliciesIncluded : {} PoliciesExcluded : {{26491cfc-9e50-4857-861b-0cb8df22b5d7}} EmailAddressPolicyEnabled : False PrimarySmtpAddress : fctest1938@carius.onmicrosoft.com RecipientType : MailUniversalDistributionGroup RecipientTypeDetails : MailUniversalDistributionGroup RejectMessagesFrom : {} RejectMessagesFromDLMembers : {} RejectMessagesFromSendersOrMembers : {} RequireSenderAuthenticationEnabled : True SimpleDisplayName : SendModerationNotifications : Always UMDtmfMap : {emailAddress:3283781938, lastNameFirstName:328378, firstNameLastName:328378} WindowsEmailAddress : fctest1938@carius.onmicrosoft.com MailTip : MailTipTranslations : {} Identity : fctest_ad255adfeb Id : fctest_ad255adfeb IsValid : True ExchangeVersion : 0.10 (14.0.100.0) Name : fctest_ad255adfeb DistinguishedName : CN=fctest_ad255adfeb,OU=carius.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=EURPR04A003,DC=prod,DC=outlook,DC=com ObjectCategory : EURPR04A003.prod.outlook.com/Configuration/Schema/Group ObjectClass : {top, group} WhenChanged : 09.07.2020 00:21:21 WhenCreated : 09.07.2020 00:21:20 WhenChangedUTC : 08.07.2020 22:21:21 WhenCreatedUTC : 08.07.2020 22:21:20 ExchangeObjectId : 87484d69-b0be-4827-96a1-a6f6d2cede29 OrganizationId : EURPR04A003.prod.outlook.com/Microsoft Exchange Hosted Organizations/carius.onmicrosoft.com - EURPR04A003.prod.outlook.com/Configu rationUnits/carius.onmicrosoft.com/Configuration Guid : 87484d69-b0be-4827-96a1-a6f6d2cede29 OriginatingServer : VI1PR04A03DC004.EURPR04A003.prod.outlook.com ObjectState : Changed
Und noch mal in der neuen Form:
PS C:\> Get-EXORecipient fctest | fl * ExternalDirectoryObjectId : fe624a1b-6e8d-49e4-9705-96c8bda7fb08 Identity : fctest_ad255adfeb Alias : fctest EmailAddresses : {SMTP:fctest1938@carius.onmicrosoft.com, X500:/o=UCLabor/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=0efcea124e3740bdaf58c01760276c67-fctest} DisplayName : fctest Name : fctest_ad255adfeb PrimarySmtpAddress : fctest1938@carius.onmicrosoft.com RecipientType : MailUniversalDistributionGroup RecipientTypeDetails : MailUniversalDistributionGroup ExchangeVersion : 0.10 (14.0.100.0) DistinguishedName : CN=fctest_ad255adfeb,OU=carius.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=EURPR04A003,DC=prod,DC=outlook,DC=com OrganizationId : EURPR04A003.prod.outlook.com/Microsoft Exchange Hosted Organizations/carius.onmicrosoft.com - EURPR04A003.prod.outlook.com/ConfigurationUnits/carius.onmicrosoft.com/Configuration
Es gibt als auch hier keinen Treffer auf "uclabor.de" in den Exchange Online Properties. Sie können natürlich den Empfänger im Adressbuch finden und dort auch adressieren:
Diese Mail kommt dann auch an.
Aber viele andere Dienste, die eine Mail an diese Gruppe über die SMTP-Adresse senden wollen, können ihre Mails zumindest nicht in Exchange Online abliefern. Das betrifft interne Absender im gleichen Tenant, z.B. Flows, PowerApps, SharePoint-Listen u.a. aber auch externe Absender. Wenn Exchange Online in dem Fall eine Mail an einen Empfänger in der Domain "uclabor.de" bekommt, dann wird Exchange Online sicher nicht alle Tenants durchsuchen, sondern anhand der Domain schon den Tenant auswählen, der die Domain tatsächlich registriert hat und dann über Inbound Connectoren die Mail weiter verarbeiten.
ADSync wieder zurück
Nun wissen Sie zumindest seit ADSync Bidirektional, dass der Verzeichnisabgleich mit ADSync auch einige Felder in die Gegenrichtung überträgt. Beim nächsten Lauf überträgt ADSync bei einer Verteilergruppe nur das Feld den "ProxyAddresses" zurück in das lokale Active Directory. Der LegacyExchangeDN aus der Cloud wird als X500-Adresse in die lokalen Proxy-Addresses geschrieben.
Einen anderen SourceAnchor oder msds-ConsistencyGUID gib es bei Gruppen im Gegensatz zu Benutzern nicht.
Update der lokalen Gruppe
Entsprechend wurde die Gruppe im lokalen Active Directory nun aktualisiert.
[PS] C:\>Get-DistributionGroup fctest | fl RunspaceId : 112ab23a-c1bd-485a-a9df-819507dcbc7b GroupType : Universal SamAccountName : fctest-1-699384151 BypassNestedModerationEnabled : False IsDirSynced : False ManagedBy : {uclabor.de/Users/Carius, Frank (ADM)} MemberJoinRestriction : Closed MemberDepartRestriction : Open MigrationToUnifiedGroupInProgress : False ExpansionServer : ReportToManagerEnabled : False ReportToOriginatorEnabled : True SendOofMessageToOriginatorEnabled : False AcceptMessagesOnlyFrom : {} AcceptMessagesOnlyFromDLMembers : {} AcceptMessagesOnlyFromSendersOrMembers : {} AddressListMembership : {} AdministrativeUnits : {} Alias : fctest ArbitrationMailbox : uclabor.de/Users/SystemMailbox{1f05a927-a08d-42d6-b8f2-49b021aa50b8} BypassModerationFromSendersOrMembers : {} OrganizationalUnit : uclabor.de/Users CustomAttribute1 : CustomAttribute10 : CustomAttribute11 : CustomAttribute12 : CustomAttribute13 : CustomAttribute14 : CustomAttribute15 : CustomAttribute2 : CustomAttribute3 : CustomAttribute4 : CustomAttribute5 : CustomAttribute6 : CustomAttribute7 : CustomAttribute8 : CustomAttribute9 : ExtensionCustomAttribute1 : {} ExtensionCustomAttribute2 : {} ExtensionCustomAttribute3 : {} ExtensionCustomAttribute4 : {} ExtensionCustomAttribute5 : {} DisplayName : fctest EmailAddresses : {x500:/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=45f58a8a2c3a4d2f98ea168785aab30e-fctest, SMTP:fctest@uclabor.de} GrantSendOnBehalfTo : {} ExternalDirectoryObjectId : HiddenFromAddressListsEnabled : True LastExchangeChangedTime : LegacyExchangeDN : /o=UCLabor/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=c7ffbd32e58b4aa6b24e41d9af03fac9-fctest MaxSendSize : Unlimited MaxReceiveSize : Unlimited ModeratedBy : {} ModerationEnabled : False PoliciesIncluded : {} PoliciesExcluded : {{26491cfc-9e50-4857-861b-0cb8df22b5d7}} EmailAddressPolicyEnabled : False PrimarySmtpAddress : fctest@uclabor.de RecipientType : MailUniversalDistributionGroup RecipientTypeDetails : MailUniversalDistributionGroup RejectMessagesFrom : {} RejectMessagesFromDLMembers : {} RejectMessagesFromSendersOrMembers : {} RequireSenderAuthenticationEnabled : True SimpleDisplayName : SendModerationNotifications : Always UMDtmfMap : {emailAddress:328378, lastNameFirstName:328378, firstNameLastName:328378} WindowsEmailAddress : fctest@uclabor.de MailTip : MailTipTranslations : {} Identity : uclabor.de/Users/fctest IsValid : True ExchangeVersion : 0.10 (14.0.100.0) Name : fctest DistinguishedName : CN=fctest,OU=Modern Workplace,OU=Abteilung,DC=uclabor,DC=de Guid : a728303a-6c23-43e0-968f-2774d005f581 ObjectCategory : uclabor.de/Configuration/Schema/Group ObjectClass : {top, group} WhenChanged : 08.07.2020 23:55:12 WhenCreated : 08.07.2020 21:04:11 WhenChangedUTC : 08.07.2020 21:55:12 WhenCreatedUTC : 08.07.2020 19:04:11 OrganizationId : Id : uclabor.de/Users/fctest OriginatingServer : NAWDC003.uclabor.de ObjectState : Changed
Ergebnis
Exchange Online kennt über die im Tenant eingetragenen Domänen sehr genau und erlaubt eine falschen Domänen im Tenant. Das kann ich über Exchange On-Premises leider nicht behaupten. Hier können Sie trotz "Accepted Domains" per Exchange PowerShell und sogar ECP Mailadressen anderer Domänen in die ProxyAddresses schreiben und damit sogar gezielt Mails an diese Adressen umleiten. Das kann gewollt und nützlich sein aber ist natürlich auch ein Thema beim Datenschutz, da Sie damit Mails an ein Ziel ja abfangen können.
Sie sollten solche schmutzigen Konfigurationen möglichst vermeiden, denn spätestens im Exchange Hybrid Mode wird es zu Problemen kommen. Die Grundregel gilt:
Addieren Sie alle "Accepted Domain" auch im Office 365 Tenant und vergeben Sie nie ProxyAddresses aus anderen Domänen. Die einzige Ausnahme sind MailUser/MailContacts.