Adoption de Microsoft Graph avec Auth Azure AD en remplacement de IMAP4 Basic Auth
Bonjour,
En prévision de l’arrêt du Basic Auth en POP3 et IMAP4 et l’obligation de passer par un chiffrement TLS1.2
Si vous avez des infos à ce sujet ?
ou plutôt ces sujets, c'est deux éléments différents
- Identification : Basic Auth en OAuth2 (Beared Auth avec son petit token JWT)
- Sécurité : TLS 1.2 ( c'est mieux que SSL à ce qu'ils en disent, suivons donc le mouvement :roll: )
Au bureau, il y a aurait des rumeurs comme quoi l'ensemble des protocoles POP3 et IMAP4 seraient plus supporté par Office 365 ( à différencier de boite Outlook simple )
Je serais plus modéré en pensant que c'est uniquement la Basic Authentication (Login + PWD encodé en Base 64 par exemple en HTTP) qui ne sera plus supporté
Ma source : https://developer.microsoft.com/en-u...365-customers/
Que pensez-vous de cet article ?
https://docs.microsoft.com/en-us/off...-in-office-365
Idem est-ce l'ensemble des protocoles POP3/IMAP4 qui ne sera plus supporté ou juste TLS 1.0/1.1 qu'il faut remplacer par tu TLS 1.2
Il y a même aussi le TLS 1.3 mais c'est très vague
https://developer.microsoft.com/en-u...365-customers/
Citation:
To make it easier to migrate your existing applications to use OAuth 2.0, we are making significant investments to our service that include OAuth 2.0 support for POP, IMAP, and background application support for Remote PowerShell MFA module. We will be sharing more information on these new features over the coming months. For more information on OAuth 2.0 and details on how to make the transition, please refer to the following articles:
https://docs.microsoft.com/en-us/azu...op/v2-overview
https://docs.microsoft.com/fr-fr/graph/auth/
.
Ce passage signifie-t-il que l'on peut utilisé OAuth 2.0 sur IMAP mais que ce dernier est conservé juste avec une autre méthode d'authentification ?
J'étudie justement l'authentification par Azure AD via "https://login.microsoftonline.com/.../oauth2/v2.0/token' en HTTP/1.1
OAuth2 semble gérer un token BEARER, je l'ai codé en XE2 pour l'accès à un WS REST Symfony qui utilisait cette méthode : https://www.developpez.net/forums/d1.../#post10801570
Cela ne me pose pas de problème de le coder à la main, au pire je regarderais MSAL (nouvel ADAL) qui sera une corvée à traduire depuis un autre langage quoi qu'il arrive ( eh oui, Delphi c'est pas DOT NET, MS ne fournit pas tout clé en main comme en C# où il n'y a aucun effort à faire )
En XE3+, le token BEARER a été ajouté aux classes REST
Et cela a été amélioré avec les versions suivantes dont je ne disposais pas à l'époque
J'ai regardé TRESTClient et TRESTRequest sur
"https://login.microsoftonline.com/common/oauth2/v2.0/token" retour HTTP/1.1 400 Bad Request
"https://login.microsoftonline.com/common/oauth2/token" retour HTTP/1.1 401 Unauthorized
Il semble que la version 1.0 du token JWT, "Azure AD v1.0" versus "Microsoft identity platform (v2.0)"
Sur Stack Overflow, tout est en "oauth2/token" et jamais en "oauth2/v2.0/token" mais toujours en HTTP/1.1
Plusieurs pistes sont à explorer pour remplacer IMAP4 Basic Auth
- IMAP4 ajoutant le support de OAuth2 ( token JWT principe d’une Bearer Auth ) avec un patch pour Indy
- Microsoft Graph remplacement IMAP avec ADAL, MSAL ou une requête https://login.microsoftonline.com )
- Toutes autres suggestions
- IMAP4 ajoutant le support de OAuth2
( token JWT principe d’une Bearer Auth ) avec un patch pour Indy : https://github.com/lordcrc/IndySASLO...ASLXOAuth2.pas
Indy prend en charge le TLS 1.2, la mise à jour du couple de DLL (libeay32, ssleay32) est aussi important
Cela résoudrait donc les deux sujets : Authentication et Protocole de Sécurité (si c'est bien juste ça qu'il faut changer pour Office 365)
Microsoft Graph
remplacement IMAP avec ADAL, MSAL ou une requête https://login.microsoftonline.com )
Pour le moment, je n’ai pas trouvé la bonne requête (j’ai un BAD REQUEST sur la demande d’un token sur User.Read, le plus basic des droits)
Je ne vais pas innonder de code pour le moment, je vais attendre de voir si ce sujet intéresse quelqu'un :aie:
Cordialement
SLT