azureblog.co.uk
← cd ~/compare
// compare · graph permissions

Group.Read.All vs Group.ReadWrite.All

Two Microsoft Graph permissions that are easy to mix up, side by side.

In short: Group.Read.All only reads. Group.ReadWrite.All can also create, change or delete. Use the read-only one unless your app needs to write.

Permission typeGroup.Read.AllGroup.ReadWrite.All
ApplicationRead all groups
Allows the app to read group properties and memberships, and read conversations for all groups, without a signed-in user.
Always needs admin consent · Medium risk
Read and write all groups
Allows the app to create groups, read all group properties and memberships, update group properties and memberships, and delete groups. Also allows the app to read and write conversations. All of these operations can be performed by the app without a signed-in user.
Always needs admin consent · High risk
DelegatedRead all groups
Allows the app to list groups, and to read their properties and all group memberships on behalf of the signed-in user. Also allows the app to read calendar, conversations, files, and other group content for all groups the signed-in user can access.
Needs admin consent · Low risk
Read and write all groups
Allows the app to create groups and read all group properties and memberships on behalf of the signed-in user. Additionally allows group owners to manage their groups and allows group members to update group content.
Needs admin consent · High risk

Spotted something out of date or wrong? Tell us and we'll fix it.