Accès à 4D et Microsoft 365

Traduit automatiquement de Deepl

Dans la version 18 R6 de 4D, 4D a introduit l’authentification OAuth 2.0 pour accéder aux e-mails via les transporteurs IMAP, SMTP ou POP3. À partir de 4D v19 R3, 4D continue à mettre en œuvre le protocole OAuth 2.0 et fournit un moyen de demander facilement en programmant un jeton de la plateforme d’identité Microsoft pour se connecter à l’API pour Microsoft 365.

HDI OAUTH2 Microsoft

Conditions préalables

Avant d’obtenir un jeton de la plateforme d’identité Microsoft, la première étape consiste à enregistrer votre application dans le portail Azure. Cela permet d’établir une relation de confiance entre votre application et la plateforme d’identité Microsoft. Cette confiance est unidirectionnelle : votre application fait confiance à la plateforme d’identité Microsoft et non l’inverse.

Ce tutoriel de Microsoft est une excellente ressource pour comprendre comment enregistrer votre application dans le portail Azure.

L’enregistrement intègre votre application à la plate-forme d’identité Microsoft et établit les informations qu’elle utilise pour obtenir des jetons, notamment

  • un identifiant client: Un identifiant unique attribué par la plateforme d’identité Microsoft.
  • un URI/URL de redirection: Un ou plusieurs points de terminaison où votre application recevra des réponses de la plateforme d’identité Microsoft.
  • a Secret du client: un mot de passe ou une paire de clés publiques/privées que votre application utilise pour s’authentifier auprès de la plateforme d’identité Microsoft. (requis uniquement lors de l’obtention d’un accès pour un service)

obtenir un jeton d’accès

Les jetons d’accès émis par la plateforme d’identité Microsoft contiennent des informations que Microsoft Graph, l’API pour Microsoft 365, utilise pour valider l’appelant et s’assurer qu’il dispose des autorisations appropriées pour effectuer l’opération demandée.

Pour obtenir votre jeton, il vous suffit d’utiliser la commande New OAuth2 provider avec toutes les informations données lors de l’enregistrement :

$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("Accès refusé au serveur IMAP")
End if
End if

Cette commande fait partie du nouveau composant 4D NetKit, dont les sources et la documentation se trouvent sur github.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.