Toolmaker Produkt-Dokumentation

Microsoft Exchange 365 - POP mit XOAUTH


Auf den Microsoft Exchange 365-Servern wird im Laufe des Januar 2023 die Basic Authentication für die Protokolle POP und IMAP abgeschaltet (siehe Microsoft Exchange 365 - Keine Basic Authentication mehr ab Oktober 2022).

Ab dann ist es erforderlich, dass Systeme, die E-Mails von diesen Server abrufen wollen, sich mit XOAUTH identifizieren.

Directmail und directspool unterstützen ab Version 5.60.xx XOAUTH.

Um diese Berechtigung auf der IBM i konfigurieren zu können, werden folgende Informationen benötigt:

  1. tenantID
  2. clientID
  3. clientsecret
  4. targetMailbox

Um die Nr. 1-3 zu ermitteln (bzw. zu konfigurieren), folgen Sie den unten beschriebenen Schritten. (Sie müssen in Microsoft Azure, dem Microsoft Active Directory und auf dem Microsoft Exchange 365 - Server konfiguriert werden.)

Nr. 4 ist der Name der Mailbox in Exchange 365 (z.B. "directmail@acmeco.onmicrosoft.com")

Inhaltsübersicht

.

Schritt 1: registrieren einer App in Azure

Die hierfür erforderlichen Schritte sind auf der Seite https://learn.microsoft.com/de-de/azure/active-directory/develop/quickstart-register-app beschrieben.

Um directmail/directspool für XOAUTH zu enablen müssen die folgenden Schritte ausgeführt werden, die dort beschrieben sind:


Registrieren der Anwendung  - Definition der clientID und Ermitteln der tenantID

Beschreibung: https://learn.microsoft.com/de-de/azure/active-directory/develop/quickstart-register-app#register-an-application

Ergänzende Hinweise zu dieser Seite:

  • in Schritt 6 wird "Nur Konten in diesem Organisationsverzeichnis" benötigt (im Screenshot heisst das: "Accounts in this organizational directory only .. - Singlet tenant")


  • Bei Redirect URI (optional) - nichts eingeben


  • Das Registrieren der App endet mit der Anzeige der clientID
    Hinweis: diese wird auch als "Application ID" bezeichnet

Notieren Sie die beiden Angaben:

1. Application (client) ID → clientID
2. Directory (tenant) ID → tenantID


Hinzufügen von Anmeldeinformation  - Definition der clientID und Ermitteln des clientsecret

Beschreibung: https://learn.microsoft.com/de-de/azure/active-directory/develop/quickstart-register-app#add-a-client-secret

Ergänzende Hinweise zu dieser Seite:

  • Wenn das clientsecret erstellt ist, wird es genau einmal angezeigt. Sofort notieren!clientsecret
  • Wir benötigten nicht:
    • Zertifikat
    • Verbundanmeldeschlüssel

Schritt 2: POP für "Clients" (also directmail/directspool) verfügbar machen

POP-Berechtigung hinzufügen

Beschreibung: https://learn.microsoft.com/de-de/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#add-the-pop-and-imap-permissions-to-your-aad-application

Ergänzende Hinweise zu dieser Seite:

  • für directmail/directspool muss "POP.AccessAsApp" aktiviert werden
  • IMAP ist nicht erforderlich

Zustimmung des Mandantenadministrators abrufen

Beschreibung: https://learn.microsoft.com/de-de/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#get-tenant-admin-consent

Ergänzende Hinweise zu dieser Seite:

  • Grant admin consent aktivieren


Schritt 3: in Exchange 365: Dienstprinzipale registrieren

Beschreibung: https://learn.microsoft.com/de-de/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#register-service-principals-in-exchange

Ergänzende Hinweise zu dieser Seite:

  • Diese Schritte erfolgen in PowerShell, mit einem eigens zu installierenden PowerShell-Applet namens "ExchangeOnlineManagement"
  • Hiermit wird das Recht vergeben, dass man mit dem clientsecret Zugriff auf die targetMailbox hat.


MSAL.PS - Powershell-Wrapper für die MSAL.NET

Die Powershell-App MSAL.PS ist ein Wrapper für MSAL.NET, der es ermöglicht, die Befehle aus Powershell zu rufen.

Diese App wird nicht von Microsoft gepflegt, sie ist ein Gitub-Projekt: https://github.com/AzureAD/MSAL.PS/tree/master/src

Installation von MSAL.PS

1. Powershell als Administator aufrufen

2. Installationsbefehl eingeben

Install-Module -Name MSAL.PS


Testen mit Powershell

Die Angaben in spitzen Klammern (<...>) müssen durch die ermittelten/relevanten Werte ersetzt werden.

1. Die Werte ermitteln für

  • tenantID
  • clientID
  • clientsecret
  • targetmailbox

2. Sicherstellen, dass der Powershell-wrapper MSAL.PS  auf dem PC installiert ist (siehe vorheriges Kapitel)

3. Je nach Konfiguration der Mailbox in MS 365 eines der beiden Powershell-CmdLets in einem beliebigen Verzeichnis ablegen (z.B. in C:\TEMP)

4. Powershell öffnen und das Skript aufrufen - dabei natürlich die <..>-Variablen durch die richtigen Werte ersetzen

  • <cmdlet-name> ist
    • für eine POP-Mailbox: Get-POP3AccessToken.ps1
    • für eine IMAP-Mailbox: Get-IMAPAccessToken.ps1


Aufruf für Get-<pop2_or_smtp>AccessToken.ps1
cd \
cd Temp
.\Get-<cmdlet-name> -tenantID "<tenantID>" -clientId "<clientID>" -clientsecret "<clientsecret>" -targetMailbox "<targetmailbox>" -verbose

Ergebnis: