API Permissions vs Role Assignments for App Registration in Storage Accounts

Somansh Reddy 136 Reputation points
2020-08-30T21:06:44.947+00:00

What is the difference between API Permissions in the App Registration and the Role Assignments that can be given to the Service Principle?

For Azure Storage, the only available permission is User Delegation. I can also provide a role based access for the application's service principle. What is the difference in behaviour here? Does one override the other? Or is it supplemented by the other?

Azure Role-based access control
Azure Role-based access control
An Azure service that provides fine-grained access management for Azure resources, enabling you to grant users only the rights they need to perform their jobs.
672 questions
Microsoft Entra ID
Microsoft Entra ID
A Microsoft Entra identity service that provides identity management and access control capabilities. Replaces Azure Active Directory.
19,559 questions
0 comments No comments
{count} votes

Accepted answer
  1. AmanpreetSingh-MSFT 56,311 Reputation points
    2020-08-31T15:25:30.517+00:00

    Hello @Somansh Reddy

    API Permissions: You should configure API Permissions when you would like to return the permissions in the Access token. When application consumes the token, it makes authorization decision on the basis of permissions present in the token. Delegated permissions are used when authentication is done under user's context and are returned in scope claim of the token. Application permissions are used when authentication is done under application (service principal) context and are returned in roles claim. For example, if you have a web application, you can configure it to allow access to the user if scope claim contains read otherwise deny access or grant write access to application only when roles claim contains write.

    Role Assignments: Role assignments are used to assign permission to users/service principals on Azure Resources. In this case authorization is done by Azure and not by the end application which happens in case of API permissions.

    To configure application permissions, app roles must be added to app manifest as shown below:

    21593-capture.jpg

    However, Azure Storage API is exposed on an app registered in Microsoft tenant and you cannot configure the application permissions by updating app manifest. Which is why the application permissions are not available for Azure Storage API. You can however configure permission via Role Assignment to application (service principals) over Azure Storage.

    You can configure both permissions simultaneously as these permissions are evaluated at different places (as mentioned above) and one doesn't override the other.

    -----------------------------------------------------------------------------------------------------------

    Please "Accept the answer" if the information helped you. This will help us and others in the community as well.

    2 people found this answer helpful.

0 additional answers

Sort by: Most helpful