Toolmaker Produkt-Dokumentation
POP mit XOAUTH - Konfiguration in MS 365 und Azure
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:
tenantID
clientID
clientsecret
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/en-en/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
Ergänzende Hinweise zu dieser Seite:
für directmail/directspool muss "POP.AccessAsApp" aktiviert werden
IMAP ist nicht erforderlich
Zustimmung des Mandantenadministrators abrufen
Ergänzende Hinweise zu dieser Seite:
Grant admin consent aktivieren
Schritt 3: in Exchange 365: Dienstprinzipale registrieren
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)
Bei einer POP-Mailbox die Datei
Bei einer IMAP-Mailbox die Datei
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>" -verboseErgebnis: