Skip to main content

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 :

  1. Vérifier que le protocole IMAP est activé sur vos comptes.
  2. 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 :

Page d'accueil d'administration Office 365

Dans le menu de gauche, accédez à « Utilisateurs » puis « Utilisateurs actifs ».

Page d'administration Office 365 des utilisateurs actifs

Sélectionnez l’utilisateur concerné pour ouvrir la fenêtre modale.

Page Office 365 Admin, zone de réglages pour le courrier des utilisateurs

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
Page Office 365 admin - Modale des applications courriel

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 :

  1. Retournez à la page des Utilisateurs actifs
  2. Sélectionnez l’utilisateur
  3. Accédez à la section « Courrier »
  4. Activez IMAP si nécessaire
  5. Cliquez sur « Autorisations de lecture et de gestion »
  6. Ajoutez les autorisations pour l’utilisateur configuré précédemment
Page Microsoft Admin, Utilisateurs actifs, Utilisateur, Courrier, Migration Office 365 vers Zimbra/IMAP

Dans la sous fenêtre « Autorisations de lecture et de gestion », cliquez sur « Ajouter des autorisations » :

Page Microsoft Admin, Autorisations de lecture et de gestion, Migration Office 365 vers Zimbra/IMAP

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) :

Page Microsoft Admin, Utilisateurs actifs, Ajouter des autorisations des boîtes aux lettres utilisateurs, Migration Office 365 vers Zimbra/IMAP

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

  1. Connectez-vous à l’interface « Entra »
  2. Allez dans « Applications > Inscriptions des applications »
  3. Cliquez sur « Nouvelle inscription »
Page Entra Office 365, Inscriptions des applications

4. Configurez l’application :

Page Microsoft Entra, inscription nouvelle application, Migration Office 365 vers Zimbra/IMAP

Cliquez sur « S’inscrire », ce qui vous dirige vers la page d’information de l’inscription de l’application.

Page Microsoft Entra, Inscriptions d'applications, API autorisée, ajout des droits, Migration Office 365 vers Zimbra/IMAP

Configuration de l’authentification

  1. Dans la page d’information de l’application, allez dans « Authentification »
  2. Activez : « Jetons d’accès (utilisés pour les flux implicites) »
  3. Enregistrez les modifications

Page Microsoft Entra, Inscription d'application, AuthentificationsAllez ensuite dans le menu latéral 2 sur « Certificats & secrets » (1), cliquez sur « Nouveau secrétaire client » (2), écrivez une petite description qui vous parle pour ce secret (3), éventuellement réduisez la date d’expiration du secret et enfin, cliquez sur « Ajouter » (4) :

Création du secret client

  1. Accédez à « Certificats & secrets »
  2. Créez un nouveau secret client
  3. Notez la valeur du secret (APP_SECRET)

Page Microsoft Entra, Inscriptions des applications, Certificats & secrets, copie application secret

Configuration des API autorisées

    1. Dans « API autorisées », ajoutez les permissions nécessaires :
      • Microsoft Graph : IMAP.AccessAsUser.All et offline_access

Page Microsoft Entra, Inscriptions d'applications, API autorisée, ajout des droits

  1. Accordez le consentement d’administrateur

Page Microsoft Entra, Inscriptions d'applications, API autorisées, accord de l'administrateur

Page Microsoft Entra, Inscriptions d'applications, Vue d'ensemble, copie application ID / client IDAllons 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) :

Page Microsoft Entra, Inscriptions d'applications, API Autorisées, Ajouter une autorisation

Récupération des identifiants

Notez les valeurs suivantes :

  • APP_ID : Identifiant de l’application
  • TENANT_ID : Numéro d’annuaire de votre organisation

Ces étapes vous permettront d’utiliser oauth2c pour obtenir un jeton d’accès au service IMAP d’Outlook avec imapsync.

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 ».

 

Lancer oauth2c

 

Se connecter chez Microsoft

 

Rester ou non connecter après

 

Ouvrir le lien de callback

 

Retourner dans le terminal

 

Copier dans un fichier le jeton obtenu

1
1

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.

Roland Laurès

Roland est ingénieur en informatique, il a travaillé pendant plus de 10 ans dans des Start-Up et participé à leur montée en puissance et à leur permettre de démontrer leur capacité à tenir leurs promesses. Il a fondé Liant pour continuer à faire profiter les porteurs de projets de ses compétences.