Microsoft Modern Exchange Connector (Graph): Permissions and Granting Consent

Christian Delorey
Christian Delorey
  • Updated

Applies to: Microsoft Modern Exchange Connector (Graph) integrations with Riva

This article outlines the permissions Riva requires when integrating with Microsoft Graph, how to grant those permissions via Azure Active Directory, and how to securely limit mailbox access using Microsoft’s Role-Based Access Control (RBAC) for Applications.

Overview

Riva uses Microsoft Graph to access mailbox data for syncing purposes (email, calendar, tasks, etc.). Microsoft Graph requires application-level permissions for server-to-server integration scenarios, meaning the application acts as itself — not on behalf of a user.

Required Permissions

When setting up Riva with Microsoft Graph, the following permissions are required in Azure Active Directory > App registrations:

Permission Name Type Description How Permissions are Used by Riva
User.Read.All
Application Read all users' full profiles. Used to look up email addresses to match Microsoft mailboxes.
User.Read
Delegated Read the signed-in user’s profile. Used to look up email addresses to match Microsoft mailboxes. Only required for cloud-based multi-tenant admin consent flows.(Riva Cloud Shared Tenant) It is safe to remove for on-premises deployments. You may receive a warning from Entra ID ("this scope is required for application functionality") this can be safely ignored.
Calendars.ReadWrite
Application Read and write calendar events. Required when the Calendar sync module is enabled. Used to sync calendar items; can be changed to Calendars.Read if write access is not required.
Mail.ReadWrite
Application Read and write access to user mailboxes. Enables email sync and access to the RivaConfiguration folder. Riva requires read and write access to maintain the RivaConfiguration folder, a sync-safety feature that Riva recommends for all synchronizations.
Mail.Send
Application Send mail as any user. Allows Riva to send messages, such as tracking tokens or forwarded emails.

Riva has optional functionality that makes use of this permission to send out an email summary of errors Riva has encountered. If customers are not utilizing this feature, that this permission can be removed. 
MailboxSettings.ReadWrite
Application Full access to mailbox settings. Required to read/write user-specific settings like categories, time zones, and work hours.

Riva utilizes this permission to update the MasterCategory list to include new Riva-specific categories with the specific admin-defined colors.
Contacts.ReadWrite
Application Read and write access to user contacts. Used for contact sync. Can be limited to Contacts.Read if write access is unnecessary.
GroupMember.Read.All
Application Read all group memberships for all users. Allows Riva to expand distribution lists and gather group memberships.
Tasks.ReadWrite.All
Application Read and write all users tasks and tasklists Allows Riva to sync Tasks and Tasklists
MailboxFolder.Read.All
Application Read all mailbox folder Allows Riva to read all the users' mailbox folders. Required only to enable the Decline Appointment Polling feature; otherwise optional.
MailboxItem.Read.All 
Application Read all mailbox without signed-in user Allows Riva to read all the users' mailbox items, without signed-in user. Required only to enable the Decline Appointment Polling feature; otherwise optional.

 

Note:
  1. With the exception of User.Read, all permissions are granted at the application level, ensuring secure, consistent access without requiring per-user authentication. Permissions are configured on the Azure app registration and require tenant admin consent; they are not granted individually to users. 

  2. Existing accounts with active Microsoft Graph connections do not require re-validation. However, administrators must grant admin consent for the newly added permissions to ensure continued functionality.

Granting Admin Consent

Once the permissions are configured for the Riva application, admin consent must be granted:

  1. Sign in to the Azure portal.
  2. Go to Azure Active Directory > Enterprise Applications.
  3. Find and select your Riva application.
  4. Click Permissions > Grant admin consent for [Tenant Name].

This consent allows Riva to access mailboxes based on the permissions granted.

Limiting Mailbox Access (Recommended)

By default, application permissions grant access to all mailboxes in the Microsoft 365 tenant. To apply the principle of least privilege and limit Riva’s access only to specific users, Microsoft now recommends using Role-Based Access Control (RBAC) for Applications.

Riva strongly recommends this approach for securing your integration.

See detailed steps in our guide:
Limiting Mailbox and User Access with Application Permissions using RBAC

RBAC Highlights

  • Use a mail-enabled security group to define which mailboxes Riva can access.
  • Create a custom management scope in Exchange Online.
  • Assign that scope to the Riva application using a management role assignment.
  • Verify access using PowerShell.

Note: Microsoft is phasing out Application Access Policies. RBAC for Applications is the long-term supported method for access control.

After Consent and RBAC

Once permissions and scope have been granted:

  • Riva will automatically detect and use Microsoft Graph as the sync method.
  • Only mailboxes within the RBAC-defined scope (security group) will be synced.
  • No user passwords or interactive logins are required.

EWS vs. Microsoft Graph Permissions

The EWS and Microsoft Graph permission models are structured differently, so there is not a direct one-to-one mapping between an EWS permission and an individual Microsoft Graph permission.

With EWS, Riva used the broad delegated EWS.AccessAsUser.All permission. This permission allows the application to access Exchange Web Services as the authenticated user and perform operations permitted to that user. 

Microsoft Graph instead separates access according to the specific Exchange workload or operation being performed. For the Microsoft Modern Exchange Connector, Riva requests a collection of Graph permissions, including permissions such as:

Additional permissions are used where required for specific Riva functionality, such as tasks, group membership, mailbox folders, or mailbox items.

How Graph Access Compares

The key difference is how Microsoft expresses the permissions.

EWS exposes relatively broad Exchange permissions, whereas Microsoft Graph uses separate permissions for individual Exchange workloads and capabilities. As a result, what previously appeared as a broad EWS access grant is represented in Graph by several distinct permissions.

For the Modern Exchange Connector, most of the relevant Graph permissions are application permissions. These permissions provide Riva with the mailbox capabilities needed to perform synchronization operations for the enabled features, such as email, calendar, contacts, tasks, and mailbox settings.

Mailbox Scope

By default, relevant Microsoft Graph application permissions can access applicable mailboxes across the Microsoft 365 tenant once admin consent is granted. For example, Mail.ReadWrite can allow access to mailbox email across the tenant, while Calendars.ReadWrite and Contacts.ReadWrite provide comparable access to those data types.

Exchange Online RBAC for Applications provides a separate way to grant mailbox permissions to a defined scope. These permissions are additive to permissions granted through the Enterprise Application; RBAC does not override or restrict an equivalent tenant-wide Graph permission.

For example, if Calendars.ReadWrite remains granted in the Enterprise Application, Riva can still access applicable calendars across the tenant even if Application Calendars.ReadWrite is also assigned through RBAC to a limited mailbox scope.

To apply mailbox-level restrictions:

  • In the Enterprise Application, retain only permissions that must remain tenant-wide or cannot be assigned through Exchange Online RBAC.
  • In Exchange Online RBAC, assign each supported mailbox permission to the required mailbox scope.
  • To restrict a supported permission, remove the equivalent tenant-wide Graph permission from the Enterprise Application and grant it only through the corresponding scoped RBAC application role.

For example, to restrict calendar access, remove Calendars.ReadWrite from the Enterprise Application and grant Application Calendars.ReadWrite only to the approved RBAC scope.

Summary

The EWS and Graph permission sets are not a 1:1 match.

EWS used a broader delegated Exchange permission model to access mailbox data. 

Microsoft Graph uses multiple workload-specific permissions—such as mail, calendar, contacts, and mailbox settings—to provide the same functional access required by the enabled Riva features.

Graph application permissions are tenant-wide by default and can be scoped to specific mailboxes using Exchange Online RBAC for Applications.

In practice, Microsoft Graph provides the Exchange capabilities Riva requires through separate, granular, workload-specific permissions rather than through a single broad EWS permission. The permissions and consent model differ, but they support the same Riva synchronization functions when configured for the applicable features and mailbox scope.

Troubleshooting

Issue Suggested Action
Access to mailboxes failing Ensure mailboxes are members of the RBAC security group
Permissions not taking effect Wait 15–30 minutes for changes to propagate
Admin consent fails Ensure you are using a Global Administrator account
Graph API errors in Riva Check that the necessary Graph permissions are granted and consented properly

Related Articles

Related to