🛠 Outils IT
🛠 102 outils 📚 53 docs
🤖 Assistant ☀

Microsoft 365 - Exchange Online, Teams, SharePoint

1. Architecture du tenant et licences

1.1 Le tenant : unité d'isolation

Un tenant Microsoft 365 est une instance Microsoft Entra ID (identifiée par un <TENANT_ID> GUID et un domaine initial contoso.onmicrosoft.com non modifiable) à laquelle sont rattachés les services : Exchange Online, SharePoint Online, OneDrive, Teams, Purview, Defender. Quelques conséquences structurantes :

  • Localisation des données : fixée à la création du tenant selon le pays de facturation (datacenters UE pour la France). L'EU Data Boundary s'applique aux tenants européens. Changer de géographie a posteriori nécessite une offre spécifique (Advanced Data Residency / Multi-Geo).
  • Domaine initial : contoso.onmicrosoft.com et contoso.sharepoint.com sont définitifs. Le choix du préfixe est une décision de marque : il apparaît dans toutes les URL SharePoint/OneDrive. Un renommage SharePoint existe mais reste une opération lourde.
  • Identité : cloud-only, synchronisée (Entra Connect Sync ou Entra Cloud Sync) ou fédérée. Voir Microsoft Entra ID pour l'authentification, le Conditional Access et PIM.
  • Un seul tenant par organisation si possible : le multi-tenant complique la collaboration (Teams, calendriers libres/occupés, recherche) et la conformité. Les fusions-acquisitions donnent souvent lieu à une migration tenant-to-tenant (section 3).

1.2 Comparatif des licences principales

Fonctionnalité Business Premium Microsoft 365 E3 Microsoft 365 E5
Plafond d'utilisateurs 300 (par SKU Business) Illimité Illimité
Boîte Exchange Online 50 Go + archive 100 Go + archive extensible 100 Go + archive extensible
Entra ID P1 P1 P2 (PIM, Identity Protection)
Intune Oui (Plan 1) Oui (Plan 1) Oui (Plan 1)
Defender for Office 365 Plan 1 Non (EOP seul) Plan 2 (Threat Explorer, AIR, simulation d'attaques)
Defender for Endpoint Defender for Business Plan 1 Plan 2 (EDR complet, hunting)
Purview DLP Exchange/SharePoint, étiquettes manuelles Rétention, DLP, étiquettes manuelles, eDiscovery standard Étiquetage automatique, eDiscovery Premium, Insider Risk, Audit Premium
Téléphonie Teams Add-on Add-on Teams Phone inclus (selon SKU)
Offres « sans Teams » : suite aux engagements de Microsoft auprès de la Commission européenne, les suites Enterprise sont vendues en variantes « (no Teams) » avec une licence Teams Enterprise séparée. Les intitulés exacts et la disponibilité selon le canal (CSP, EA) évoluent : vérifier la grille tarifaire en vigueur avant un renouvellement.

1.3 Décisions de conception à prendre au démarrage

Sujet Options Recommandation
Source d'identité Cloud-only / Entra Connect / Cloud Sync Cloud-only si pas d'AD ; Cloud Sync pour les besoins simples ; Connect Sync si writeback complexe ou Exchange hybride
Authentification PHS / PTA / Fédération (AD FS) Password Hash Sync : pas de dépendance on-prem, détection des fuites d'identifiants
Attribution des licences Manuelle / group-based licensing Groupes (Entra ID P1) : traçable, automatisable via onboarding RH
Administration Global Admin pour tous / rôles granulaires Rôles minimaux (Exchange Admin, Teams Admin...) + PIM + 2 comptes bris de glace
Nommage des groupes Libre / politique de nommage Politique de nommage + restriction de création des groupes M365 (et donc des Teams)
Comptes d'administration : les comptes admin doivent être des comptes cloud-only (adm-xxx@contoso.onmicrosoft.com), sans boîte aux lettres, sans licence productivité, protégés par MFA résistant au phishing (FIDO2 / passkey). Un compte admin synchronisé depuis l'AD rend le tenant dépendant de la compromission de l'AD.

2. Domaines et DNS (MX, SPF, DKIM, DMARC)

2.1 Ajout et vérification d'un domaine

Dans le centre d'administration Microsoft 365 (Paramètres > Domaines), l'ajout d'un domaine demande un enregistrement TXT MS=msXXXXXXXX de preuve de propriété. Ce TXT peut être supprimé après vérification, mais il est commode de le conserver (ré-vérification). Un domaine ne peut être vérifié que dans un seul tenant à la fois : c'est le point bloquant de toute migration tenant-to-tenant.

2.2 Enregistrements attendus

Type Nom Valeur Rôle
MX @ contoso-com.mail.protection.outlook.com (priorité 0) Réception (point d'entrée EOP)
CNAME autodiscover autodiscover.outlook.com Configuration automatique d'Outlook
TXT @ v=spf1 include:spf.protection.outlook.com -all SPF
CNAME selector1._domainkey Valeur fournie par Get-DkimSigningConfig DKIM (clé active ou en rotation)
CNAME selector2._domainkey Valeur fournie par Get-DkimSigningConfig DKIM (seconde clé)
TXT _dmarc v=DMARC1; p=none; rua=mailto:dmarc@contoso.com DMARC (durcir progressivement)
CNAME enterpriseregistration / enterpriseenrollment enterpriseregistration.windows.net / enterpriseenrollment.manage.microsoft.com Enregistrement d'appareils, Intune (voir Intune)
MX nouvelle génération : Microsoft déploie des MX sous mx.microsoft (zone signée DNSSEC) pour permettre l'inbound SMTP DANE. Pour un nouveau domaine, le centre d'administration peut proposer cette forme : reprendre exactement la valeur affichée dans le portail plutôt qu'une valeur recopiée d'une documentation.

2.3 DKIM : activation et rotation

Sans configuration, Exchange Online signe avec le domaine *.onmicrosoft.com : l'alignement DMARC échoue sur le domaine personnalisé. Il faut publier les deux CNAME puis activer la signature. Le format de la cible CNAME a évolué (ancien : selector1-contoso-com._domainkey.contoso.onmicrosoft.com ; récent : sous dkim.mail.microsoft) : toujours lire la valeur renvoyée par le tenant.

# Connexion
Connect-ExchangeOnline -UserPrincipalName adm-exo@contoso.onmicrosoft.com

# Créer la configuration (désactivée) et récupérer les CNAME à publier
New-DkimSigningConfig -DomainName contoso.com -Enabled $false -KeySize 2048
Get-DkimSigningConfig -Identity contoso.com | Format-List Selector1CNAME, Selector2CNAME, Status

# Après propagation DNS
Set-DkimSigningConfig -Identity contoso.com -Enabled $true

# Rotation (bascule vers l'autre sélecteur, nouvelle clé 2048 bits)
Rotate-DkimSigningConfig -Identity contoso.com -KeySize 2048
Get-DkimSigningConfig -Identity contoso.com | Format-List Selector*KeySize, RotateOnDate, SelectorBeforeRotateOnDate

2.4 SPF : budget de 10 lookups

Chaque include:, a, mx, exists, redirect consomme une requête DNS ; au-delà de 10, le résultat est permerror, traité comme un échec par de nombreux récepteurs. Les plateformes tierces (CRM, emailing, ticketing) font vite exploser le budget. Stratégie : envoyer le marketing depuis un sous-domaine dédié (news.contoso.com) avec son propre SPF/DKIM, plutôt que d'empiler les includes sur le domaine principal.

# Compter les lookups SPF (approximation : un niveau d'imbrication)
Resolve-DnsName contoso.com -Type TXT | Where-Object { $_.Strings -match '^v=spf1' } | Select-Object -Expand Strings
nslookup -type=txt spf.protection.outlook.com

2.5 DMARC : montée en charge

  1. p=none avec rua pendant 2 à 4 semaines : inventorier tous les expéditeurs légitimes (rapports agrégés).
  2. Corriger : DKIM pour chaque plateforme tierce, SPF pour les relais restants.
  3. p=quarantine; pct=25 puis 100.
  4. p=reject, avec sp=reject pour les sous-domaines non utilisés.

Les détails (alignement relaxé/strict, lecture des rapports, ARC) sont traités dans DKIM / SPF / DMARC.

Domaine parqué : tout domaine possédé mais n'envoyant pas de mail doit publier v=spf1 -all, un DMARC p=reject et un MX nul (0 .) pour ne pas servir à l'usurpation.

3. Migrations de messagerie

3.1 Comparatif des méthodes

Méthode Source Volume indicatif Coexistence Contenu migré Limites
Cutover Exchange on-prem Jusqu'à ~150 boîtes (max théorique 2000) Aucune (bascule en bloc) Mail, calendrier, contacts Profils Outlook à recréer ; incompatible avec la synchro d'annuaire active
Staged Exchange 2003/2007 Par lots Partielle Mail, calendrier, contacts Versions obsolètes : cas devenu marginal
Hybride (full) Exchange 2016/2019/SE Illimité Complète (free/busy, GAL, déplacement transparent) Tout, profil Outlook conservé Complexité, certificats publics, ports entrants vers EWS/Autodiscover
Hybride minimal (express) Exchange 2016/2019/SE Moyen Limitée (pas de free/busy croisé) Tout Pour migrer vite sans coexistence longue
IMAP Tout serveur IMAP (Gmail, Zimbra, hébergeur) Tout Par MX dual / redirection Mail uniquement (50 000 éléments max par boîte selon la doc) Ni calendrier, ni contacts, ni règles ; boîtes à créer avant
Google Workspace (natif) Google Workspace Tout Routage via sous-domaine Mail, calendrier, contacts Projet GCP + compte de service à délégation domaine
Cross-tenant mailbox migration Autre tenant M365 Tout Via MailUser cible Boîte complète (sans re-téléchargement OST... selon le client) Licence de migration cross-tenant par utilisateur ; ne migre ni Teams ni SharePoint
Exchange Server on-prem : Exchange 2016 et 2019 sont sortis du support le 14 octobre 2025. La cible on-prem supportée est Exchange Server Subscription Edition (SE). Un serveur Exchange est toujours nécessaire en hybride synchronisé pour gérer les attributs de destinataires (ou les outils de gestion Exchange « sans serveur » selon le cas) : vérifier la doc Microsoft avant de décommissionner le dernier serveur.

3.2 Hybride : points d'attention

  • Hybrid Configuration Wizard (HCW) : téléchargé depuis l'EAC ; configure connecteurs, OAuth, organisation relationship, domaine coexistence contoso.mail.onmicrosoft.com.
  • Application hybride dédiée : Microsoft a fait évoluer l'authentification hybride (application Entra dédiée au lieu du principal partagé, fin progressive d'EWS côté Exchange Online). Suivre les annonces du Message Center et les mises à jour cumulatives (CU) requises.
  • Certificat public sur le serveur hybride pour le transport TLS (SAN : mail.contoso.com, autodiscover.contoso.com).
  • Migration Endpoint : MRS Proxy activé sur l'EWS virtual directory ; tester avec Test-MigrationServerAvailability.
  • Bascule finale : MX vers EOP, Autodiscover vers Exchange Online seulement quand toutes les boîtes sont migrées.
# Tester l'endpoint de migration (EXO)
Test-MigrationServerAvailability -ExchangeRemoteMove -RemoteServer mail.contoso.com -Credentials (Get-Credential)

# Lot de déplacement distant (remote move) depuis un CSV (colonne EmailAddress)
New-MigrationBatch -Name "Lot-01-Compta" -SourceEndpoint "Hybrid-EP" `
  -CSVData ([System.IO.File]::ReadAllBytes("C:\mig\lot01.csv")) `
  -TargetDeliveryDomain "contoso.mail.onmicrosoft.com" `
  -BadItemLimit 10 -AutoStart

# Synchronisation incrémentale puis finalisation planifiée
Get-MigrationBatch "Lot-01-Compta" | Format-List Status, TotalCount, SyncedCount, FailedCount
Get-MigrationUser -BatchId "Lot-01-Compta" | Get-MigrationUserStatistics | Select Identity, Status, PercentageComplete, Error
Complete-MigrationBatch -Identity "Lot-01-Compta"

3.3 Tenant-to-tenant : séquencement

  1. Inventaire : boîtes, OneDrive, sites, Teams, groupes, applications enregistrées, flux Power Automate (non migrés nativement).
  2. Réduire le TTL des enregistrements DNS (MX, autodiscover) à 300 s quelques jours avant.
  3. Pré-provisionner les utilisateurs cibles (MailUser avec ExchangeGUID et LegacyExchangeDN de la source en x500) pour la migration cross-tenant.
  4. Pré-copier les données (synchro incrémentale), sans finaliser.
  5. Week-end de bascule : retirer le domaine de la source (supprimer toutes les références : UPN, proxyAddresses, groupes), le vérifier dans la cible, finaliser, basculer le MX.
  6. Recréer les profils Outlook / reconnecter OneDrive et Teams ; communiquer la nouvelle URL SharePoint.
Adresses x500 : ajouter l'ancien LegacyExchangeDN en adresse X500: sur chaque destinataire cible. Sans cela, les réponses à d'anciens messages et les entrées du cache de saisie semi-automatique Outlook génèrent des NDR IMCEAEX.

4. Flux de messagerie et connecteurs

4.1 Pipeline de traitement

Un message entrant traverse : filtrage de connexion (réputation IP, liste d'autorisation/blocage) > antimalware > règles de flux de messagerie (transport rules) > anti-spam / anti-phishing (usurpation, emprunt d'identité) > Safe Attachments / Safe Links (Defender) > remise. Comprendre cet ordre explique pourquoi une règle de transport qui positionne SCL=-1 court-circuite le filtrage anti-spam mais pas l'antimalware.

4.2 Connecteurs

Type Cas d'usage Identification de l'émetteur
Entrant Partner Partenaire imposant TLS, passerelle de sécurité tierce en amont IP source ou nom du certificat TLS
Entrant OnPremises Serveur on-prem, appliance, relais applicatif Certificat TLS (préféré) ou IP publique fixe
Sortant Partner TLS forcé vers un domaine, smart host tiers (passerelle de chiffrement, archivage) Domaine destinataire ou règle de transport
Sortant OnPremises Hybride : remise vers les boîtes encore on-prem Domaines accédés via le connecteur
Passerelle tierce devant EOP : si le MX pointe vers une passerelle (Mimecast, Proofpoint, Vade, etc.), EOP voit l'IP de la passerelle et non l'émetteur réel : SPF/DMARC échouent ou sont inopérants. Activer Enhanced Filtering for Connectors (skip listing) sur le connecteur entrant, et verrouiller le tenant pour n'accepter que la passerelle (règle de transport ou connecteur restrictif), sinon les attaquants contournent la passerelle en livrant directement sur contoso-com.mail.protection.outlook.com.

4.3 Règles de flux de messagerie (transport rules)

Usages maîtrisés : bandeau « message externe » (préférer l'option native Set-ExternalInOutlook -Enabled $true), blocage d'extensions, chiffrement Purview Message Encryption conditionnel, disclaimers, routage vers un connecteur. À éviter : les règles qui contournent le filtrage sur le seul domaine expéditeur (usurpable).

# Bandeau natif "Externe" dans Outlook
Set-ExternalInOutlook -Enabled $true -AllowList @{Add="partenaire.example.com"}

# Bloquer les pièces jointes exécutables entrantes (en complément du filtre de pièces jointes communes)
New-TransportRule -Name "Bloquer PJ executables" `
  -FromScope NotInOrganization `
  -AttachmentExtensionMatchesWords "exe","js","vbs","iso","img","lnk","hta","one" `
  -RejectMessageReasonText "Type de piece jointe refuse" -RejectMessageEnhancedStatusCode "5.7.1" `
  -Mode Audit   # passer en Enforce après validation

# Bloquer le transfert automatique externe (préférer la politique anti-spam sortante)
Set-HostedOutboundSpamFilterPolicy -Identity Default -AutoForwardingMode Off
Mode Audit : toute nouvelle règle de transport doit d'abord tourner en -Mode Audit (ou AuditAndNotify) quelques jours. Les correspondances sont visibles dans le message trace détaillé (événement Transport rule).

4.4 Domaines acceptés

  • Authoritative : toutes les boîtes du domaine sont dans EXO ; destinataire inconnu = NDR immédiat. Activer Directory-Based Edge Blocking (DBEB, par défaut) pour rejeter en session SMTP.
  • Internal Relay : une partie des boîtes est ailleurs (on-prem, autre système) ; les inconnus sont routés via un connecteur sortant. Indispensable pendant une coexistence non hybride.

5. Relais SMTP (imprimantes, applications)

5.1 Trois options

Critère SMTP AUTH (client submission) Direct Send Relais via connecteur
Point de connexion smtp.office365.com:587 STARTTLS MX du tenant, port 25 MX du tenant, port 25
Authentification Compte + mot de passe (basic) ou OAuth Aucune IP publique fixe ou certificat TLS
Destinataires externes Oui Non (internes uniquement) Oui
Licence Boîte licenciée (ou partagée selon le mode) Aucune Aucune
Limites 30 messages/min, 10 000 destinataires/jour (limites EXO) Filtrage anti-spam complet, usurpable IP fixe obligatoire, SPF à mettre à jour
Statut 2026 Basic auth en cours de retrait (voir 5.2) Peut être désactivé au niveau tenant Option recommandée pour les équipements

5.2 État de l'authentification basique

L'authentification basique a été désactivée pour EWS, EAS, POP, IMAP, PowerShell distant, MAPI, RPC, OAB et Autodiscover en 2022. SMTP AUTH en basic a fait l'objet d'un calendrier de retrait annoncé pour 2026, ajusté plusieurs fois par Microsoft : consulter le Message Center et la page « Deprecation of Basic authentication in Exchange Online » pour la date effective sur votre tenant. Dans tous les cas, un équipement qui dépend d'un login/mot de passe SMTP doit être migré vers OAuth (s'il le supporte), vers un connecteur, ou vers un relais interne.

# Tenant : désactiver SMTP AUTH partout, puis l'autoriser boîte par boîte si nécessaire
Set-TransportConfig -SmtpClientAuthenticationDisabled $true
Set-CASMailbox -Identity scanner@contoso.com -SmtpClientAuthenticationDisabled $false
Get-CASMailbox -ResultSize Unlimited | Where-Object { $_.SmtpClientAuthenticationDisabled -eq $false } | Select PrimarySmtpAddress

# Refuser le Direct Send non authentifié (usurpation interne)
Set-OrganizationConfig -RejectDirectSend $true
Get-OrganizationConfig | Format-List RejectDirectSend
Direct Send et phishing : Direct Send permet à n'importe qui sur Internet d'envoyer un message « de direction@contoso.com à compta@contoso.com » via le MX. Des campagnes l'exploitent activement. Si aucun équipement ne l'utilise, activer RejectDirectSend ; sinon basculer ces équipements vers un connecteur partenaire identifié par IP ou certificat avant de l'activer.

5.3 Connecteur de relais par IP

# Connecteur entrant pour le relais des équipements (IP publique fixe du site)
New-InboundConnector -Name "Relais-Site-Paris" -ConnectorType OnPremises `
  -SenderIPAddresses 203.0.113.10 -SenderDomains * `
  -RequireTls $true -RestrictDomainsToIPAddresses $true

# SPF : ajouter l'IP du site
# v=spf1 ip4:203.0.113.10 include:spf.protection.outlook.com -all

5.4 Architecture recommandée : relais interne

Pour un parc d'imprimantes et d'applications hétérogènes, un relais SMTP interne (Postfix ou serveur IIS SMTP, ce dernier étant obsolète) accepte les messages en clair sur le LAN depuis une liste d'IP autorisées, puis les remet à EXO via le connecteur ci-dessus en TLS. Avantages : un seul point de sortie, une seule IP dans le SPF, journalisation centralisée, indépendance vis-à-vis des capacités TLS/OAuth des équipements.

# /etc/postfix/main.cf (extrait) - relais vers EXO
myhostname = relay01.contoso.local
mynetworks = 127.0.0.0/8, 10.10.20.0/24
inet_interfaces = 10.10.20.5
relayhost = [contoso-com.mail.protection.outlook.com]:25
smtp_tls_security_level = encrypt
smtp_tls_loglevel = 1
smtpd_relay_restrictions = permit_mynetworks, reject
# Forcer un expéditeur appartenant au domaine accepté
sender_canonical_maps = regexp:/etc/postfix/sender_canonical

Microsoft propose également High Volume Email (HVE) pour les envois internes en volume depuis des applications : vérifier son statut (préversion/disponibilité générale) et ses conditions de licence avant de l'adopter.

6. EOP et Defender for Office 365

6.1 Strates de protection

Fonction EOP (toutes licences EXO) Defender for O365 P1 Defender for O365 P2
Anti-spam, antimalware, anti-usurpation Oui Oui Oui
Anti-phishing : protection d'emprunt d'identité (utilisateurs/domaines), mailbox intelligence Non Oui Oui
Safe Attachments (détonation en sandbox), Safe Links (réécriture et vérification au clic) Non Oui (mail, Teams, Office) Oui
Threat Explorer, AIR (investigation automatique), Attack simulation training Non Real-time detections Oui

6.2 Politiques prédéfinies (preset security policies)

Les politiques Standard et Strict appliquent les réglages recommandés par Microsoft et suivent automatiquement leurs évolutions. Elles sont prioritaires sur les politiques personnalisées. Démarche conseillée : Standard pour tous, Strict pour les cibles à risque (direction, finance, RH, admins), politiques personnalisées uniquement pour les exceptions documentées. L'analyseur de configuration (portail Defender > Email & collaboration > Policies > Configuration analyzer) liste les écarts.

6.3 Anti-phishing : réglages structurants

  • Users to protect : jusqu'à 350 utilisateurs (dirigeants) protégés contre l'emprunt de nom d'affichage.
  • Domains to protect : inclure les domaines possédés et ceux des partenaires critiques (détection des typosquats).
  • Spoof intelligence : examiner l'insight d'usurpation et autoriser explicitement les expéditeurs légitimes qui échouent l'authentification (plutôt que désactiver la protection).
  • Seuil de phishing : 2 (Aggressive) en Standard, 3 (More aggressive) en Strict.
  • Honor DMARC policy : activé ; quand l'expéditeur publie p=reject, appliquer le rejet.

6.4 Quarantaine

Les quarantine policies définissent ce que l'utilisateur peut faire (consulter, demander la libération, libérer) par type de détection. Règle d'or : jamais de libération en libre-service pour le malware et le phishing à haute confiance (c'est d'ailleurs imposé pour ces catégories).

# Messages en quarantaine pour un destinataire, dernières 48 h
Get-QuarantineMessage -RecipientAddress user@contoso.com -StartReceivedDate (Get-Date).AddDays(-2) |
  Select ReceivedTime, SenderAddress, Subject, QuarantineTypes, Identity

# Libérer un message vers son destinataire d'origine
Release-QuarantineMessage -Identity "<IDENTITY>" -ReleaseToAll

# Prévisualiser avant de libérer
Preview-QuarantineMessage -Identity "<IDENTITY>"

6.5 Tenant Allow/Block List

Les autorisations se font par la soumission (portail Defender > Submissions) : Microsoft analyse et crée une entrée « allow » temporaire. Les blocages (expéditeurs, domaines, URL, hachages de fichiers) sont gérés dans la Tenant Allow/Block List. Éviter les anciennes listes d'expéditeurs autorisés des politiques anti-spam, qui contournent le filtrage sans analyse.

New-TenantAllowBlockListItems -ListType Sender -Block -Entries "fraude@example.net" -NoExpiration
New-TenantAllowBlockListItems -ListType Url -Block -Entries "*.malicious.example" -ExpirationDate (Get-Date).AddDays(90)
Get-TenantAllowBlockListItems -ListType Sender
Signalement utilisateur : activer le bouton natif « Signaler » d'Outlook et configurer la boîte de réception des signalements (Settings > Email & collaboration > User reported settings). Les signalements alimentent les soumissions et, en P2, AIR.

7. Purview : rétention, eDiscovery, DLP, étiquettes

7.1 Rétention : politiques et étiquettes

Objet Portée Usage
Retention policy Emplacements entiers (toutes les boîtes, tous les sites, chats Teams...) Socle : « conserver 10 ans puis rien », « supprimer les chats Teams après 2 ans »
Retention label Un élément (document, mail), appliqué manuellement, par défaut sur une bibliothèque, ou automatiquement (E5) Exceptions par type documentaire : contrats, bulletins de paie, déclaration en record
Litigation hold / eDiscovery hold Boîte, site, requête Gel juridique, prime sur toute suppression

Principes de résolution : la conservation l'emporte sur la suppression ; la période de conservation la plus longue l'emporte ; une étiquette explicite l'emporte sur une politique pour la suppression. Les éléments supprimés par l'utilisateur mais retenus vont dans Recoverable Items (boîtes) ou dans la Preservation Hold Library (sites), qui consomment le quota.

Preservation Hold Library : une politique de rétention appliquée à tous les sites SharePoint conserve une copie de chaque version modifiée ou supprimée. Sur des sites très actifs (gros fichiers CAO, bases Access), le stockage du tenant peut exploser. Mesurer avant d'étendre une politique « tous les sites ».

7.2 eDiscovery

Purview a unifié Content Search, eDiscovery (Standard) et eDiscovery (Premium) dans une expérience unique basée sur des cas ; les fonctionnalités Premium (jeux de révision, déduplication, gestion des dépositaires) restent liées à E5 / add-on. Le rôle eDiscovery Manager doit être attribué explicitement, même aux Global Admins.

# Connexion au PowerShell Purview (Security & Compliance)
Connect-IPPSSession -UserPrincipalName adm-compliance@contoso.onmicrosoft.com

# Recherche de contenu (ex. : purge d'un mail de phishing distribué)
New-ComplianceSearch -Name "Phish-2026-10-19" -ExchangeLocation All `
  -ContentMatchQuery 'subject:"Facture impayee" AND from:attaquant@example.net AND received>=2026-10-18'
Start-ComplianceSearch -Identity "Phish-2026-10-19"
Get-ComplianceSearch -Identity "Phish-2026-10-19" | Format-List Status, Items, Size

# Purge (SoftDelete = récupérable par l'utilisateur ; HardDelete = Recoverable Items purgés)
New-ComplianceSearchAction -SearchName "Phish-2026-10-19" -Purge -PurgeType SoftDelete
Purge limitée : l'action -Purge traite un nombre limité d'éléments par boîte et par exécution. Pour un incident, Defender for Office 365 P2 (Threat Explorer > Take action) est plus adapté et tracé dans l'Action Center.

7.3 DLP

  • Commencer par les modèles (données financières France, IBAN, numéros de sécurité sociale) en mode simulation, analyser les faux positifs pendant 2 à 4 semaines.
  • Emplacements : Exchange, SharePoint, OneDrive, Teams, postes (Endpoint DLP, nécessite l'onboarding Defender/Purview des appareils).
  • Actions graduelles : policy tip > justification métier > blocage.
  • Les Sensitive Information Types personnalisés (regex + mots-clés de proximité + checksum) réduisent fortement les faux positifs.

7.4 Étiquettes de confidentialité (sensitivity labels)

Étiquette Marquage Chiffrement Conteneurs (Teams/sites)
Public Aucun Non Partage externe autorisé
Interne Pied de page Non Invités existants uniquement
Confidentiel En-tête + filigrane Oui, groupe d'utilisateurs internes Privé, pas d'invités
Confidentiel - Partenaire X En-tête Oui, interne + domaine partenaire Invités du domaine partenaire
Chiffrement et services : un document chiffré par une étiquette n'est plus lisible par les outils qui ne gèrent pas Microsoft Purview Information Protection (anciens clients, scanners, certaines sauvegardes, outils de recherche tiers). Activer le super user du service de protection pour les comptes de service de récupération et tester la co-édition avant de généraliser.

8. Boîtes partagées, ressources et archivage

8.1 Types de destinataires

Type Licence Quota Remarques
UserMailbox Requise 50/100 Go selon plan Un humain, un compte
SharedMailbox Non requise jusqu'à 50 Go, sans archive ni hold 50 Go Licence (Exchange Plan 2 ou équivalent) si archive, litigation hold ou > 50 Go. Bloquer la connexion du compte.
RoomMailbox / EquipmentMailbox Non requise (Teams Rooms : licence dédiée) 50 Go Traitement automatique des réservations (Calendar Attendant)
Groupe Microsoft 365 - 50 Go (boîte de groupe) Boîte + calendrier + site SharePoint + Planner, support d'une équipe Teams
MailUser / MailContact - - Adresse externe dans la GAL ; MailUser = utilisateur pouvant s'authentifier

8.2 Permissions et délégations

Permission Cmdlet Effet
FullAccess Add-MailboxPermission Ouvrir la boîte ; auto-mapping dans Outlook par défaut
SendAs Add-RecipientPermission Envoyer en tant que (aucune mention du délégué)
SendOnBehalf Set-Mailbox -GrantSendOnBehalfTo « X de la part de Y »
Dossier (calendrier) Add-MailboxFolderPermission Reviewer, Editor, LimitedDetails, AvailabilityOnly
# Boîte partagée avec accès pour un groupe de sécurité à extension messagerie
New-Mailbox -Shared -Name "Comptabilite" -PrimarySmtpAddress compta@contoso.com
Add-MailboxPermission -Identity compta@contoso.com -User "GRP-Compta" -AccessRights FullAccess -InheritanceType All -AutoMapping $false
Add-RecipientPermission -Identity compta@contoso.com -Trustee "GRP-Compta" -AccessRights SendAs -Confirm:$false

# Conserver une copie des messages envoyés "en tant que" dans la boîte partagée
Set-Mailbox compta@contoso.com -MessageCopyForSentAsEnabled $true -MessageCopyForSendOnBehalfEnabled $true

# Bloquer la connexion directe au compte de la boîte partagée (Graph)
Update-MgUser -UserId compta@contoso.com -AccountEnabled:$false

# Calendrier : les collègues voient les détails limités
Set-MailboxFolderPermission -Identity "user@contoso.com:\Calendrier" -User Default -AccessRights LimitedDetails
Nom du dossier calendrier : il dépend de la langue de la boîte (Calendar, Calendrier...). Le récupérer avec Get-MailboxFolderStatistics user@contoso.com -FolderScope Calendar | Select -First 1 Name dans les scripts.
Auto-mapping et groupes : l'auto-mapping ne fonctionne qu'avec des permissions accordées à des utilisateurs, pas à des groupes. Par ailleurs, une boîte mappée automatiquement et volumineuse est téléchargée dans l'OST de chaque délégué : sur des boîtes de plusieurs dizaines de Go, désactiver l'auto-mapping et réduire la fenêtre de cache.

8.3 Salles et ressources

New-Mailbox -Room -Name "Salle Everest" -PrimarySmtpAddress salle.everest@contoso.com -ResourceCapacity 12
Set-CalendarProcessing salle.everest@contoso.com -AutomateProcessing AutoAccept `
  -BookingWindowInDays 180 -MaximumDurationInMinutes 480 -AllowConflicts $false `
  -DeleteSubject $false -AddOrganizerToSubject $false -ProcessExternalMeetingMessages $false
# Places / listes de salles pour Room Finder
New-DistributionGroup -RoomList -Name "Salles Paris" -Members salle.everest@contoso.com

8.4 Archivage

  • Archive en ligne : Enable-Mailbox -Archive. Les éléments y sont déplacés par une étiquette MRM Move to Archive (par défaut 2 ans dans la Default MRM Policy).
  • Archivage à extension automatique : jusqu'à 1,5 To ; activé par boîte ou pour l'organisation. Irréversible.
  • Managed Folder Assistant : traite les boîtes environ tous les 7 jours ; forcer avec Start-ManagedFolderAssistant.
  • Un fichier PST n'est pas un archivage : importer les PST via le service d'import Purview (Azure Blob + fichier de mappage CSV), puis interdire les PST via GPO/Intune.
Enable-Mailbox user@contoso.com -Archive
Enable-Mailbox user@contoso.com -AutoExpandingArchive
Start-ManagedFolderAssistant -Identity user@contoso.com
Get-MailboxStatistics user@contoso.com -Archive | Select DisplayName, TotalItemSize, ItemCount
Get-MailboxFolderStatistics user@contoso.com -FolderScope RecoverableItems | Select Name, FolderAndSubfolderSize

9. Teams : politiques et accès externe

9.1 Accès externe vs accès invité

Critère Accès externe (fédération) Accès invité (B2B) Canaux partagés (B2B Direct Connect)
Ce que voit l'externe Chat 1:1 / de groupe, appels, présence Une équipe entière (fichiers, canaux standard) Un canal précis, depuis son propre tenant
Objet créé dans votre annuaire Aucun Compte invité (#EXT#) Aucun
Contrôle Teams admin center : domaines autorisés/bloqués Entra External Identities + Teams + SharePoint Paramètres d'accès inter-tenant Entra (des deux côtés)
Conditional Access Non applicable Applicable (MFA invité) Confiance MFA du tenant partenaire
Connect-MicrosoftTeams

# Fédération : n'autoriser que les domaines partenaires listés
Set-CsTenantFederationConfiguration -AllowFederatedUsers $true `
  -AllowedDomainsAsAList @{Add="partenaire.example.com","fournisseur.example.org"}
# Comptes Teams non gérés (personnels) : à désactiver sauf besoin métier
Set-CsTenantFederationConfiguration -AllowTeamsConsumer $false -AllowTeamsConsumerInbound $false
Get-CsTenantFederationConfiguration
Vecteur d'attaque : des campagnes d'ingénierie sociale utilisent des tenants externes nommés « Help Desk » pour contacter les utilisateurs par chat Teams, puis leur faire installer un outil de prise en main à distance. Restreindre la fédération ouverte à une liste blanche est la mesure la plus efficace ; à défaut, conserver les avertissements d'expéditeur externe et sensibiliser.

9.2 Politiques Teams

  • Meeting policies : qui peut contourner la salle d'attente (lobby), enregistrement et transcription (attention RGPD), qui peut présenter, participants anonymes.
  • Messaging policies : suppression/modification des messages envoyés, applications Giphy, priorité urgente.
  • App permission / app setup policies (ou gestion centralisée des applications) : bloquer les applications tierces par défaut, approuver au cas par cas.
  • Création d'équipes : contrôlée par la création de groupes M365 (Entra) ; limiter à un groupe de sécurité et proposer un processus de demande.
  • Expiration des groupes : politique Entra (ex. 365 jours), renouvellement automatique si activité.
# Politique de réunion pour un groupe sensible
New-CsTeamsMeetingPolicy -Identity "Reunions-Direction" -AllowCloudRecording $false -AllowTranscription $false `
  -AutoAdmittedUsers "EveryoneInCompanyExcludingGuests" -AllowAnonymousUsersToJoinMeeting $false
Grant-CsTeamsMeetingPolicy -Group "GRP-Direction" -PolicyName "Reunions-Direction" -Rank 1

# Restreindre la création des groupes M365 (Graph, paramètre d'annuaire Group.Unified)
# Voir la procédure Microsoft "Manage who can create Microsoft 365 Groups" : EnableGroupCreation = false
# + GroupCreationAllowedGroupId = <ID_GROUPE_AUTORISE>

10. SharePoint et OneDrive : partage et gouvernance

10.1 Niveaux de partage externe

Niveau Valeur SharingCapability Effet
Tout le monde ExternalUserAndGuestSharing Liens « Anyone » sans authentification
Invités nouveaux et existants ExternalUserSharingOnly Authentification requise (code par mail ou compte B2B)
Invités existants ExistingExternalUserSharingOnly Seulement les invités déjà dans l'annuaire
Organisation uniquement Disabled Aucun partage externe

Le niveau du tenant est un plafond : un site ne peut pas être plus permissif que le tenant, et OneDrive ne peut pas être plus permissif que SharePoint.

Connect-SPOService -Url https://contoso-admin.sharepoint.com

# Plafond tenant : invités authentifiés, liens par défaut restreints
Set-SPOTenant -SharingCapability ExternalUserSharingOnly `
  -DefaultSharingLinkType Internal -DefaultLinkPermission View `
  -RequireAcceptingAccountMatchInvitedAccount $true `
  -ExternalUserExpirationRequired $true -ExternalUserExpireInDays 90 `
  -EnableAzureADB2BIntegration $true

# Si les liens Anyone sont autorisés : expiration et lecture seule
Set-SPOTenant -RequireAnonymousLinksExpireInDays 30 -FileAnonymousLinkType View -FolderAnonymousLinkType View

# Limiter le partage à des domaines (liste blanche)
Set-SPOTenant -SharingDomainRestrictionMode AllowList -SharingAllowedDomainList "partenaire.example.com"

# Site sensible : aucun partage externe
Set-SPOSite -Identity https://contoso.sharepoint.com/sites/RH -SharingCapability Disabled

10.2 Gouvernance des sites

  • Architecture plate + hubs : un site par projet/équipe, rattaché à un hub (navigation, thème, recherche). Les sous-sites sont déconseillés.
  • Permissions : gérer via les groupes M365 (propriétaires/membres) ou les groupes SharePoint du site ; éviter l'héritage cassé au niveau dossier/fichier (ingérable, mauvais pour les performances).
  • Propriétaires : au minimum deux par site ; politique de sites sans propriétaire.
  • Limites : 30 millions d'éléments par bibliothèque, mais le seuil d'affichage de liste (5 000) et la synchronisation OneDrive (recommandation : < 300 000 fichiers synchronisés par client) sont les vraies contraintes opérationnelles.
  • Versioning : les limites de versions (par défaut 500) pèsent sur le stockage ; les paramètres de versions automatiques ou par âge permettent de réduire la consommation.
  • Copilot et sur-partage : Microsoft 365 Copilot respecte les permissions, ce qui rend visibles les sur-partages existants (« Everyone except external users »). Auditer avant déploiement (rapports de gouvernance d'accès aux données, Restricted Content Discovery, fonctions de SharePoint Advanced Management selon licence).
# Sites partagés avec "Everyone except external users" : repérer via les rapports DAG
# Inventaire rapide des sites et de leur niveau de partage
Get-SPOSite -Limit All | Select Url, Template, SharingCapability, StorageUsageCurrent, LastContentModifiedDate |
  Export-Csv C:\audit\sites.csv -NoTypeInformation -Encoding UTF8

# OneDrive : rétention après départ d'un utilisateur (jours)
Set-SPOTenant -OrphanedPersonalSitesRetentionPeriod 365

# Accès depuis appareils non gérés : navigateur uniquement, pas de téléchargement
Set-SPOTenant -ConditionalAccessPolicy AllowLimitedAccess
AllowLimitedAccess : ce paramètre crée une politique de Conditional Access côté Entra (session « Use app enforced restrictions »). Il nécessite Entra ID P1 et repose sur la notion d'appareil conforme ou joint (voir Intune).

11. PowerShell : ExchangeOnlineManagement et Graph

11.1 Modules et authentification

Module Connexion Périmètre
ExchangeOnlineManagement (v3, REST) Connect-ExchangeOnline / Connect-IPPSSession Exchange Online, Purview (S&C)
Microsoft.Graph (et Microsoft.Graph.Beta) Connect-MgGraph -Scopes ... Utilisateurs, groupes, licences, Intune, rapports
MicrosoftTeams Connect-MicrosoftTeams Politiques Teams, téléphonie
Microsoft.Online.SharePoint.PowerShell / PnP.PowerShell Connect-SPOService / Connect-PnPOnline Tenant SharePoint / contenu des sites
Modules retirés : MSOnline et AzureAD sont retirés ; tout script qui utilise Connect-MsolService ou Connect-AzureAD doit être réécrit avec Microsoft Graph PowerShell. PnP.PowerShell exige désormais l'enregistrement de sa propre application Entra (l'application multi-tenant PnP partagée a été supprimée).

11.2 Automatisation sans interaction (app-only)

# Application Entra avec certificat + rôle Exchange.ManageAsApp + rôle Entra "Exchange Administrator"
Connect-ExchangeOnline -AppId "<APP_ID>" -CertificateThumbprint "<THUMBPRINT>" `
  -Organization "contoso.onmicrosoft.com" -ShowBanner:$false

# Graph app-only
Connect-MgGraph -ClientId "<APP_ID>" -TenantId "<TENANT_ID>" -CertificateThumbprint "<THUMBPRINT>"

# Dans Azure Automation / Functions : identité managée
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com"
RBAC for Applications : pour limiter une application à un sous-ensemble de boîtes (par ex. un outil métier qui lit une seule boîte via Graph Mail.Read), utiliser RBAC for Applications d'Exchange Online (management scopes) plutôt que l'ancienne Application Access Policy.

11.3 Message trace

# Les cmdlets Get-MessageTrace / Get-MessageTraceDetail sont remplacées par les versions V2
Get-MessageTraceV2 -SenderAddress facturation@contoso.com -StartDate (Get-Date).AddDays(-2) -EndDate (Get-Date) |
  Select Received, SenderAddress, RecipientAddress, Subject, Status, MessageTraceId

# Détail des événements (filtrage, règle de transport, remise, NDR)
Get-MessageTraceDetailV2 -MessageTraceId "<MESSAGE_TRACE_ID>" -RecipientAddress client@example.com |
  Select Date, Event, Action, Detail

# Au-delà de 10 jours (jusqu'à 90 jours) : rapport historique asynchrone
Start-HistoricalSearch -ReportTitle "Envois fournisseur" -StartDate (Get-Date).AddDays(-60) -EndDate (Get-Date) `
  -ReportType MessageTrace -SenderAddress fournisseur@example.com -NotifyAddress adm@contoso.com
Get-HistoricalSearch | Select ReportTitle, Status, Rows

11.4 Audits de permissions et délégations

# Toutes les délégations FullAccess non héritées (hors SELF)
Get-EXOMailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox,SharedMailbox |
  Get-EXOMailboxPermission |
  Where-Object { -not $_.IsInherited -and $_.User -notlike "NT AUTHORITY\SELF" } |
  Select Identity, User, AccessRights | Export-Csv C:\audit\fullaccess.csv -NoTypeInformation -Encoding UTF8

# SendAs
Get-EXORecipientPermission -ResultSize Unlimited | Where-Object { $_.Trustee -ne "NT AUTHORITY\SELF" } |
  Select Identity, Trustee, AccessRights

# Règles de boîte transférant vers l'extérieur (signe classique de compromission)
Get-EXOMailbox -ResultSize Unlimited | ForEach-Object {
  Get-InboxRule -Mailbox $_.PrimarySmtpAddress |
    Where-Object { $_.ForwardTo -or $_.ForwardAsAttachmentTo -or $_.RedirectTo -or $_.DeleteMessage } |
    Select @{n='Mailbox';e={$_.MailboxOwnerId}}, Name, Enabled, ForwardTo, RedirectTo, DeleteMessage
}

# Transferts SMTP configurés au niveau boîte
Get-EXOMailbox -ResultSize Unlimited -Properties ForwardingSmtpAddress, DeliverToMailboxAndForward |
  Where-Object { $_.ForwardingSmtpAddress } | Select PrimarySmtpAddress, ForwardingSmtpAddress, DeliverToMailboxAndForward

11.5 Licences et utilisateurs via Graph

Connect-MgGraph -Scopes "User.Read.All","Organization.Read.All","AuditLog.Read.All"

# Consommation des SKU
Get-MgSubscribedSku | Select SkuPartNumber, ConsumedUnits, @{n='Achetees';e={$_.PrepaidUnits.Enabled}}

# Utilisateurs licenciés sans connexion depuis 90 jours (signInActivity : Entra ID P1)
$limite = (Get-Date).AddDays(-90)
Get-MgUser -All -Property DisplayName,UserPrincipalName,AssignedLicenses,SignInActivity,AccountEnabled |
  Where-Object { $_.AssignedLicenses.Count -gt 0 -and $_.SignInActivity.LastSuccessfulSignInDateTime -lt $limite } |
  Select DisplayName, UserPrincipalName, AccountEnabled, @{n='Derniere';e={$_.SignInActivity.LastSuccessfulSignInDateTime}}

# Offboarding minimal : bloquer, révoquer les sessions, convertir en boîte partagée
Update-MgUser -UserId depart@contoso.com -AccountEnabled:$false
Revoke-MgUserSignInSession -UserId depart@contoso.com
Set-Mailbox depart@contoso.com -Type Shared

12. Sauvegarde et responsabilité partagée

12.1 Ce que Microsoft garantit, ce qui reste à vous

Risque Couvert nativement ? Mécanisme / limite
Panne d'infrastructure Microsoft Oui Réplication multi-datacenters (DAG, copies SharePoint)
Suppression accidentelle d'un mail Partiel Recoverable Items 14 jours par défaut (30 max), plus si rétention
Suppression d'un fichier SharePoint/OneDrive Partiel Corbeilles 93 jours ; restauration OneDrive/bibliothèque à J-30
Ransomware chiffrant OneDrive synchronisé Partiel Restauration à une date (30 jours), versions
Admin malveillant ou compte admin compromis Non Il peut purger les données et désactiver la rétention (hors Preservation Lock)
Utilisateur supprimé 30 jours Ensuite, boîte et OneDrive définitivement perdus (sauf hold / inactive mailbox)
Restauration granulaire ancienne (3 ans) Non La rétention conserve mais ne restaure pas en place facilement

12.2 Options

  • Microsoft 365 Backup (service natif, facturé à l'usage via un abonnement Azure) : restauration rapide de boîtes, sites et OneDrive dans le même tenant ; pas de copie hors écosystème Microsoft.
  • Solutions tierces (Veeam Backup for Microsoft 365, etc.) : stockage sur un support que vous contrôlez, idéalement immuable, voir Veeam et stratégie de sauvegarde.
  • Rétention Purview avec Preservation Lock : garantie de conservation (même contre un admin), mais ce n'est pas une sauvegarde restaurable en un clic.
Throttling : les sauvegardes tierces passent par Graph et EWS ; EWS est en voie de retrait progressif pour Exchange Online (annoncé pour 2026). Vérifier que l'éditeur a migré vers Graph et que le débit de restauration annoncé est compatible avec le RTO : restaurer 2 To de boîtes peut prendre plusieurs jours.

13. Audit et supervision

13.1 Journal d'audit unifié

Activé par défaut sur les tenants récents ; le vérifier. Rétention 180 jours en Audit (Standard), 1 an (extensible) en Audit (Premium) pour les licences E5/add-on. L'audit de boîte aux lettres (MailItemsAccessed notamment) est indispensable pour qualifier un incident : il est désormais disponible plus largement qu'auparavant, mais vérifier les actions auditées par licence.

Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled
Get-OrganizationConfig | Format-List AuditDisabled

# Recherche (EXO) - connexions et créations de règles de boîte des 7 derniers jours
Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) `
  -Operations New-InboxRule,Set-InboxRule,UpdateInboxRules -ResultSize 5000 |
  Select CreationDate, UserIds, Operations, AuditData
Volumes : Search-UnifiedAuditLog est limité en volume et en débit. Pour une exploitation continue, préférer l'API Office 365 Management Activity, l'API Audit Log Query de Graph, ou le connecteur Microsoft Sentinel / Defender XDR.

13.2 Indicateurs à suivre

  • Santé des services : centre d'administration > Santé des services, et API Graph serviceAnnouncement pour l'intégrer à la supervision (voir Monitoring).
  • Message Center : changements planifiés ; synchroniser avec Planner ou un flux et assigner une revue hebdomadaire.
  • Alertes : politiques d'alerte Defender (création de règle de transfert, élévation eDiscovery, envoi limité pour spam, utilisateur restreint).
  • Utilisateurs restreints : un compte bloqué en envoi pour spam sortant est un compte compromis jusqu'à preuve du contraire (Get-BlockedSenderAddress).
  • Secure Score : suivi mensuel de la tendance, actions acceptées comme risque documentées.
  • Rapports d'utilisation : boîtes proches du quota, sites inactifs, stockage du tenant.

14. Dépannage : NDR et message trace

14.1 Méthode

  1. Récupérer le NDR complet (code étendu, serveur ayant rejeté) ou les en-têtes du message reçu.
  2. Message trace (V2) : statut Delivered / Failed / Quarantined / FilteredAsSpam / GettingStatus, puis le détail.
  3. Analyser les en-têtes avec l'analyseur Message Header Analyzer : Authentication-Results, X-Forefront-Antispam-Report (SCL, SFV, CAT), X-MS-Exchange-Organization-AuthAs.
  4. Si le message est filtré à tort : soumission (Submissions) plutôt que règle d'autorisation.

14.2 NDR courants

Code Symptôme Cause Correction
550 5.1.10 RecipientNotFound Destinataire inexistant (DBEB), souvent une adresse proxy absente après migration Vérifier proxyAddresses, ajouter l'alias / X500
550 5.4.1 Recipient address rejected: Access denied DBEB : destinataire inconnu sur un domaine Authoritative Créer le destinataire ou passer le domaine en Internal Relay pendant la coexistence
5.4.6 / 5.4.14 Boucle de routage, hop count exceeded Connecteur sortant pointant vers un système qui renvoie vers EXO ; domaine Internal Relay mal configuré Revoir connecteurs et type de domaine accepté
550 5.7.1 Unable to relay / Delivery not authorized Relais non autorisé ; groupe restreint aux expéditeurs internes Connecteur entrant, ou RequireSenderAuthenticationEnabled $false sur le groupe si légitime
5.7.23 SPF validation error L'IP émettrice n'est pas dans le SPF du domaine expéditeur Corriger le SPF de l'expéditeur
5.7.509 Access denied, sending domain does not pass DMARC DMARC p=reject de l'expéditeur et échec SPF+DKIM alignés Côté expéditeur : DKIM sur la plateforme d'envoi
5.7.57 Client was not authenticated to send anonymous mail during MAIL FROM Envoi sur smtp.office365.com:587 sans authentification Configurer l'authentification ou passer par un connecteur
5.7.139 / 535 5.7.3 Authentication unsuccessful SMTP AUTH désactivé (tenant ou boîte), basic auth bloquée, Security Defaults, MFA Set-CASMailbox -SmtpClientAuthenticationDisabled $false, OAuth, ou connecteur
5.7.708 Service unavailable, Client host blocked Tenant récent ou IP sortante à faible réputation, envois depuis un domaine non vérifié Vérifier les domaines, montée progressive des volumes, ticket support
5.7.750 Client blocked from sending from unregistered domains Envoi en masse depuis des domaines non acceptés dans le tenant Ajouter et vérifier le domaine ; ne pas relayer pour des tiers
5.1.8 / 5.7.712 Access denied, bad outbound sender Utilisateur restreint pour envoi de spam (compte compromis probable) Investigation, reset MFA/mot de passe, déblocage dans Restricted entities
5.2.2 Mailbox full Quota atteint, souvent Recoverable Items sous hold Archive auto-extensible, revue des holds
5.2.121 / 5.2.122 Sender's per-hour message limit exceeded Limites d'envoi EXO dépassées (application en masse) Plateforme d'emailing dédiée, HVE, lissage

14.3 Symptômes hors NDR

Symptôme Cause probable Correction
Outlook redemande le mot de passe en boucle Modern Auth désactivée par clé de registre, WAM corrompu, Autodiscover pointant on-prem Test-OutlookConnectivity, Microsoft Remote Connectivity Analyzer, vérifier le CNAME autodiscover, nettoyer les identités Office
Boîte partagée absente d'Outlook Permission via groupe (pas d'auto-mapping), délai de propagation (jusqu'à 60 min) Ajout manuel du compte ou permission directe
Free/busy invisible entre on-prem et cloud OAuth hybride cassé, certificat expiré, Autodiscover inaccessible depuis Internet Test-OAuthConnectivity, relancer HCW
Mail interne classé spam Envoi via Direct Send depuis une IP non listée, ou via un relais tiers non déclaré Connecteur entrant identifié ; jamais SCL -1 sur le domaine
Message « GettingStatus » indéfiniment Trace trop récente (délai d'indexation de quelques minutes) ou message jamais arrivé chez EOP Patienter 15 min ; côté émetteur, vérifier les logs SMTP

15. Pièges classiques

  • Supprimer un utilisateur pour libérer une licence : boîte et OneDrive définitivement supprimés après 30 jours. Convertir en boîte partagée ou placer un hold avant (inactive mailbox).
  • Règle de transport « SCL -1 si expéditeur = @contoso.com » : ouvre la porte à tout spoofing de votre propre domaine.
  • Liste d'autorisation de domaine dans l'anti-spam : AllowedSenderDomains contourne le filtrage pour un domaine usurpable. Utiliser les soumissions.
  • DKIM non activé : le domaine s'aligne sur onmicrosoft.com, DMARC échoue dès que le SPF n'est pas aligné (transferts, listes).
  • MX basculé avant la fin de migration en mode Authoritative : les destinataires non encore créés reçoivent des NDR 5.4.1.
  • Groupes M365 créés librement : centaines d'équipes vides, sites orphelins, partage externe incontrôlé.
  • Global Admin permanent pour le prestataire : utiliser GDAP (relations déléguées granulaires, durée limitée) et revoir les relations partenaires dans le centre d'administration.
  • Consentement utilisateur aux applications laissé ouvert : vecteur d'attaque par consent phishing (application OAuth malveillante avec Mail.Read). Restreindre et activer le workflow d'approbation admin.
  • Shared mailbox avec mot de passe connu : le compte sous-jacent reste un compte actif ; le bloquer.
  • Exclure les comptes de service du Conditional Access sans compensation (emplacement nommé, workload identity) : cible privilégiée de password spray.
  • Rétention 7 jours sur les chats Teams sans validation juridique : perte irréversible des messages, y compris en cas de litige ultérieur.

16. Checklist sécurité et mise en production

16.1 Identité et accès

  • [ ] Deux comptes bris de glace cloud-only, FIDO2, exclus du CA mais surveillés (alerte sur chaque connexion).
  • [ ] MFA pour tous via Conditional Access (ou Security Defaults si pas de P1), méthodes résistantes au phishing pour les admins.
  • [ ] Blocage de l'authentification héritée via CA (« Other clients » et Exchange ActiveSync basique).
  • [ ] Rôles admin granulaires, PIM (P2) ou au minimum revue trimestrielle ; GDAP pour les prestataires.
  • [ ] Consentement utilisateur restreint + workflow d'approbation admin.
  • [ ] Accès PowerShell Exchange retiré aux utilisateurs non admins (Set-User -RemotePowerShellEnabled $false).

16.2 Messagerie

  • [ ] SPF -all < 10 lookups, DKIM activé sur tous les domaines, DMARC en route vers p=reject.
  • [ ] Domaines parqués verrouillés (SPF -all, DMARC reject, MX nul).
  • [ ] Politiques prédéfinies Standard/Strict appliquées ; analyseur de configuration sans écart non justifié.
  • [ ] Transfert automatique externe désactivé (politique anti-spam sortante).
  • [ ] SMTP AUTH désactivé au niveau tenant, exceptions listées et documentées.
  • [ ] Direct Send refusé si non utilisé (RejectDirectSend).
  • [ ] Bandeau externe activé, bouton de signalement configuré.
  • [ ] Filtre de pièces jointes communes activé avec extensions à risque.
  • [ ] Passerelle tierce : Enhanced Filtering + verrouillage de l'accès direct au MX EOP.

16.3 Collaboration et données

  • [ ] Partage externe SharePoint au niveau « invités authentifiés », liens par défaut internes, expiration des invités.
  • [ ] Création de groupes M365 restreinte, politique de nommage et d'expiration.
  • [ ] Fédération Teams en liste blanche ou avertissements activés ; comptes Teams personnels bloqués.
  • [ ] Applications Teams tierces soumises à approbation.
  • [ ] Politiques de rétention validées par le juridique/DPO ; impact stockage mesuré.
  • [ ] Étiquettes de confidentialité publiées, au moins en marquage.
  • [ ] Sauvegarde externe (ou M365 Backup) en place et restauration testée.

16.4 Supervision

  • [ ] Journal d'audit unifié activé, export vers SIEM si rétention > 180 jours nécessaire.
  • [ ] Politiques d'alerte (règles de transfert, utilisateurs restreints, élévations) routées vers une boîte suivie.
  • [ ] Secure Score revu mensuellement ; Message Center suivi.
  • [ ] Scripts d'audit (délégations, règles de boîte, transferts) planifiés en app-only avec certificat.
  • [ ] Procédure de réponse à compromission de boîte documentée (blocage, révocation, règles, audit MailItemsAccessed, purge).
Pour aller plus loin : Microsoft Entra ID (Conditional Access, PIM), Intune (conformité des postes), DKIM / DMARC, Google Workspace avancé pour les migrations depuis Google, et Audit de sécurité.