SC‑300 Study Portal Path 4

Unit 8: API Permissions vs App Roles

AspectUnit 6 – API PermissionsUnit 7 – App Roles
Primary purposeControl what data or API operations an app can access.Control what actions a user or app can perform inside an application.
Authorization modelOAuth 2.0 scopes.Role-based access control (RBAC).
Who defines themThe resource API owner, such as Microsoft Graph or a custom API.The application developer during app registration.
Where they are configuredApp registration → API permissions.App registration → App roles.
Appears in token asscp claim (delegated permissions) or roles claim (application permissions).roles claim.
Applies toAccessing external or internal APIs and data.Authorizing business logic within the application itself.
Works with user contextYes, when using delegated permissions.Yes, when roles are assigned to users or groups.
Works without a userYes, when using application permissions.Yes, when roles are assigned to applications (service principals).
Consent modelRequires user consent or admin consent, depending on permission type.No consent prompt. Roles are assigned by administrators.
Admin consent requiredRequired for application permissions and high-privilege delegated permissions.Not applicable. Role assignment is administrative, not consent-based.
Principle of least privilegeAchieved by requesting only required scopes.Achieved by assigning least-privileged roles to users/groups.
Typical examplesUser.Read, Mail.Send, Calendars.ReadWrite.Admin, Editor, Reviewer, Approver.
Licensing impactSome permissions require admin consent but not extra licenses.Avoids group overage and does not require Entra ID P1.
Common use case“Can this app read user mail or call Microsoft Graph?”.“Is this user allowed to approve, edit, or view content?”.
SC-300 exam focusUnderstand delegated vs application permissions and consent behavior.Understand role assignment, tokens, and authorization flow.

How to Decide: Permissions or Roles?

Use API permissions when

Your application needs to call an API.

The question is what data can the app access.

You need consent (user or admin) to access resources.

You are integrating with Microsoft Graph or another protected API.

Use app roles when

Your application needs to control features or actions internally.

The question is what the user can do inside the app.

You want clear, token-based authorization without group lookups.

You want to avoid group overage and simplify authorization logic.