-
Notifications
You must be signed in to change notification settings - Fork 0
Permissions
Nemu-x edited this page Jul 15, 2026
·
3 revisions
SwissKnife only does what your app registration is allowed to do. Grant Application permissions for app-only mode (and Grant admin consent), or the matching Delegated permissions for device-code mode. Add only what you use β the app can hide tabs you have no access to (Settings β Check access β Hide unavailable).
Enough for the dashboard, users, groups, teams, files, and audit:
-
Organization.Read.Allβ org info on connect User.Read.AllDirectory.Read.AllGroup.ReadWrite.AllTeam.ReadWrite.AllFiles.ReadWrite.AllSites.ReadWrite.AllAuditLog.Read.All
| Feature | Microsoft Graph permission(s) |
|---|---|
| Connect / Dashboard |
Organization.Read.All, Directory.Read.All
|
| Users β read / snapshot | User.Read.All |
| Users β block, reset password, revoke sessions, create/update/delete, manager, usageLocation |
User.ReadWrite.All, Directory.ReadWrite.All
|
| Deleted users β list / restore |
User.DeleteRestore.All (or Directory.ReadWrite.All) |
| Reset MFA / auth methods | UserAuthenticationMethod.ReadWrite.All |
| Admin roles β list / assign / remove | RoleManagement.ReadWrite.Directory |
| Licensing β SKUs, assign/remove |
Directory.Read.All, User.ReadWrite.All
|
| Groups β read, create, membership |
Group.ReadWrite.All, Directory.Read.All
|
| Teamify (group β team) |
Team.Create, Group.ReadWrite.All
|
| Teams & channels β read/manage |
Team.ReadWrite.All, Channel.Create, ChannelMember.ReadWrite.All, TeamMember.ReadWrite.All
|
| Chats β list, messages, members |
Chat.Read.All, Chat.ReadWrite.All, ChatMember.ReadWrite.All
|
| Mail β read / send as user |
Mail.Read, Mail.Send
|
| Calendar β read / create events | Calendars.ReadWrite |
| OneDrive / SharePoint β browse, up/download, delete, links, Offboarding, Cleanup |
Files.ReadWrite.All, Sites.ReadWrite.All
|
| Intune β devices, wipe/retire/lock |
DeviceManagementManagedDevices.Read.All, DeviceManagementManagedDevices.PrivilegedOperations.All
|
| Entra devices β enable/disable/delete |
Device.Read.All, Directory.ReadWrite.All
|
| BitLocker recovery keys | BitlockerKey.Read.All |
| App registrations β list + expiry | Application.Read.All |
| Usage reports (CSV) | Reports.Read.All |
| Service health / message center | ServiceHealth.Read.All |
| Audit β sign-in / directory logs | AuditLog.Read.All |
| Playbooks (onboard/offboard) | union of the permissions for the steps you enable |
| Bulk / CSV runner | union of the permissions for the chosen operation (create users / licensing / groups) |
| Temporary Access Pass (TAP) | UserAuthenticationMethod.ReadWrite.All |
| Guest invitations (B2B) |
User.Invite.All (or Directory.ReadWrite.All) |
| App secret rotation | Application.ReadWrite.All |
| Security review β CA policies + app consents |
Policy.Read.All, Application.Read.All
|
| Offboarding extras β auto-reply (OOF), mail forwarding rule, hide from GAL, calendar share, remove from all groups |
MailboxSettings.ReadWrite, Mail.ReadWrite, User.ReadWrite.All, Calendars.ReadWrite, GroupMember.ReadWrite.All (covered by Group.ReadWrite.All if you already grant it) |
| Raw Graph playground | whatever the request you send requires |
- Application vs Delegated: app-only acts tenant-wide as the app; delegated (device code) acts as the signed-in user and is bounded by their own rights. Pick per your needs β see Connecting.
-
Sign-in logs (
AuditLog.Read.All) also require Entra ID P1/P2 on the tenant. - After adding Application permissions you must click Grant admin consent β otherwise every call returns 403 (SwissKnife shows a hint telling you a permission is missing).