4D und Microsoft 365 Zugang

In 4D v18 R6 führte 4D die OAuth 2.0 Authentifizierung für den Zugriff auf E-Mails über IMAP, SMTP oder POP3 Transporter ein. Ab 4D v19 R3 implementiert 4D weiterhin das OAuth 2.0 Protokoll und bietet eine einfache Möglichkeit, ein Token der Microsoft Identitätsplattform zu programmieren, um sich mit der API für Microsoft 365 zu verbinden.

HDI OAUTH2 Microsoft

Voraussetzungen

Bevor Sie ein Token von der Microsoft-Identitätsplattform erhalten, müssen Sie Ihre Anwendung zunächst im Azure-Portal registrieren . Dadurch wird eine Vertrauensbeziehung zwischen Ihrer Anwendung und der Microsoft-Identitätsplattform hergestellt. Das Vertrauen ist unidirektional: Ihre Anwendung vertraut der Microsoft-Identitätsplattform und nicht umgekehrt.

Dieses Tutorial von Microsoft ist eine hervorragende Ressource, um zu verstehen, wie Sie Ihre Anwendung im Azure-Portal registrieren .

Die Registrierung integriert Ihre Anwendung in die Microsoft-Identitätsplattform und legt die Informationen fest, die sie verwendet, um Token zu erhalten, darunter:

  • eine Client-ID: Ein eindeutiger Bezeichner, der von der Microsoft-Identitätsplattform zugewiesen wird.
  • a Redirect URI/URL: Ein oder mehrere Endpunkte, an denen Ihre Anwendung Antworten von der Microsoft-Identitätsplattform erhalten wird.
  • a Client Secret: Ein Kennwort oder ein öffentliches/privates Schlüsselpaar, das Ihre Anwendung zur Authentifizierung bei der Microsoft-Identitätsplattform verwendet. (nur erforderlich, wenn Sie Zugriff für einen Dienst erhalten)

abrufen eines zugriffstokens

Von der Microsoft-Identitätsplattform ausgestellte Zugriffstoken enthalten Informationen, die Microsoft Graph, die API für Microsoft 365, verwendet, um den Aufrufer zu validieren und sicherzustellen, dass er die richtigen Berechtigungen hat, um den angeforderten Vorgang durchzuführen.

Um Ihr Token zu erhalten, müssen Sie nur den New OAuth2 provider mit allen Informationen, die Sie bei der Registrierung angegeben haben:

$param:=New object()
$param .name:="Microsoft"
$param .permission:="signedIn"
$param .clientId:="7008ebf5-xxxx-xxxx"
$param .redirectURI:="http://127.0.0.1:50993/"
$param .scope:="https://outlook.office.com/IMAP.AccessAsUser.All"
// Create new OAuth2 object
$oAuth2 :=New OAuth2 provider($param)
// Ask for a token
$token :=$oAuth2.getToken()
If ($token#Null)
// Using of the token to access emails over IMAP
$IMAPParameters :=New object
$IMAPParameters .authenticationMode:=IMAP authentication OAUTH2

// Token received from the server
$IMAPParameters .accessTokenOAuth2:=$token.token.access_token
// e-mail address of the user for whom the token was created
$IMAPParameters.user:=$user
$IMAPParameters .host:="Outlook.office365.com"
$IMAPTransporter :=IMAP New transporter($IMAPParameters)
$ status :=$IMAPTransporter .checkConnection()
If (Not($
status .success))
ALERT("Zugriff auf IMAP-Server verweigert")
End if
End if

Dieser Befehl ist Teil der neuen 4D NetKit Komponente, deren Quellen und Dokumentation auf github zu finden sind.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.