Skip to main content

Office365 Implementierung

Registrierung in Azure AD

Original Dokumentation from Microsoft

NEU referenzierter Artikel für OAuth-Verbindung über IMAP, POP oder SMTP

  1. Melden Sie sich beim Azure-Portal an.

  2. Wenn Sie Zugriff auf mehrere Clients haben, verwenden Sie den Filter Verzeichnis + Abonnement im Menü oben, um den Client auszuwählen, in dem Sie die Anwendung registrieren möchten.

  3. Suchen Sie nach Azure Active Directory und wählen Sie diese Option. Typisierungen

  4. Wählen Sie unter Verwalten Folgendes aus: App-Registrierungen>Neue Registrierung. Typisierungen

  5. Geben Sie Maildaemon als Anwendungsname ein.

    • Geben Sie "Accounts in this organizational directory only ..." als Supported account types an.
    • Lassen Sie den Redirect URI (optional) leer.
    • Typisierungen
  6. Nach Abschluss der Registrierung wird die Übersicht der App-Registrierung im Azure-Portal angezeigt. Hier finden Sie auch die Application (Client) ID und die Directory (Tenant) ID.

    • Diese beiden ID's sind zwingend erforderlich für die Maildaemon-Konfigurationsdatei und die weitere Azure-Konfiguration. Bitte speichern Sie diese in einer Editor-Datei und übergeben Sie uns die ID's zusätzlich.
    • typings
  7. Gehen Sie zu den API-Berechtigungen der App und fügen Sie die Berechtigung Microsoft Graph → APIs my organization uses → search for Office 365 Exchange Online -> Application permissions -> IMAP → IMAP.AccessAsApp → Grant Admin Consent for [org].

    • ⚠️⚠️ Der Benutzer muss die Administrationsrolle in Ihrer Organisation haben, wenn Sie diese Rechte nicht haben, wenden Sie sich bitte an Ihren Administrator ⚠️⚠️
    • Typisierungen
    • Typisierungen
    • Vergewissern Sie sich, dass der API-Berechtigung die administrative Berechtigung für den Mandanten erteilt worden ist (siehe folgender Screenshot)
    • Typisierungen
  8. Navigieren Sie zur Detailseite der App-Registrierung und gehen Sie zu Zertifikate und Secrets.

    • Fügen Sie ein neues Secrets hinzu, geben Sie die Gültigkeitsdauer an und notieren Sie das Ablaufdatum in einem Notizblock. ⚠️ Denken Sie daran, dass dieses Client-Secrets auch für die Maildaemon-Konfiguration obligatorisch ist, wenn die Lebensspanne abläuft, müssen wir die Maildaemon-Konfigurations-Json aktualisieren.
    • Nach dem Hinzufügen des Secrets können Sie einmalig den WERT des Secrets sehen. Dies ist das Client-Secret, bitte übermitteln Sie es uns diese.
    • typings
  9. Auf der Übersichtsseite der Anwendung gibt es einen Link zu "Verwaltete Anwendung im lokalen Verzeichnis", navigieren Sie dorthin.

    • Oben sehen Sie Properties, Sie müssen die Object ID in Ihrem Editor speichern, für spätere Verwendung
    • ⚠️ Dies ist nicht die Objekt-ID von der Übersichtsseite selbst
    • Typisierungen
  10. Öffnen Sie auf Ihrer Workstation die Powershell als Administrator

    • Führen Sie die folgenden Befehle in dieser Reihenfolge aus. (Sehen Sie sich Ihre Editor-Datei als Referenz an) und ⚠️⚠️ beachten Sie, dass Sie die Administrator Rolle in Ihrer Organisation haben müssen, sonst werden Sie Fehler sehen
      • Install-Module -Name ExchangeOnlineManagement
      • Import-module ExchangeOnlineManagement
      • Connect-ExchangeOnline -Organization <TENANT-ID>
      • New-ServicePrincipal -AppId <CLIENT-ID> -ServiceId <OBJECT_ID>
      • Add-MailboxPermission -Identity "<MAILBOX_ADDRESS>" -User <OBJECT_ID> -AccessRights FullAccess
    • ⚠️ Wenn Sie mehrere Postfächer mit unserem Maildaemon-Dienst integrieren möchten, müssen Sie den letzten Schritt für jedes Postfach ausführen

Damit Maildaemon die E-Mails des gewünschten Postfachs aus Office 365 erfolgreich lesen kann, müssen Sie die folgenden Informationen mit One Unity teilen oder in der Postfachregel in OUSP Postman (ab Version 22.2.0) speichern:

  1. Client ID von der App Registrierung.
  2. Tenant ID von der App Registrierung.
  3. Client Secret von der App Registrierung.
  4. Benutzername der Mailbox

Wichtige Ports zur Verfügbarkeit der Office365 Anbindung

Der Server muss in der Lage sein, eine Verbindung zu outlook.office365.com via Port 993 und login.microsoftonline.com via Port 443 herzustellen, um den Maildaemon auszuführen. Sie können dies in einer Powershell Console überprufen, indem Sie Folgendes eingeben:

  • New-Object System.Net.Sockets.TcpClient ("outlook.office365.com", "993")
  • New-Object System.Net.Sockets.TcpClient ("login.microsoftonline.com", "443")

In beiden Fällen sollte das Ergebnis wie folgt aussehen (entscheidend ist der Wert von Connected als True):

Available           : 0
Client : System.Net.Sockets.Socket
Connected : True
ExclusiveAddressUse : False
ReceiveBufferSize : 65536
SendBufferSize : 65536
ReceiveTimeout : 0
SendTimeout : 0
LingerState : System.Net.Sockets.LingerOption
NoDelay : False

Erneuerung des Azure Secret Token

In Azure können die Secrets mit maximal 2 Jahren Gültigkeit angelegt werden, d.h. es gibt zu dem Punkt, an dem dieses Token abläuft und die Verbindung von maildaemon nach Azure nicht mehr funktioniert.

Folgende Schritte sind dann notwendig:

  1. Neues Secret Token anlegen (siehe Punkte 8 aus dem vorherigen Kapitel)
  2. Schritt 10 aus dem vorherigen Kapitel durchführen
  3. maildaemon-service Dienst neustarten

Maildaemon-Konfigurationsdatei

⚠️ Es ist wichtig zu erwähnen, dass die Einstellungen ClientId, TenantId und ClientSecret die wichtigsten Eigenschaften sind, die in der Konfigurationsdatei gesetzt werden müssen. Der Office365-Host ist outlook.office365.com und der SSL-Port ist 993. Sie müssen kein Passwort eingeben, da die Verbindung über das Vertrauliche Client-Verfahren erfolgt.

{
"Active": true,
"Mailbox": "example@outlook.com",
"Type": "imap",
"Host": "outlook.office365.com",
"Port": 993,
"UseSsl": true,
"ClientId": "guid-client-id",
"TenantId": "guid-tenant-id",
"ClientSecret": "client-secret",
"Username": "example@outlook.com",
"Password": "",
"Folders": [
"INBOX"
],
"DeleteMailsOnServer": false,
"AllowedEmailExtensions": [ ".eml", ".msg" ],
"ExportAttachments": true,
"AllowedAttachments": [ ".pdf", ".eml", ".zip" ],
"Destinations": [
{
"System": "Documents",
"Host": "localhost",
"Port": 50050,
"ServerCertPath": "D:\\_Entwicklung\\tmp\\documents5-grpc\\ca_cert.pem",
"ClientCertPath": "D:\\_Entwicklung\\tmp\\documents5-grpc\\mad_cert.pem",
"ClientKeyPath": "D:\\_Entwicklung\\tmp\\documents5-grpc\\mad_key.pem",
"Principal": "oucINV",
"Username": "oucadmin",
"WorkflowName": "ouspPostman",
"Locale": "de",
"Filetype": "ouspPostman_Documents",
"MailRegister": "originalMail",
"AttachmentRegister": "attachments",
"MappingRules": [
{
"Source": "Recipient",
"Target": "mailRecipient"
},
{
"Source": "Sender",
"Target": "mailSender"
},
{
"Source": "Body",
"Target": "mailBody"
},
{
"Source": "Subject",
"Target": "mailSubject",
"Pattern": ""
},
{
"Source": "MailID",
"Target": "MailID"
},
{
"Source": "Date",
"Target": "mailDate"
},
{
"Source": "CC",
"Target": "mailCC"
},
{
"Source": "BCC",
"Target": "mailBCC"
},
{
"Source": "Priority",
"Target": "mailPriority"
},
{
"Source": "Domain",
"Target": "mailDomain"
},
{
"Source": "Size",
"Target": "mailSize"
},
{
"Source": "Recipient",
"Target": "mailMailboxname"
}
]
}
]
}