Microsoft 365 Security Hardening Guide
Step-by-step configuration guidance for securing your Microsoft 365 tenant across Entra ID, Exchange Online, SharePoint, OneDrive, Teams, and general tenant settings.
Entra ID (Azure AD) Security
Multi-Factor Authentication (MFA)
- 1
Enable Security Defaults in Microsoft Entra admin center under Properties if you do not have Conditional Access licensing.
- 2
For organizations with Entra ID P1 or P2, create a Conditional Access policy requiring MFA for all users across all cloud apps.
- 3
Require phishing-resistant MFA (FIDO2 keys, Windows Hello, or Microsoft Authenticator passkeys) for administrator accounts.
- 4
Block legacy authentication protocols that cannot support MFA by creating a Conditional Access policy targeting Exchange ActiveSync and Other clients.
- 5
Register all users for MFA using the combined security information registration experience at aka.ms/mysecurityinfo.
- 6
Configure MFA number matching and additional context in the Authenticator app settings to prevent MFA fatigue attacks.
Conditional Access Policies
- 1
Create a baseline policy requiring MFA for all users, all cloud apps, and all platforms (Windows, macOS, iOS, Android, Linux).
- 2
Create a policy blocking access from untrusted locations or countries your organization does not operate in.
- 3
Require compliant or Hybrid Azure AD joined devices for access to sensitive applications.
- 4
Create a policy requiring MFA for risky sign-ins using Entra ID Protection (requires P2 licensing).
- 5
Block or restrict access from unmanaged devices to prevent data exfiltration.
- 6
Enable sign-in frequency controls to require re-authentication at appropriate intervals.
- 7
Use report-only mode first to test policies before enforcement to avoid unintended lockouts.
Privileged Identity Management (PIM)
- 1
Activate PIM for all Global Administrator, Exchange Administrator, SharePoint Administrator, and Security Administrator roles.
- 2
Configure eligible assignments instead of permanent active assignments for all privileged roles.
- 3
Set activation to require MFA, justification, and approval for Global Administrator role.
- 4
Configure maximum activation duration to 8 hours or less depending on role sensitivity.
- 5
Set up access reviews for privileged role assignments on a quarterly basis.
- 6
Enable notifications for role activations to alert security teams.
Legacy Authentication
- 1
Audit current legacy authentication usage using the Entra ID Sign-ins log filtered by Client App.
- 2
Identify and migrate applications relying on basic authentication to modern authentication (OAuth 2.0).
- 3
Create a Conditional Access policy blocking legacy authentication for all users.
- 4
Monitor the Sign-ins log for blocked legacy authentication attempts over 30 days to verify no business impact.
- 5
Disable legacy authentication protocols at the service level for Exchange Online using authentication policies.
Exchange Online Protection
Anti-Phishing Policies
- 1
Navigate to Microsoft Defender portal, then Email and Collaboration, then Policies and Rules, then Threat Policies.
- 2
Create or edit the default anti-phishing policy to enable mailbox intelligence and spoof intelligence.
- 3
Enable impersonation protection for your executives and board members by adding them to the protected users list.
- 4
Add your critical domains and partner domains to the protected domains list.
- 5
Set the action for detected impersonation attempts to Quarantine the message.
- 6
Enable first contact safety tips to alert recipients when they receive email from new senders.
- 7
Configure honor DMARC policy to reject or quarantine messages that fail DMARC checks.
Safe Attachments and Safe Links
- 1
Enable Safe Attachments with the Dynamic Delivery action to deliver emails immediately while attachments are being scanned.
- 2
Turn on Safe Attachments for SharePoint, OneDrive, and Microsoft Teams in the global settings.
- 3
Enable Safe Links for email messages with URL scanning on click and real-time scanning.
- 4
Do not allow users to click through to the original URL when Safe Links identifies a malicious link.
- 5
Enable Safe Links for Microsoft Teams to scan links shared in conversations.
- 6
Add any legitimate URLs that are being incorrectly blocked to the tenant allow/block list.
DMARC, DKIM, and SPF
- 1
Verify SPF records for all sending domains: create a TXT record with v=spf1 include:spf.protection.outlook.com -all.
- 2
Enable DKIM signing for all custom domains in the Microsoft Defender portal under Email Authentication settings.
- 3
Rotate DKIM keys by creating a second selector and publishing the new CNAME records in DNS.
- 4
Create a DMARC record starting with p=none for monitoring: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com.
- 5
Monitor DMARC aggregate reports for 30 to 60 days to identify legitimate senders not yet in your SPF record.
- 6
Progress DMARC policy from p=none to p=quarantine to p=reject as alignment improves.
- 7
Consider a DMARC reporting service to parse and visualize aggregate report data.
Microsoft Teams Security
External Access and Guest Settings
- 1
Review and restrict external access in Teams admin center under Users, then External Access.
- 2
Block communication with all external domains by default, then allow specific trusted partner domains.
- 3
Configure guest access settings to restrict guests from creating, updating, or deleting channels.
- 4
Disable guest access to files and folders in team sites if not required for collaboration.
- 5
Set guest user expiration to automatically remove guest access after a defined period (e.g., 90 days).
- 6
Enable access reviews for guest accounts on a quarterly basis using Entra ID Governance.
Meeting and Chat Security
- 1
Configure meeting policies to restrict anonymous users from joining meetings.
- 2
Enable lobby settings so external participants must wait for an organizer to admit them.
- 3
Disable automatic admission for dial-in users by default.
- 4
Restrict who can present in meetings to organizers and co-organizers by default.
- 5
Disable recording and transcription for meetings with external participants unless explicitly required.
- 6
Configure messaging policies to restrict URL previews and file sharing with external users in chat.
General Tenant Security
Security Defaults and Tenant Configuration
- 1
Ensure at least two Global Administrators are assigned for redundancy, but no more than four to limit exposure.
- 2
Create emergency access (break glass) accounts that are excluded from Conditional Access and monitored with alerts.
- 3
Disable user consent for applications in Entra ID Enterprise Applications settings and require admin consent.
- 4
Configure the admin consent workflow so users can request access to apps and admins can review and approve.
- 5
Block user creation of Entra ID tenants and Azure subscriptions under User settings.
- 6
Disable the Self-Service Password Reset (SSPR) registration campaign if using Conditional Access for MFA enforcement.
Audit Logging and Monitoring
- 1
Verify that Unified Audit Log is enabled in the Microsoft Purview compliance portal.
- 2
Set audit log retention to at least 180 days (E5) or use basic audit with 90-day retention (E3).
- 3
Create alert policies for high-risk activities: elevation of privilege, mailbox forwarding rules, mass file downloads, and eDiscovery searches.
- 4
Configure sign-in log exports to a SIEM or Log Analytics workspace for centralized monitoring.
- 5
Enable mailbox auditing on all mailboxes (enabled by default but verify with Get-OrganizationConfig).
- 6
Review Microsoft Secure Score weekly and address recommendations to improve your overall security posture.
- 7
Set up a regular cadence for reviewing inactive user accounts and service principals.
Need Help Hardening Your M365 Tenant?
Our team can implement these configurations in your environment, validate your current posture, and provide ongoing management of your Microsoft 365 security settings.