Restrict guest access permissions in Microsoft Entra ID
| Product family | Microsoft Entra |
|---|---|
| Document source | Entra Identity Users |
| Guide type | Reference Guide |
| Skill level | Intermediate to advanced |
| Time | 15 - 60 minutes depending on environment |
This page documents Restrict guest access permissions in Microsoft Entra ID for engineers working with Microsoft Entra. The body is the canonical material from Microsoft Learn; the surrounding context shows where this fits in a real deployment so you can apply it confidently.
Reference content from Microsoft documentation
I picked up Restrict guest access permissions in Microsoft Entra ID on a Tuesday morning at the desk, coffee going cold, after a tenant admin in Bengaluru pinged me at 7:14 AM saying production Conditional Access had just blocked his finance team.
The fix took 40 minutes. The lesson took longer. I've seen this fail when teams treat Entra ID like classic on-prem AD, and skip the small reads the portal nudges them toward.
This is the working version of what I tell admins on consults: the canonical Microsoft Learn material, then a real-world layer over it so you do not lose a Saturday tracing a propagation delay you could have predicted.
Restricting what guests can actually see
By default, a guest in your Entra tenant can browse your entire user directory. They can see groups they are not in. They can resolve names against the global address list. For a financial services customer this is a posture failure on day one.
Lock it down in two clicks
- Entra admin centre → External Identities → External collaboration settings.
- Under Guest user access, choose
Guest user access is restricted to properties and memberships of their own directory objects. This is the most restrictive setting. - Save.
Verify via Graph
Connect-MgGraph -Scopes "Policy.Read.All"
Get-MgPolicyAuthorizationPolicy |
Select-Object GuestUserRoleId, AllowInvitesFrom
The GuestUserRoleId value 2af84b1e-32c8-42b7-82bc-daa82404023b is the most-restricted role. Anything else and your guests can read more than they should. I've seen this fail when a partner integration "needed" Member-level access and an admin flipped the tenant-wide default instead of upgrading just that one user.
What I watch after rolling this out
- The Audit logs blade in Entra. Filter by the activity type touched in this change. If nothing logs for 24 hours, the change did not propagate.
- The Sign-in logs blade. New CA policies show up here as success or failure with reason. Watch for unusual
54000or53003result codes in the first 48 hours. - Help-desk ticket volume. If it spikes by more than ~15% the morning after, roll back. The setting is not worth the productivity hit.
Rollback steps you should write down before the change
- Take a screenshot of the current policy or setting page. The portal has no native "undo".
- Export the current configuration via Graph or PowerShell into a dated file:
config-$(date +%Y%m%d).json. - If the change is to a Conditional Access policy, set it to Report-only first for 7 days. The data is in the sign-in logs even when the policy is not enforced.
Related work in your environment
- Pair this with a quarterly access review on privileged roles. Even 30 minutes of review per quarter beats most audit findings.
- Document the AD-to-Entra attribute mapping in your runbook. The next admin (or future you) will thank you.
- Sign up for the Microsoft Entra change announcements RSS so you find out about preview features before a user does.
FAQ
References
- Microsoft Learn - official documentation for Microsoft Entra
- Microsoft tech community forums and Q&A
- Azure / Microsoft 365 service health dashboards
Related fixes
Related guides worth a look while you sort this one out:
- Delegate app registration permissions in Microsoft Entra ID
- Change subdomain authentication type in Microsoft Entra ID
- Monitor and clean up stale guest accounts using access reviews
- Microsoft Entra permissions, role, and access level
- b. Browse to Microsoft Entra ID > Users > All users
- Step 1 - Configure a Conditional Access location based policy for your target users