Sommaire | ||
---|---|---|
|
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.
L’authentification Basic prend fin
Chez Microsoft, le début du programme de la fin de l’authentification de base démarre en 2022
...
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
https://techcommunitylearn.microsoft.com/t5fr-fr/exchange-team-blog//clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-and-exchange-online-september-2021-update/ba-p/2772210
Il faut d’abord inscrire l’application sur la plateforme AZURE pour obtenir un client ID et un tenant ID
Dans le saas on n’a besoin que du client ID , car le tenant ID est celui de DIVALTO et il est déjà crée.
Puis récupérer ces deux valeurs et
Mettre en œuvre l’authentification OAuth 2.0
Remarque |
---|
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 n mode OAuth
En mode saas , le choix est dans xcloudadmin , en mode onprimse , le choix est dans le menu divalto.
Le programme de paramétrage de EWS permet de saisir le code de votre client ID et le code de votre tenant ID ( sauf si vous êtes dans le saas , dans ce cas il faut laisser ce champ vide, harmony prendra le tenant id de Divalto )
Apres, vous pouvez vérifier si le paramétrage de EWS en mode Oauth est présent en lançant DivaltoViewer en mode connecté sur votre serveur ou en lançant le choix des paramètres de EWS dans le programme des paramètres techniques .
Il doit y avoir indiquer le mode avec Oauth Azure
Et il peut y avoir le bouton ou pas : ce bouton n’existe pas en mode html5 , il existe que en mode transport client web ou socket
« Authentification Azure »
Apres votre administrateur doit inscrire la liste des utilisateurs ayant le droit de se connecter à Exchange Serveur à travers une connexion Oauth pour cette application.
Mais il peut aussi demander à chacun d’activer la demande d’autorisation de la connexion a Exchange Serveur pour cette application.
Et bin sur il peut faire un mélange des deux modes, notamment pour les comptes qui n’appartiennent pas a un utilisateur , comme les comptes servant pour telnet et les services .
L’autre possibilité est donc que l’administrateur demande a chacun de valider l’autorisation de se connecter à Exchange serveur à travers l’application.
Pour cela il faut avoir le client léger de la 407 sur son poste et être en mode xwpf , en mode html5 cela n’existe pas car il n’y a pas de connexion possible entre le serveur microsoft Oauth et le navigateur .
En mode XWPF ou dans DivaltoViewer en mode conencter , il faut cliquer sur le bouton « Authentification Azure « et suivre les instructions .
Il faut choisir le compte ou si c’est la première fois , il faut indiquer le votre compte windows avec l mot de passe.
Puis valider la demande d’autorisation de l’application pour qu’elle puisse se connecter sur votre Exchange Serveur avec votre compte .
A la fin , Azure nous renvoi si l’autorisation a été validée ou abandonnée
Vous pouvez, maintenant, utiliser Divalto pour envoyer des mails , créer des RDV dans le calendrier et ajouter des contacts dans votre compte Exchange Serveur et dans Outlook
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'
Info |
---|
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.
Info |
---|
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.
...
Astuce |
---|
Vous pouvez, maintenant, utiliser Divalto pour envoyer des mails , créer des RDV dans le calendrier et ajouter des contacts dans votre compte Exchange Serveur et dans Outlook |
Mettre en œuvre l’authentification OAuth 2.0 dans le mode “sans mot de passe”
Remarque |
---|
Un runtime Harmony supérieur à 409 Service Pack A (03/03/2023) est requis pour réaliser ces opérations, tant sur le SERVEUR que sur le CLIENT |
Info |
---|
Les informations suivent concernent les comptes utilisateurs physiques interactifs (pas pour les comptes de services comme pour l’envoi de mail par processus) |
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)
Bloc de code |
---|
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:
Bloc de code |
---|
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.
...
Remarque |
---|
Il faudra aussi autoriser l’url en question dans votre panel azure |
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
https://docs.microsoft.com/fr-fr/azure/active-directory/develop/quickstart-register-app
https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBladeInscriptions applications