Skip to content

Shared & Resource Mailboxes With Sign-in Enabled

The question it answers: Which shared, room and equipment mailboxes have an account that can sign in, and was it used recently?

Every shared, room and equipment mailbox has a user account behind it. If that account can sign in, it is a password-based, usually MFA-less login to a mailbox several people read - a favourite foothold for attackers. Microsoft recommends blocking sign-in on all of them; people reach a shared mailbox through their own account.

Where in the appExchange Online › Security › Shared Mailboxes With Sign-in
WorkloadExchange Online
KindTable · dashboard tile
DataRead from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed). It reads through PowerShell (Exchange Online or SharePoint Online), so the first load takes longer than a Graph report.
LicenceMicrosoft Entra ID P1 for the ‘last sign-in’ column. The rest works without it.
Report id (API and MCP)exchange.security.shared-mailbox-sign-in
ColumnKeyType
MailboxDisplayNameLink
AddressPrimarySmtpAddressText
TypeMailboxTypeText
Sign-inSignInDisplayStatus
FindingFindingText
Last interactive sign-inLastSignInDateTimeDate
LicencesLicenceCountText
SyncedIsSyncedYesNo
FilterKey (API)On when the page opens
Only mailboxes that can sign incan-sign-inYes

Licence: Microsoft Entra ID P1 for the ‘last sign-in’ column. The rest works without it.

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
User.Read.AllMicrosoft GraphRead all users’ full profiles
User-LifeCycleInfo.Read.AllMicrosoft GraphRead all users’ lifecycle information
AuditLog.Read.AllMicrosoft GraphRead all audit log data
Exchange.ManageAsAppOffice 365 Exchange OnlineManage Exchange As Application
Data sources it reads
  • Get-EXOMailbox -RecipientTypeDetails SharedMailbox,RoomMailbox,EquipmentMailbox
  • GET /v1.0/users
  • GET /v1.0/users?$select=signInActivity
GET /ir-api/v1/reports/exchange.security.shared-mailbox-sign-in?size=100
GET /ir-api/v1/reports/exchange.security.shared-mailbox-sign-in?filter=can-sign-in

An AI assistant reads it with the MCP tool get_report and the id exchange.security.shared-mailbox-sign-in. The client needs the Read grant for Exchange Online. See Using the API.