Skip to main content

Konfiguration Authentication Code Flow (delegated) MS Graph API

Konfiguration in Squeeze

Diese Konfigurationsoberfläche wird ab der Version 2.3.0 bereitgestellt.

Wenn Sie diese Authentifizierungsmethode nutzen möchten, stellen Sie sicher, dass der Interne Job refresh-tokens aktiviert ist. Dies ist weiter unten im Artikel dokumentiert.

image-1667829176140.png


Wie man nun erkennt, kann man in der Konfigurations-Oberfläche unter Protokoll zwei Arten der Anbindung zu Microsoft(MS) Graph API wählen:

image-1667829730505.png

Für den delegierten Autorisierungsprozess wählen wir Microsoft Graph API Delegated. Im nächsten Schritt füllen wir die Felder Client ID, Client Secret die Tenant ID und die restlichen Felder. 

Ordner - Konfiguration

Bei der Ordnerkonfiguration müssen Sie drei Ordner angeben

image-1674472601295.png

  1. Posteingang
    Dieser Ordner wird regelmäßig überprüft, um die enthaltenen Emails zu importieren. 
  2. Verarbeitet
    In diesen Ordner werden die erfolgreich importieren Emails verschoben.
  3. Fehler
    In diesen Ordner werden, die Emails abgelegt, die nicht importiert werden konnten (z.B. fehlende Anlagen)

Bei der Definition der Ordner achten Sie bitte darauf, dass die Namen der Ordner eindeutig sein müssen, da die Ordner in der Verzeichnisstruktur des Postfachs gesucht werden.
Ist ein konfigurierter Ordner nicht eindeutig kann es dies dazu führen, dass ein anderer Ordner genutzt wird, als der gewünschte. 

Konfiguration in Entra ID (vormals Azure Active Directory)

Weitere notwendige Schritte für ein reibungslosen Ablauf sind die Einrichtung einer Entra ID Application
mit einem Client Secret. Die Globale Registrierung eines Mail-Dienstes der "Dexpro"  im Entra ID-Directory  des Kunden, wird vorerst nicht angeboten.

Zudem muss darauf geachtet werden dass die Applikation folgende Scopes besitzt. 

image-1667831638945.png

Anders als in den Permission für den Client Credential Flow ist jegliche Permission hier beschränkt auf den autorisierenden User.

Merke: Wenn auf ein Shared-Mailbox Postfach zugegriffen werden soll, muss das Shared-Mailbox Postfach unter Postfach eingetragen werden und die Application Permission Mail.Read.Write.Shared muss konfiguriert werden.

Denken Sie daran, dass die Shared-Mailbox auch Ihrer Email-Aktivierten Sicherheitsgruppe hinzugefügt wird, wenn Sie eine eingerichtet haben.


Ebenfalls ein maßgebender Unterschied zum Client Credential Flow ist hier die Verwendung einer Redirect URI
Diese Redirect URI wird in der Entra ID unter der Applikation im Reiter Authentication angelegt:

image-1667834984266.png

Schema Redirect URI: https://Ihr.vollwertiger.DomainName/api/v2/importers/email/authenticate/end

Merke: Ein Squeeze Mandant benötigt immer eine Entra ID Applikation mit einer Redirect URI.
Das bedeutet Sie müssen für jeden Mandanten eine Applikation anlegen.

Autorisierungsprozess Authentication Code Flow

hat man nun seine Application in Entra ID konfiguriert und alle notwendigen Daten in die Konfigurationsoberfläche getippt kann man  nun seine Konfiguration abspeichern. 

image-1667832067117.png

Nun öffnet sich ein weiteres Dialog Feld :

image-1667832557714.png
Das System hat Ihre Konfiguration gespeichert, den Prozess der Authentifizierung müssen Sie jedoch separat über einen Button in der Email Konfiguration starten. Hierfür wählen Sie bitte den folgenden Button:

image-1667832766364.png

Nach einem Klick auf diesen Button werden Sie nun zur Oberfläche von Microsoft weitergeleitet. Dort beginnt der Authentifizierungsprozess befolgen Sie die Anweisungen von Microsoft:

Geben Sie ihre Email-Adresse an.

image-1667834432799.png

Geben Sie Ihr Passwort ein:

image-1667834456501.png

Je nach Unternehmen werden Sie ebenfalls aufgefordert eine 2-Faktor-Authentifizierung durchzuführen.:

image-1667834490358.png

Sobald Sie Authentifiziert sind, werden die Berechtigungen abgefragt und Sie werden aufgefordert diese Berechtigungen zu bestätigen. Nach Ihrer Bestätigung leitet Microsoft umgehend zurück zur Squeeze-Oberfläche. 

Die Oberfläche wird Ihnen nun anzeigen ob Squeeze nun Autorisiert ist oder ob ein Fehler aufgetreten ist:

image-1667834259123.png
Nun können Sie die Mail Verbindung testen Indem Sie den Mail Verbindungstest Button in der Oberfläche bedienen. 

Job-Konfiguration

Die Verwendung dieses Authentifizierungsverfahrens erfordert, dass ein seperater Job aktiviert ist, welcher im Hintergrund die Zugriffsdaten für die Graph API aktuell hält.

Hierfür finden wir in der Administration unter "Skripte" das neue Skript  mit den Namen refresh-tokens:

image-1667905655850.png

Dieses Skript kann man zu jedem Zeitpunkt manuell ausführen.

Sie müssen für dieses Skript einen Job einrichten, der häufig genug ausgeführt wird, um ein Ablaufen der Zugriffsdaten zu verhindern. Im Standard sind Refresh-Token von Microsoft 1 Tag lang gültig, es sollte also mehrmals am Tag versucht werden die Zugriffsdaten zu aktualisieren.

Wir empfehlen den Job jede Stunde auszuführen:
Cron-Ausdruck für den Job: */50 * * * *

 

Wie Jobs zu konfigurieren sind, ist hier dokumentiert:

Fragen und Antworten

Was passiert wenn der Job ausfällt ? 
Ist der Job durch unvorhersehbare Gründe nicht gelaufen so müssen Sie sich neu Authentifizieren mit dem Authentifizierung-Button in der Email-Konfiguration
Kann ich einfach meine Postfach in der Konfiguration ändern und muss ich danach was tun ? 
Sobald Sie die Konfiguration ändern oder abspeichern, weist die Anwendung Sie darauf hin, ein neuen Authentifizierungsprozess einzuleiten. 
Lehnen Sie dieses Aufforderung ab, haben Sie immer noch die Möglichkeit den Authentifizierungsbutton zu betätigen.
Kann ich meine Entra ID Applikation für mehrere Squeeze Mandanten nutzen ?

Nein, die Verwendung einer Entra ID Applikation für mehrere Mandanten ist nicht Möglich, solange die Mandanten unter anderen Domänen erreichbar sind. 
Beispiel:
1 Mandant:

test.mandant.squeeze.one

 

2 Mandant:

test2.mandant.squeeze.one

 

In diesem Beispiel kann man keine Application verwenden, da wir pro Application nur einen Mandanten ansprechen können. Ein Authentifizierung bei Microsoft würde ggf. immer nur auf einen Mandanten laufen.

 

Du hast die Möglichkeit mehrere Postfächer mit der selben Applikation zu nutzen, dort gibt es keine Begrenzungen.

 

Meine Zugriff durch die AzureTokens laufen ständig ab, obwohl ich den Job richtig konfiguriert habe.

Es kann vorkommen, dass die Server Zeit und die konfigurierte Zeit der Squeeze Applikation sich unterscheiden. 

Beispiel:
Server Zeit: CEST (UTC +2)

Squeeze Zeit: UTC (UTC +0)

 

In diesem Fall werden die Tokens, die erzeugt wurden, in CEST abgespeichert. Wenn in diesem Fall die Squeeze Applikation nun prüft, ob ein Token erneuert werden muss, dann wird diese in diesem Fall den Token als noch nicht abgelaufen ansehen, da der Token in der Annahme von Squeeze gültig ist. 

Das liegt daran, dass Squeeze den Token in der Vergangenheit mit UTC (+0) prüft aber der Token wurde mit CEST (+2) ausgestellt. Der Token ist demnach schon abgelaufen, da die Squeeze Applikation in der zeitlichen Vergangenheit hängt.

Das Problem wurde mit der Version 2.5 behoben.

 

Sollten Sie diese Version noch nicht besitzen, versuchen Sie die Serverzeit mit der Applikationszeit zu synchronisieren. 
Dazu kann die Zeitzone in der php.ini gesetzt werden.

Siehe: https://www.php.net/manual/en/datetime.configuration.php