Introduction
La migration des boîtes courriels d’Office 365 vers IMAP est devenue plus complexe récemment. En effet, l’authentification à double facteur et l’adoption du protocole OAuth2 ont compliqué le processus. Cependant, ces changements ont aussi renforcé la sécurité des comptes.
Dans cet article, nous vous guiderons graduellement pour migrer vos boîtes Office 365 vers un système IMAP. Nous utiliserons l’outil imapsync tout en respectant les nouveaux mécanismes d’authentification de Microsoft.
Promotion
Vous préférez éviter ce processus complexe ? Notre équipe expérimentée peut s’en charger pour vous. Rendez-vous sur notre boutique, choisissez le nombre de boîtes à migrer, et nous nous occuperons du reste.
Préparation à la connexion
Avant de commencer, deux étapes sont cruciales :
- Vérifier que le protocole IMAP est activé sur vos comptes.
- Obtenir un jeton pour accéder aux serveurs Outlook.
Autorisation du protocole IMAP
Microsoft a désactivé le protocole IMAP (et POP) car il n’est pas compatible avec OAuth2. Cependant, cette décision peut être discutable selon votre politique de sécurité.
Pour la plupart des utilisateurs, l’activation de l’IMAP ne pose pas de problème majeur. Il est souvent préférable d’utiliser une solution adaptée à vos besoins plutôt qu’un système trop complexe.
Vérification de l’activation de l’IMAP
Pour cela, allez sur votre interface d’administration :
Dans le menu de gauche, accédez à « Utilisateurs » puis « Utilisateurs actifs ».
Sélectionnez l’utilisateur concerné pour ouvrir la fenêtre modale.
Dans la section « Logiciels de courrier », activez le protocole IMAP :
-
- Cliquez sur « Gérer les applications de courrier »
- Cochez la case « IMAP »
- Enregistrez les modifications
Autorisation d’accès aux autres comptes
Pour faciliter le transfert, accordez temporairement à l’utilisateur le droit d’accéder aux e-mails des autres. Suivez ces étapes pour chaque utilisateur :
- Retournez à la page des Utilisateurs actifs
- Sélectionnez l’utilisateur
- Accédez à la section « Courrier »
- Activez IMAP si nécessaire
- Cliquez sur « Autorisations de lecture et de gestion »
- Ajoutez les autorisations pour l’utilisateur configuré précédemment
Dans la sous fenêtre « Autorisations de lecture et de gestion », cliquez sur « Ajouter des autorisations » :
La liste des utilisateurs disponible s’affiche alors, et sélectionnez celui que vous avez précédemment configuré (1), puis cliquez sur « Add » (2) :
Enregistrement de l’application IMAPSYNC
Cet enregistrement déclare la manière et le type d’autorisation utilisé pour accéder au service IMAP.
Nous emploierons OAuth2 avec le flux implicite qui devra avoir une durée de vie faible.
Création de l’application
- Connectez-vous à l’interface « Entra »
- Allez dans « Applications > Inscriptions des applications »
- Cliquez sur « Nouvelle inscription »
4. Configurez l’application :
-
- Nom : imapsync
- Usage : Votre organisation
- Type : Application à page unique (SPA)
- URL de rappel : http://localhost:9876/callback
Cliquez sur « S’inscrire », ce qui vous dirige vers la page d’information de l’inscription de l’application.
Configuration de l’authentification
- Dans la page d’information de l’application, allez dans « Authentification »
- Activez : « Jetons d’accès (utilisés pour les flux implicites) »
- Enregistrez les modifications
Configuration des API autorisées
-
- Dans « API autorisées », ajoutez les permissions nécessaires :
- Microsoft Graph : IMAP.AccessAsUser.All et offline_access
- Dans « API autorisées », ajoutez les permissions nécessaires :
- Accordez le consentement d’administrateur
Allons activer les API auxquels aura le droit d’accéder notre application. Dans le menu latéral 2 cliquez sur « API autorisées » (1), puis cliquez sur « Ajouter une autorisation » (2), sélectionner « Microsoft Graph », puis « Autorisations déléguées » (3) :
Obtenir le jeton
Pour commencer, lancez la commande suivante dans votre terminal :
oauth2c https://login.microsoftonline.com/$TENANT_ID/v2.0 \ --client-id "$APP_ID" --client-secret "$APP_SECRET" \ --scopes 'https://outlook.office365.com/.default' \ --login-hint 'roland@liant.dev' --grant-type implicit \ --auth-method client_secret_basic --response-mode form_post \ --response-types token --browser-timeout 1m
Ensuite, votre navigateur par défaut s’ouvrira sur la page d’authentification Microsoft. Vous devrez alors autoriser l’application « imapsync » à accéder à vos ressources courriel.
Si vous avez besoin de plus de temps, augmentez l’option « browser-timeout ».
Une fois l’autorisation accordée, copiez l’access_token affiché. Puis, enregistrez-le dans un fichier avec la commande :
echo '<access_token>' > tokenfile
Vous disposez maintenant d’un jeton pour vous connecter en IMAP au serveur Outlook.
Lancer la synchronisation avec imapsync
Maintenant que vous avez le fichier contenant le jeton, utilisez-le avec l’option –oauthaccesstoken.
Voici la commande complète de synchronisation :
imapsync --addheader --automap \ --office1 --oauthaccesstoken1 tokenfile --user1 <utilisateur>@liant.dev \ --host2 mail.liant.email --user2 <utilisateur>@liant.dev --password2 <p2>
Pour comprendre les différentes options, consultez la documentation. Cependant, voici quelques explications essentielles :
Suffixes 1 (source serveur Office 365)
- oauthaccesstoken1 : permet l’authentification auprès du serveur
- user1 : indique la boîte à laquelle on se connecte
Suffixes 2 (destination IMAP)
- host2 : votre serveur Zimbra
- user2 : indique la boîte courriel et login IMAP
- password2 : désigne le mot de passe Zimbra
Erreurs fréquentes
Renouvellement du jeton
Si le processus dépasse la durée de vie du jeton (quelques heures), celui-ci expirera. Dans ce cas, recommencez la procédure d’obtention du jeton.
Utilisateur authentifié, mais pas d’accès à la boîte
Si vous obtenez l’erreur « User is authenticated but not connected« , vérifiez que vous avez bien autorisé l’accès au compte administrateur pour cette boîte.