Yes. Application permissions like Mail.ReadWrite and Mail.Send can be limited to specific mailboxes by using Microsoft Graph application access policies; user or group scoping is done at the resource (Exchange Online) level, not directly on the permission itself.
For mail-related Microsoft Graph application permissions (Mail.Read, Mail.ReadWrite, Mail.Send, MailboxSettings.Read, MailboxSettings.ReadWrite), administrators can configure an application access policy so the app can only access mailboxes for a specific user or for members of a specific security group, even though the app technically has org-wide application permissions.
Key points from the documentation:
-
Mail.Read, Mail.ReadWrite, Mail.Send, and MailboxSettings.ReadWrite application permissions are, by default, org-wide.
- Administrators can configure an application access policy to limit app access to specific mailboxes and not to all mailboxes in the organization, even if the app has been granted these application permissions.
- This mechanism is supported for:
-
Mail.Read
-
Mail.ReadWrite
-
Mail.Send
-
MailboxSettings.Read
-
MailboxSettings.ReadWrite
So, to limit your app that has Mail.ReadWrite and Mail.Send application permissions to a specific security group:
- Ensure the app has been granted the required application permissions (
Mail.ReadWrite, Mail.Send) with admin consent.
- Create a security group and add the allowed users’ mailboxes as members.
- Configure an application access policy in Exchange Online that:
- Targets your app registration (by its app ID), and
- Restricts access to the mailboxes of the members of that security group.
After the policy is applied, Microsoft Graph calls using those application permissions will only succeed for mailboxes in that group; access to other mailboxes will be blocked, even though the app holds org-wide application permissions at the directory level.
References: