SMTP AUTH mit OAuth2

Für die SMTP Anbindung eines Exchange Online-Konto für das Authentifizierungsverfahren OAuth2 im esExchange finden Sie nachfolgend eine kurze Beschreibung.

 

Die nachfolgende Beschreibung ist für Administratoren vorgesehen und setzt grundlegende Kenntnisse und Berechtigungen mit dem Microsoft Admin Center, Azure Active Directory und der App Registrierung für Exchange Online voraus.

Damit die nachfolgenden Schritte angewendet werden können, ist die grundsätzliche Konfiguration für Exchange Online erforderlich, siehe auch Anwendungs-Authentifizierung mit OAuth 2.0 (IDs, Secret).

 

Azure Active Directory (Azure AD oder AAD) unter dem neuen Namen Microsoft Entra ID ist eine Microsoft-Lösung für die Identitäts- und Zugriffsverwaltung, mit der Unternehmen Identitäten in Hybrid- und Multicloud-Umgebungen sicher verwalten können.

Für die weiteren Schritte wird ein entsprechend konfigurierte Microsoft Entra ID für Anwendungen vorausgesetzt.

 

es2000 macht keine Angaben zu einer bestimmten Eignung der folgenden Informationen. Irrtümer und Fehler bleiben ausdrücklich vorbehalten, die Angaben erfolgen ohne Gewähr. Die Angaben stellen nur Beschreibungen dar und enthalten keine Garantie der Beschaffenheit der Produkte. Die Informationen können zum Teil auch ein Versuch sein, Ihnen bei einer Aufgabenstellung zu helfen, selbst wenn das Produkt eigentlich nicht für diesen speziellen Zweck vorgesehen wurde.

Hintergrund

Die SMTP Standardauthentifizierung / Basisauthentifizierung für Exchange Online mit Benutzername und Kennwort wird von Microsoft in Zukunft nicht mehr unterstützt. Bei neu eingerichteten Exchange Online Konto kann aus diesem Grund keine Basisauthentifizierung mehr aktiviert werden, für bestehende Konten wird diese Authentifizierung in absehbarer Zeit abgeschaltet, siehe auch https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online.

Diese Entscheidung von Microsoft erfordert, dass Anwendungen mit Standardauthentifizierung eine sichere Authentifizierungsmethode verwenden müssen. Die moderne Authentifizierung (tokenbasierte Autorisierung mit OAuth 2.0) bietet viele Vorteile und Verbesserungen, die dazu beitragen, die Sicherheitsprobleme der Standardauthentifizierung zu minimieren. OAuth-Zugriffstoken haben beispielsweise eine begrenzte Lebensdauer und sind spezifisch für die Anwendungen und Ressourcen, für die sie ausgestellt wurden. Sie können daher nicht wiederverwendet werden.

Über die Microsoft Powershell können Sie prüfen, ob die Basis-Authentifizierung für die Verbindung zum Exchange Online verwendet wird, siehe auch Powershell Befehle zum Prüfen der bestehenden Verbindung.

 

Auch wenn für die Verbindung zum Exchange Server die Basisauthentifizierung / Standardauthentifizierung noch zur Verfügung steht, wird empfohlen die sichere Authentifizierung über OAuth schon vor der Abschaltung der Standardauthentifizierung umzustellen.

Voraussetzungen für SMTP über OAuth

  • Microsoft 365 Tenant mit Exchange Online

  • Zugriff auf das Microsoft Entra Admin Center (früher Azure AD)

  • PowerShell-Zugriff mit administrativen Rechten

Konfiguration des ServerPrincipials für SMTP OAuth

Die entsprechenden Schritte werden über die PowerShell konfiguriert

SMTP OAuth per PowerShell konfigurieren

  1. Öffnen Sie eine PowerShell Sitzung mit administrativen Berechtigungen (als Admin)

  2. Installieren bzw. Importieren Sie das Modul für die Verbindung zum Exchange Online (falls nicht vorhanden):

    Installation

    Install-Module -Name ExchangeOnlineManagement

    Import

    Import-Module ExchangeOnlineManagement
    Get-Module ExchangeOnlineManagement

  3. Melden Sie sich mit Ihren administrativen Zugangsdaten beim Exchange Online an .

    Connect-ExchangeOnline -UserPrincipalName "company\admin"

     

    Connect-ExchangeOnline -UserPrincipalName admin@deinedomain.de

    Nach der Ausführung des Skriptes werden ggf. weitere Zugangsdaten über ein separates Fenster abgefragt.

  4. Führen Sie den folgenden Befehl zum Anlegen des ServerPrincipals (Verbindung zwischen App Registrierung und Mailbox des esservers) durch.

    Kopieren
    Server Principal anlegen
    New-Serviceprincipal 
    -AppId "AppId_yx-yxyx-yxyx-yxyx-yxyxyxyxyxyx" 
    -ObjectId "ObjectId-yxyx-yxyx-yxyx-yxyxyxyxyxyx" 
    -DisplayName "SMTP Application Send Permission"

    Die Angaben für das Skript (AppID und ObjectID) finden Sie im Microsoft Entra Admin Center (Entra ID -> Enterprise applications / Entra ID -> Unternehmensanwendungen). Der DisplayName kann individuell festgelegt werden.

     

    Die Im Microsoft Entra Admin Center unter App-Registrierungen angezeigte Anwendungs-ID (AppID) und Objekt-ID (ObjectID) können für diesen Befehl nicht verwendet werden.

    Im Beispiel wird die App Registrierung es-business-server für die Anbindung des Exchange Online an den Buisinessserver verwendet.

    Microsoft Entra admin center (Englisch)

    Microsoft Entra Admin Center (Deutsch)

     

    Mit dem Befehl Get-Serviceprincipal können Sie die ordnungsgemäße Ausführung des Befehls kontrollieren.

  5. Es ist noch erforderlich dem verwendeten Exchange Konto die erforderliche Rechte zuzuordnen.

    Kopieren
    Add-MailboxPermission -identity “ZielKontoName” -User "New-Serviceprincipal-Idxy-yxyxyxyxyx" -AccessRights FullAccess

    -identity "ZielKontoName"

    Name des Exchange Kontos, welches für die Businesssever Anbindung verwendet wird.

    - User "New-Serviceprincipal-Idxy-yxyxyxyxyx"

    Hier kann der Name des neu angelegten ServerPrincipals oder die ObjectId verwendet werden.

    -AccessRights

    Hiermit ordnen Sie eine Berechtigung zu.

    Im obigen Beispiel wird die volle Berechtigung (FullAccess) zugeordnet.

    Folgende Berechtigungen sind möglich (Kombinationen sind möglich):

    • ChangeOwner

    • ChangePermission

    • DeleteItem

    • ExternalAccount

    • FullAccess (bevorzugte Berechtigung)

    • ReadPermission

     

    Die Art der Berechtigung ist abhängig vom Einsatzzweck der Exchangeverbindung.

    Für die korrekte Vergabe von Berechtigungen ist der Exchange-Administrator verantwortlich.

    Siehe auch

    https://learn.microsoft.com/en-us/powershell/module/exchange/add-mailboxpermission?view=exchange-ps

  6. Die Konfiguration ist damit abgeschlossen. Stellen Sie sicher, dass im Businessserver für den Postausgangsserver die entsprechend konfigurierte Exchange Online-Verbindung eingetragen ist.

Powershell Befehle zum Prüfen der bestehenden Verbindung

Die folgenden Befehle können von erfahrenen Administratoren in der Powershell (mit Adminrechten) verwendet werden, um den Status einer bestehenden Verbindung zu Exchange Online zu prüfen und ggf. Probleme zu beheben.

 

Für die Ausführung der Befehle ist eine bestehende Verbindung inklusive Anmeldung am Exchange Online erforderlich.

Prüfen, ob Basic Auth erlaubt ist

Get-AuthenticationPolicy | FL *basic*

Prüfen, ob die SMTP Authentifikation nicht ganz deaktiviert ist

Get-TransportConfig |FL SMTPClient*

Prüfen, ob nicht eine Regel wie 'BLOCK-BasicAuth' noch aktiv ist

Get-AuthenticationPolicy | Format-List

Ist die Regel 'BLOCK-BasicAuth' aktiv, kann sie mit dem folgenden Befehl deaktiviert werden

Get-AuthenticationPolicy -Identity BLOCK-BasicAuth |Remove-AuthenticationPolicy