API permissions for the Microsoft Information Protection SDK
The MIP SDK uses two backend Azure services for labeling and protection. In the Microsoft Entra app permissions blade, these services are:
- Azure Rights Management Service
- Microsoft Purview Information Protection Sync Service
Application permissions must be granted to one or more APIs when using the MIP SDK for labeling and protection. Various application authentication scenarios may require different application permissions. For application authentication scenarios, see Authentication scenarios.
Tenant-wide admin consent should be granted for application permissions where Administrator consent is required. For more information, see the Microsoft Entra documentation.
Application Permissions
Application permissions allow an application in Microsoft Entra ID to act as it’s own entity, rather than on behalf of a specific user.
Service | Permission Name | Description | Admin Consent Required |
---|---|---|---|
Azure Rights Management Service | Content.SuperUser | Read all protected content for this tenant | Yes |
Azure Rights Management Service | Content.DelegatedReader | Read protected content on behalf of a user | Yes |
Azure Rights Management Service | Content.DelegatedWriter | Create protected content on behalf of a user | Yes |
Azure Rights Management Service | Content.Writer | Create protected content | Yes |
Azure Rights Management Service | Application.Read.All | Permission not required for MIPSDK use | Not Applicable |
MIP Sync Service | UnifiedPolicy.Tenant.Read | Read all unified policies of the tenant | Yes |
Content.SuperUser
This permission is required when an application must be permitted to decrypt all content protected for the specific tenant. Examples of services that require Content.Superuser
rights are data loss prevention or cloud access security broker services that must view all content in plaintext to make policy decisions about where that data may flow or be stored.
Content.DelegatedWriter
This permission is required when an application must be permitted to encrypt content protected by a specific user. Examples of services that require Content.DelegatedWriter
rights are line-of-business applications that need to encrypt content, based on user’s label policies to apply labels and or encrypt content natively. This permission allows the application to encrypt content in the context of the user.
Content.DelegatedReader
This permission is required when an application must be permitted to decrypt all content protected for a specific user. Examples of services that require Content.DelegatedReader
rights are line-of-business applications that need to decrypt content, based on user’s label policies to display the content natively. This permission allows the application to decrypt and read content in the context of the user.
Content.Writer
This permission is required when an application must be permitted to list templates and encrypt content. A service that attempts to list templates without this permission will receive a token rejected message from the service. Examples of services that require Content.writer
are line-of-business application that applies classification labels to files on export. Content.Writer encrypts the content as the service principal identity and so the owner of the protected files will be the service principal identity.
UnifiedPolicy.Tenant.Read
This permission is required when an application must be permitted to download unified labeling policies for the tenant. Examples of services that require UnifiedPolicy.Tenant.Read
are applications which need work with labels as a service principal identity.
Delegated Permissions
Delegated permissions allow an application in Microsoft Entra ID to perform actions on behalf of a particular user.
Service | Permission Name | Description | Admin Consent Required |
---|---|---|---|
Azure Rights Management Service | user_impersonation | Create and access protected content for the user | No |
MIP Sync Service | UnifiedPolicy.User.Read | Read all unified policies a user has access to | No |
User_Impersonation
This permission is required when an application must be permitted to user Azure Rights Management Services on behalf of the user. Examples of services that require User_Impersonation
rights are applications that need to encrypt, or access content, based on user’s label policies to apply labels or encrypt content natively.
UnifiedPolicy.User.Read
This permission is required when an application must be permitted to read unified labeling policies related to a user. Examples of services that require UnifiedPolicy.User.Read
permissions are applications that need to encrypt and decrypt content, based on user’s label policies.