Authentification Microsoft oAuth 2.0 pour Exchange EWS
Authentification OAuth 2.0 avec Azure Active Directory
Le protocole OAuth 2,0 est le protocole de l’industrie pour l’autorisation. Il permet à un utilisateur d’accorder un accès limité à ses ressources protégées. Conçu pour fonctionner spécifiquement avec le protocole HTTP (Hypertext Transfer Protocol), OAuth sépare le rôle du client du propriétaire de la ressource. Le client demande l’accès aux ressources contrôlées par le propriétaire de la ressource et hébergées par le serveur de ressources. Le serveur de ressources émet des jetons d’accès avec l’approbation du propriétaire de la ressource. Le client utilise les jetons d’accès pour accéder aux ressources protégées hébergées par le serveur de ressources.
OAuth 2.0 est directement lié à OpenID Connect (OIDC). Étant donné que OIDC est une couche d’authentification et d’autorisation reposant sur OAuth 2.0, il n’est pas compatible avec OAuth 1.0. Azure Active Directory (Azure AD) prend en charge tous les flux OAuth 2.0.
Dépréciation de l'authentification de base sur Exchange Online
A partir d’Octobre 2022, Microsoft supprime progressivement l’authentification de base pour l’accès aux différents services dont EWS.
Consultez ce lien pour plus d’informations
Dépréciation de l’authentification de base dans Exchange Online
Mettre en œuvre l’authentification OAuth 2.0
Un runtime Harmony supérieur à 408 Service Pack C (21/10/2022) est requis pour réaliser ces opérations
Avant de commencer, vous devez tout d’abord inscrire une nouvelle application sur la plateforme Azure Active Directory.
Vous devez accorder des autorisations supplémentaires à cette application afin que l’application Divalto puisse l’exploiter dans le cadre du protocole EWS.
Microsoft Graph
EWS.AccessAsUser.All
Depuis cette interface, vous devez également accorder un consentement d’administrateur afin d’appliquer cette autorisation pour l’ensemble des comptes de l’organisation.
A rajouter également : Dans Authentification, il faut cocher “Activer les flux mobiles et de bureaux suivants“
A noter : le mot de passe est crypté par Harmony avec une clé et un système secret. Il n’est donc jamais envoyé sur le réseau en clair.
Il s’agit maintenant de récupérer deux identifiants pour pouvoir les indiquer dans le paramétrage de EWS en mode OAuth :
“Client ID” = ID d’application
“Tenant ID” = ID de l’annuaire (locataire)
Il faut aussi ajouter cette autorisation
Récapitulatif des menus Azure
La définition de ces valeurs s’effectue dans le programme ‘Administration de EWS en mode OAuth2'
En mode SaaS, le programme de gestion des paramètres est disponible depuis le programme d’Administration Cloud xCloudAdmin (Administration > Paramètres > Cloud > Administration Cloud)
Le choix est disponible depuis le menu ‘Autres paramètres’ puis ‘Administration de EWS en mode OAuth2’
En mode OnPremise , l’accès à ces paramètres s’effectue depuis le programme ‘Harmony.dhop' à partir du menu 'Administration’ puis ‘Administration de EWS en mode OAuth2’
Le programme de saisie des paramètres techniques (xDivaltoParam) vous permettra d’accéder à la configuration du protocole EWS.
En mode SaaS, la configuration des paramètres de messagerie est disponible depuis le programme de saisie des paramètres techniques (Commun > Paramètres utilisateurs > Saisie des paramètres techniques)
La section ‘Options avancées (Messagerie, Conversion PDF, …) contient le menu 'Protocole Exchange Web Services’
Ces paramètres sont également disponibles par le biais de l’application DivaltoViewer.exe
Vous devez vérifier que le mécanisme d’authentification EWS exploite le mode 'OAuth Azure'
La saisie des paramètres d’identification reste requise en complément de l’authentification de l’application.
Mettre en œuvre l’authentification OAuth 2.0 dans le mode “sans mot de passe”
Dans ce mode on peut ne plus mettre le nom du compte et le mot de passe dans la gestion exchange serveur .
Exemple dans divaltoviewer.exe en mode connecté au serveur, on a indiqué qu’on utilise exchange serveur mais sur ce compte windows , on peut ne plus mettre le nom et le mode de passe du compte EWS .
Ceci est surtout destiner aux comptes EWS dit ‘sensibles’ et sur lesquels on veut réduire la diffusion du mot de passe.
Il faut donc faire un paramétrage dans Azure en suivant ces instructions, ce qui permettra au final de ne rien mettre dans les champs ci dessous
Le bouton Authentification Azure permet de vérifier si cela fonctionne.
Dans ce mode, toutes les 2h, il faut donner a EWS un token valide.
Si Divalto connait le compte et le mot de passe, le nouveau token est re-demandé automatiquement à Azure sans intervention de l’utilisateur.
Par contre si divalto ne connait pas le compte et/ou le mot de passe, il va alors demander a Azure une demande de connexion de l’utilisateur a son compte EWS en mode XWPF .Azure affiche cette boite de dialogue, invitant l’utilisateur à indiquer son compte Microsoft et son mot de passe .
Ceci permet a Azure de renvoyer un token a Divalto pour pouvoir continuer a envoyer des mails et travailler avec le calendrier EWS de l’utilisateur .
On peut aussi avoir accès par la saisie des paramètres techniques
et enfin par le zoom des clients , dans le bouton d’envoi de email
En mode web, on utilise le serveur web xhtml5 pour le dialogue avec Azure
Il faut ensuite revenir dans la saisie divalto qui devrait afficher le message suivant
En général le renouvellement de jeton par Azure permet de travailler pendant 90 jours sans avoir a refaire une connexion a son compte.
Les boîtes de dialogue ne sont nécessaires que pour vérifier si la demande de connexion à votre compte EWS fonctionne. En effet, lorsque le programme Diva envoie un e-mail et que le jeton est invalide, il sollicite un renouvellement auprès d'Azure. Si cette demande de renouvellement n'est plus possible (selon les règles définies par votre administrateur Azure, généralement dans un délai de 90 jours), le programme Diva vous demandera alors directement de vous connecter à votre compte EWS via Azure. Dans ce cas, vous verrez s'afficher la boîte de dialogue Azure, soit dans votre navigateur web pour une connexion HTML5, soit sous forme de dialogue Windows pour XWPF
C’est pour cela que ce mode de fonctionnement ne peut être utilisé qu'avec un compte d’un utilisateur dont on sait qu’il est toujours en mode interactif.
Pour cela il faut faire le paramétrage suivant dans azure
Puis dans Divalto il faut indiquer les code tenant id et client id et l’url d’indirection (l’url d’indirection sert pour le mode navigateur web avecxhmtl5 )
ou
En définissant comme valeur (url à adapter si vous êtes en on-premise pour définir les urls que vous utilisez)
urlredirect=https://api.divaltocloud.com/<site>/<env>/api/v1/EWSToken
cmdurlgettokencode=https://api.divaltocloud.com/<site>/<env>/api/v1/EWSGetTokenCode
methodegettokencode=POST
jsoncalculergettokencode=1
datacalculergettokencode={ "state":"%state%" }
Soit par exemple pour le site 699150 environnement v215:
urlredirect=https://api.divaltocloud.com/699150/v215/api/v1/EWSToken
cmdurlgettokencode=https://api.divaltocloud.com/699150/v215/api/v1/EWSGetTokenCode
methodegettokencode=POST
jsoncalculergettokencode=1
datacalculergettokencode={ "state":"%state%" }
Une fois terminé, validez et validez le paramétrage de la configuration.
Vous pouvez à présent appuyer sur le bouton Authentification azure pour être redirigé vers la saisie de votre compte Windows pour récupérer le token et pouvoir envoyer des mails en routage EWS.
Liens d’informations supplémentaires