FAQ - BeZoned Application Permissions

General understanding

Microsoft 365 applications use a permission-based security model. Before an application can access information or perform actions on behalf of a user or an organization, the required permissions must be granted by the user or a Microsoft 365 administrator.

BeZoned integrates deeply with Microsoft Teams and Microsoft 365 to create a unified virtual office experience. Rather than requiring users to switch between Teams, Outlook, Planner, Whiteboard, Files, and other Microsoft applications, BeZoned brings these capabilities together in a single interface.

To provide this experience, BeZoned uses the Microsoft Graph APIβ€”the standard Microsoft interface for accessing Microsoft 365 services. Every permission requested by BeZoned corresponds to a documented Microsoft Graph permission and is required to enable one or more specific features within the application.

The sections below explain each permission requested by BeZoned, why it is needed, and which feature depends on it. Following Microsoft's principle of least privilege, BeZoned requests only the permissions necessary to deliver its functionality.

FAQ

Permissions needed

Microsoft recommends following the principle of least privilege, meaning that applications should request only the permissions that are necessary to provide their functionality.

BeZoned follows this principle. Rather than requesting a small number of broad permissions that grant extensive access, BeZoned requests a larger number of more specific permissions. This allows us to request only the access required for individual features, helping to minimize the overall level of access granted.

Below is a list of the Microsoft permissions that BeZoned requests to operate within Microsoft Teams and Microsoft 365, together with an explanation of why each permission is needed.

Name

Type

Description

AppCatalog.Read.All

application

Retrieve BeZoned application ID from the list of installed apps so it can be attached to MS Teams calls and meetings as side menu app.

Calendars.ReadBasic.All

application

Get list of public calendar events for user to show it in the BeZoned avatar window

Channel.Create

application

Create a new channel in a team connected to BeZoned. Used for creating new online offices.

Channel.Delete.All

application

Delete team channel when a BeZoned online office is deleted

Channel.ReadBasic.All

application

Create a channel subscription, which notifies BeZoned when channel information changes.

Renew channel subscription to prevent it from expiring.

ChannelSettings.
ReadWrite.All

application

Update channel information like name or description, if changed from within BeZoned.

Get details of team channel connected to a BeZoned office.

Get list of channels for a team connected to a BeZoned office

Chat.Create

application

Start a new chat between two team members through BeZoned interface

Chat.ReadWrite

delegated

Mark chat thread unread to obtain a notification

ChatMessage.Send

delegated

Send message between two team members through BeZoned interface

Group-NestingSupport.
ReadWrite.All

application

Get list of groups in the organization to find the ones connected to BeZoned

Group.ReadWrite.All

application

Delete a team when BeZoned office is deleted

MailboxSettings.Read

application

Get user mailbox settings - like timezone - to show correct time in BeZoned. This does NOT provide any access to emails.

OnlineMeetings.Read.All

application

Create Online Meeting (Teams meeting) subscription, which notifies us when a meeting started from BeZoned starts, ends or changes

OnlineMeetings.ReadWrite

delegated

Create a Online Meeting (Teams meeting) from BeZoned

Organization.Read.All

application

Get basic information about the organization - like company name, contact email, etc.

OrgContact.Read.All

application

Get user role within organization

Presence.ReadWrite.All

application

Get user presence (available, busy, away) to show it in BeZoned office or Sidebar.

Set presence status message for user from BeZoned office or Sidebar.

Set user presence directly from BeZoned office or Sidebar.

Set user preferred presence to ensure it takes effect immediately after updating presence from BeZoned office or Sidebar.

ProfilePhoto.Read.All

application

Get user avatar photo to display in the office

RoleManagement.
Read.Directory

application

Get list of admin roles in the organization to find admin users (for showing relevant admin only messages).

Get list of users assigned to specific admin role in the organization.

Team.Create

application

Create new team and team office to be used in BeZoned.

Get status of long-running operations like team creation or archiving to ensure the operation is completed before proceeding with next steps in BeZoned office provisioning or deletion.

Team.ReadBasic.All

application

Create team subscription, which notifies us when team information (like name) changes.

Renew team subscription to prevent it from expiring.

Get list of BeZoned offices the user is member of.

Get list of teams connected to BeZoned offices.

TeamMember.ReadWrite.All

application

Add new team members to BeZoned office.

Remove team member from BeZoned office.

Get team member details - like their role - when accessing BeZoned office.

Get list of team members of BeZoned office

TeamMember.
ReadWriteNonOwnerRole.All

delegated

Add new team members to BeZoned office.

TeamSettings.ReadWrite.All

application

Get details of team connected to BeZoned office.

Update team information like name or description.

TeamSettings.ReadWrite.All

delegated

Archive team when BeZoned office is deleted.

TeamsTab.Read.All

application

Get list of tabs for channels to use them as Table Menu shortcuts in the Office.

User.Read.All

application

Get basic information about user - like name, email, phone number.

Get list of tenant users, filter them and search by name or email.

Get BeZoned licenses assigned to the user to check if they are eligible to access BeZoned.