Document toolboxDocument toolbox

Konfiguration von OAuth2 - Modern Authentication

Diese Anleitung dient dazu alle nötigen Schritte durchzuführen, um das System korrekt zu konfigurieren, sodass eine Interaktion von MailServ mit Exchange Online über EWS und IMAP funktioniert.

Azure Portal

Im ersten Step wird die App im Azure Portal registriert und konfiguriert. Falls die App schon vorhanden sein sollte, muss diese zwecks Umstellung auf Modern Authentication erweitert werden.

App Registrierung

Zuerst wird eine App benötigt, die im Azure Portal registriert werden muss. Hierfür ruft man mit einem User mit Adminrechten die Seite portal.azure.com auf.

Im linken Bereich wählt man die Rubrik Azure Active Directory aus. Es wird ein neues Menü angezeigt. Wichtig für uns ist hier der Bereich App-Registrierungen. Den Bereich einmal durch einen Linksklick öffnen.

Es erscheint eine Oberfläche mit der Übersicht der (falls vorhanden) bereits erstellten Apps. Um eine neue App zu registrieren, muss im oberen Menübereich auf die Schaltfläche Neue Registrierung geklickt werden.

Im nächsten Step muss dann die App konfiguriert werden.

Je nach Einsatzgebiet kann die App unterschiedlich konfiguriert werden. Am Ende auf Registrieren klicken und die App wurde erstellt.

In der Übersicht werden nun verschiedene Informationen über die App angezeigt. Für uns sind allerdings nur zwei IDs relevant.

  • Verzeichnis-ID (Tenant)

  • Anwendungs-ID (Client)

Client Secret

Im nächsten Schritt wird ein sogenanntes Client Secret erstellt, welches von der Anwendung genutzt wird.

Um ein solches Secret zu erstellen muss auf die Schrift für Clientanmeldeinformationen oder in der Übersicht auf Zertifikate & Geheimnisse geklickt werden.

In der Übersicht dann auf den Reiter Geheime Clientschlüssel klicken und einen neuen Schlüssel erzeugen. Die Dauer der Gültigkeit kann frei bestimmt werden. Wenn ein Schlüssel abläuft, kann sich die Anwendung nicht mehr mit der App verbinden und muss erneuert werden.

Nachdem der Schlüssel erzeugt wurde, wird dieser kurz angezeigt. Dieser Schüssel wird benötigt, damit MailServ den Exchange via EWS oder IMAP mit OAuth 2 und Modern Authentication ansteuern kann.

Das Client Secret wird nur einmal angezeigt. Wenn die Übersicht vom Client Secret geschlossen wird, kann dies nicht erneut eingesehen werden. Es wird empfohlen sich das Client Secret an einem sicheren Ort, z.B. einem Passwort-Manager o.ä., zu sichern. Wenn das Client Secret verloren geht, kann jederzeit ein neues generiert werden. Dann müsste dies allerdings in jeder Anwendung ausgetauscht werden.

API-Berechtigungen

Jetzt müssen noch API-Berechtigungen vergeben werden. Hierfür wechselt man mit einem Linksklick auf die Überschrift API-Berechtigungen in den Bereich der API-Berechtigungen. Im oberen Bereich auf die Schaltfläche Berechtigung hinzufügen klicken und den Bereich Microsoft Graph auswählen. In diesem Scope folgendes selektieren:

  • Directory.AccessAsUser

  • Directory.Read.All

  • email

  • EWS.AccessAsUser.All

  • Group.Read.All

  • offline_access

  • openid

  • profile

  • SMTP.Send

  • User.Read

  • User.Read.All

  • User.ReadBasic.All

Anschließend muss ein weiterer Bereich hinzugefügt werden: Office 365 Exchange Online

In diesem Bereich müssen folgende Scopes hinzugefügt werden:

  • full_access_as_app

  • IMAP.AccessAsApp

Wenn alles hinzugefügt worden ist, können über die Schaltfläche Administratorzustimmung für “[ORGANISATION]” erteilen die Berechtigungen erteilt werden. Am Ende sieht das dann wie folgt aus:

 

In einigen Fällen ist es notwendig, dass zusätzlich noch Berechtigungen Type “Application/Anwendung” auch für die Microsoft Graph API vergeben werden. Hier muss die Berechtigung für den Type “Application/Anwendung” für folgende Funktionen erfolgen.

  • Directory.Read.All

  • Group.ReadAll

  • User.ReadAll

Das Bereitstellen der Berechtigungen dauert in der Regel 5 Minuten, also nicht wundern, falls es nicht auf Anhieb mit der Verbindung klappen sollte.

Microsoft 365 Admin Center

Um die Modern Authentication zu aktivieren, muss dies im Admin Center eingestellt werden. Das Portal lässt sich über https://portal.office.com/Adminportal#/homepage aufrufen.

Org Settings

Modern Authentication

Um die nötigen Einstellungen vorzunehmen muss im Home-Bereich auf die Rubrik Settings und anschließend auf die Unterrubrik Org Settings geklickt werden. Im Anschluss stehen viele Services als Auflistung bereit. Hier muss man den Eintrag Modern Authentication suchen und selektieren. Auf der rechten Seite werden nun die Einstellungen angezeigt. Um die moderne Authentizierungsmethode zu aktivieren, muss der Haken bei Turn on modern authentication for Outlook 2013 for Windows and later gesetzt werden.

Achtung: Wenn OAuth2 in Verbindung mit IMAP genutzt werden soll, ist es nicht möglich, dies im Modus “User/Password” zu betreiben.

Basic Authentication

Microsoft schaltet die Basic Authentication zum 01.10.2022 automatisch ab. Für den Fall, dass es vorher deaktiviert werden soll, müssen die Haken bei den jeweiligen Protokollen entfernt werden. Für uns sind hier EWS und IMAP relevant, es können aber auch andere Protokolle deaktiviert werden.

Powershell

Es werden noch weitere Einstellungen nötig, um die Funktion von OAuth2 zu gewährleisten. Zum einen muss eine Richtlinie erstellt werden, falls die Basic Authentication vor dem 1.10. deaktiviert werden soll, zum anderen muss ein Principal eingerichtet werden.

Blocken der Basic Authentication

Wenn es gewünscht ist, die Basic Authentication vor dem 1.10. zu deaktivieren, muss eine Richtlinie zum Blocken der Basic Authentication erstellt und dem User zugewiesen werden.

Um diese einzurichten, muss eine Powershell im Admin Modus gestartet werden.

Zu Beginn muss die Exchange Online Management Console installiert werden. Hierfür benötigen wir folgendes cmdlet:

Install-Module -Name ExchangeOnlineManagement

Anschließend muss man sich mit einem User, welcher über Adminrechte verfügt, mit dem Exchange Online verbinden:

Connect-ExchangeOnline -UserPrincipalName user@domain.com

Nachdem die Credentials eingegeben wurden, wird die Verbindung zum Exchange aufgebaut:

Jetzt kann man eine neue Richtlinie zum Blocken hinzufügen:

New-AuthenticationPolicy -Name "Block Basic Auth"

Nachdem die Richtlinie erstellt wurde, kann diese nun Usern bzw. Identities zugewiesen werden:

Um zu überprüfen, ob der User die Richtlinie eingetragen bekommen hat, muss folgender Befehl ausgeführt werden:

Im Anschluss daran bekommt man eine Auflistung des Users mit allen Eigenschaften. Für uns ist die Eigenschaft “AuthenticationPolicy” von Bedeutung. Hier wurde die Policy “Block Basic Auth” eingetragen:

Damit die Richtlinie sofort greift, kann optional noch folgendes cmdlet ausgeführt werden:

Um die Richtlinie wieder zu entfernen, muss folgendes cmdlet ausgeführt werden:

Um nachzuschauen, ob die Richtlinie entfernt wurde, kann man entweder nach der Richtlinie suchen oder von einem User die Details abfragen. Dort ist dann beim Eintrag AuthenticationPolicy nichts mehr hinterlegt.

Am Ende trennen wir die Verbindung mit dem Exchange indem wir folgenden Dialog mit Y bestätigen:

Einrichtung Principal via Powershell für IMAP

Um einen Principal für einen Anwendung einzurichten benötigt man einige Module, die zuvor installiert werden müssen:

Im Anschluss müssen die Module importiert werden

Danach stellen wir die Verbindung zum AzureAD mithilfe des Tenants her:

Man wird nun aufgefordert sich mit den Credentials anzumelden. Hier wird auch ein User mit dementsprechenden Adminrechten benötigt.

Nun benötigen wir eine Variable, die quasi die Eigenschaften der Application besitzt. Um dies zu bewerkstelligen, führen wir folgendes cmdlet aus:

Wir können nun die Variable nutzen, um einen neuen ServicePrincipal anzulegen:

Nachdem der Principal eingerichtet wurde, kann ein User oder eine Identity die Berechtigung bekommen

Die Einrichtung mit der Powershell ist nun abgeschlossen. Nun muss die Verbindung im Credentialstore des Designers eingerichtet werden.

Designer (5.2)

Hier muss nun die Verbindung zum Exchange eingetragen werden.

Credential Store

Im Credential Store werden alle Module aufgelistet, die Credentials besitzen oder verwalten. Diese werden benötigt um beispielsweise eine Verbindung zu einem Endpunkt aufzubauen.

Exchange Web Services (EWS)

Um eine Verbindung zum EWS herzustellen benötigen wir folgende Informationen:

Eigenschaft

Beschreibung

Eigenschaft

Beschreibung

Name

Name des Profils

Server URL

URL zum EWS (z.B. https://outlook.office365.com/EWS/Exchange.asmx)

Login Type

Art des Logins (Für OAuth2 und Modern Authentication muss zwingend Impersonation (Office 365) ausgewählt werden

Konfiguriert sollte das Profil wie folgt aussehen:

Wir wechseln auf den zweiten Reiter zum Einstellen der Impersonation. Hier gibt es viele Eigenschaften, die zwingend benötigt werden:

Eigenschaft

Beschreibung

Eigenschaft

Beschreibung

Tenant ID

Die Tentant ID oder Verzeichnis ID oder Mandanten ID wird für die Modern Authentication benötigt. Diese steht im Azure Active Directory in den Eigenschaften der erstellten App.

Client ID

Die Client ID oder Application ID wird ebenfalls für die Modern Authentication benötigt. Sie ist ebenfalls im Azure Active Directory in den Eigenschaften der erstellten App zu finden.

Client Secret

Das Client Secret wurde bereits angelegt und wurde nur einmalig angezeigt. Dieses wird benötigt, um eine Verbindung via OAuth2 zu realisieren.

Impersonation User

Hier muss ein User eingetragen werden, der über Impersonation-Rechte verfügt.

Entities

In diesem Bereich werden die User / Gruppen eingetragen, die impersoniert werden sollen.

IMAP

Um eine Verbindung zum Exchange über IMAP herzustellen benötigen wir folgende Informationen:

Eigenschaft

Beschreibung

Eigenschaft

Beschreibung

Name

Der Name des Profils

Server URL

Die Adresse des Exchange Servers

Port

Hier wird der SSL Port benötigt. Per Default ist dies 993

SSL Mode

Implicit

IMAP Authentication

OAuth 2.0

Tenant ID

Die Tentant ID oder Verzeichnis ID oder Mandanten ID wird für die Modern Authentication benötigt. Diese steht im Azure Active Directory in den Eigenschaften der erstellten App.

Client ID

Die Client ID oder Application ID wird ebenfalls für die Modern Authentication benötigt. Sie ist ebenfalls im Azure Active Directory in den Eigenschaften der erstellten App zu finden.

Client Secret

Das Client Secret wurde bereits angelegt und wurde nur einmalig angezeigt. Dieses wird benötigt, um eine Verbindung via OAuth2 zu realisieren.

Folder Separator

Trennzeichen für Ordner. Dieser wird automatisch vom Exchange ermittelt mit einem Klick auf die Pfeile.

Testen der Verbindung

Die Verbindung des Profils kann mit einem Klick auf die Schaltfläche mit dem WLAN-Symbol getestet werden. Im Anschluss wird über eine Message Box das Ergebnis angezeigt, ob die Verbindung erfolgreich oder nicht erfolgreich aufgebaut werden konnte.

Einrichtung im Designer (5.1)

Der Aufbau im alten Designer ist etwas anders. Hier muss die Modulkonfiguration angepasst werden. Dorthin gelangt man über das Backstage Menü mit einem Klick auf File und dann auf Module und wählt dort das entsprechende Modul, so z.B. MailServ aus. Auf der rechten Seite befindet sich eine Schaltfläche mit dem Text Open Configuration. Mit einem Klick auf diese Schaltfläche gelangt man in die Modulkonfiguration. Hier gibt es zwei Reiter, welche die beiden Protokolle für die Verbindung mit einem Exchange Server zeigen.

EWS

General

Für die Einrichtung einer Exchange Verbindung per EWS muss ein neues Profil hinzugefügt oder ein bestehendes bearbeitet werden.

Eigenschaft

Beschreibung

Eigenschaft

Beschreibung

Name

Name des Exchange Servers

Server Url

Die URL des Servers

Beispiel für Office365: https://outlook.office365.com/EWS/Exchange.asmx

Postbox Login

Für OAuth2 muss hier zwingend Impersonation (Office 365) ausgewählt werden

Users

Wenn die Eigenschaften im Reiter General gesetzt sind, kann mit dem Einrichten der Benutzer weitergemacht werden

Eigenschaft

Beschreibung

Eigenschaft

Beschreibung

Grant Type

Gibt an, wie sich die Anwendung authentifizieren soll. Hier gibt es zwei Möglichkeiten

  • Client Credentials (Hier wird nur das Client Secret als “Authenticator” genutzt)

  • Password (Hier wird ein Benutzer und Kennwort benötigt)

Wenn die Authentifizierung erfolgreich ist, erhält man einen Access Token.

Tenant ID

Die Tenant ID oder Verzeichnis ID oder Mandanten ID wird für die Modern Authentication benötigt. Diese steht im Azure Active Directory in den Eigenschaften der erstellten App.

Client ID

Die Client ID oder Application ID wird ebenfalls für die Modern Authentication benötigt. Sie ist ebenfalls im Azure Active Directory in den Eigenschaften der erstellten App zu finden.

Client Secret

Das Client Secret wurde bereits angelegt und wurde nur einmalig angezeigt. Dieses wird benötigt, um eine Verbindung via OAuth2 zu realisieren.

Impersonation User

Hier muss ein User eingetragen werden, der über Impersonation-Rechte verfügt.

Password

Das Passwort des Impersonation Users.

Users and Groups

In dieser Liste befinden sich alle Benutzer und Gruppen aus dem Office 365 Tenant. Die hinzugefügten User / Gruppen werden impersoniert.

IMAP

Wenn man den Exchange via IMAP ansteuern möchte, muss man wie folgt vorgehen:

General

Eigenschaft

Beschreibung

Eigenschaft

Beschreibung

Name

Name des Servers

Server

Die Adresse des Exchange Servers

SSL Mode

Hier muss bedingt durch TLS implicit ausgewählt werden

Authentication

OAuth 2.0 Authentication

Folder separator

(wird automatisch gesetzt)

Im folgenden müssen die Einstellungen für OAuth gemacht werden:

Eigenschaft

Beschreibung

Eigenschaft

Beschreibung

Tentant ID

Die Tentant ID oder Verzeichnis ID oder Mandanten ID wird für die Modern Authentication benötigt. Diese steht im Azure Active Directory in den Eigenschaften der erstellten App.

Client ID

Die Client ID oder Application ID wird ebenfalls für die Modern Authentication benötigt. Sie ist ebenfalls im Azure Active Directory in den Eigenschaften der erstellten App zu finden.

Client secret

Das Client Secret wurde bereits angelegt und wurde nur einmalig angezeigt. Dieses wird benötigt, um eine Verbindung via OAuth2 zu realisieren.

Users

Wenn die Eigenschaften im Reiter General gesetzt sind, kann mit dem Einrichten der Benutzer weitergemacht werden. Hier müssen die Benutzer eingetragen werden, dessen Postfächer verarbeitet werden sollen. Bei mehreren Einträgen spielt die Reihenfolge eine Rolle. Es wird von oben nach unten abgearbeitet. Ein User wird mit dem FQDN und dem dazugehörigen Passwort eingetragen.

Testen der Verbindung

Wenn alles eingetragen wurde kann durch einen klick auf Test profile die Verbindung getestet werden. Das Ergebnis wird anhand von Symbolen im Profil und bei den Usern angezeigt