Introduction
Permissions and security models are the backbone of any enterprise-grade application. In the Microsoft Power Platform—covering Power Apps, Power Automate, Dataverse, and Connectors—understanding how permissions flow is critical to designing secure, compliant, and scalable solutions.
Among the most important concepts are:
This article explains both, compares them, and shows how Power Platform uses these models in real scenarios.
What Are Delegated Permissions?
Delegated permission means the system runs under the identity and privileges of the logged-in user.
In simple words:
Whatever the user is allowed to do, the app/flow will also be allowed to do.
If the user doesn't have permission, the app/flow cannot override it.
Where Delegated Permission is Used in Power Platform
1. Power Apps Canvas Apps
SharePoint connector - runs as the logged-in user.
Dataverse connector - runs using the user's Dataverse security roles.
SQL connector (standard mode) - runs with the user's SQL credentials (if using Azure AD)
This means:
If the user has read a list, the app can read.
If the user has No delete permission, app cannot delete.
If the user is blocked, app operations will fail.
Canvas apps do NOT support elevated permission.
2. Power Automate flows using "User Connection"
If a flow uses a connector authenticated with a user's connection:
Example:
If a flow using your SharePoint connection tries to update a list item, you don't have Edit permission for then the flow fails.
3. Approvals
Approval actions (Create Approval, Start and Wait for an Approval):
You cannot approve/reject items or write data where that connection has no access.
What Are Elevated Permissions?
Elevated permission means the system executes using a privileged account or an application identity, not the logged-in user.
This allows:
Accessing resources where the user has no permission
Performing admin-level operations
Running secure backend logic independent of the user
This is typically achieved through:
Service accounts
Azure AD app registrations (Client ID + Secret/Certificate)
Custom connectors with OAuth 2.0 client credential flow
Dataverse Plug-ins running as "System"
Power Automate with Service Account connection
Azure Functions/APIs performing privileged tasks
Where Elevated Permission Is Used in Power Platform
1. Dataverse Plug-ins (Server-Side Logic)
Plug-ins can run as:
Running as SYSTEM allows:
Changing restricted fields
Updating records the user cannot access
Bypassing business rules and restrictions
2. Power Automate Flows Using Service Accounts
If a flow's connection uses a service account, the flow executes with that account's full privileges.
Example:
A user submits a request in Power Apps
Flow updates a SharePoint list where the user has only "Read"
Flow uses "service account connection", so update succeeds
3. Custom Connectors with Application Permissions
Connecting to:
MS Graph with Application Permission
SharePoint App-Only access (ACS or MSAL)
Azure AD App with Client Credentials
This is the most powerful form of elevated permission.
4. Azure Functions or APIs Called from Power Apps
Architecture:
Power Apps - Custom Connector - Azure Function - Dataverse/SharePoint/API
The Azure Function runs using managed identity or app registration, enabling:
Elevated CRUD operations
Restricted admin tasks
Secure data access
Why Delegated vs Elevated Matters
| Aspect | Delegated | Elevated |
|---|
| Runs as | Logged-in user | Privileged account / app |
| Bypass user permissions | No | Yes |
| Secure for end users | Yes | Needs control |
| Used in Canvas Apps | Yes | No |
| Used in Model-Driven | (forms) | (plug-ins) |
| Used in Power Automate | Yes (user connection) | Yes (service account) |
| Appropriate for sensitive tasks | No | Yes |
| Performs admin tasks | No | Yes |
How Power Platform Decides Which Permission to Use
In Power Apps
In Power Automate
Depends on the connection used.
If connection is personal account - delegated.
If connection is service account - elevated.
In Approvals
In Connectors
Real-World Scenarios
Scenario 1: User submits form - flow updates restricted SharePoint list
If the user has no Edit access:
Scenario 2: Need to update all Dataverse records nightly
Use:
Scenario 3: Need to run logic with SYSTEM privilege
Use:
Scenario 4: Power Apps needs to perform admin-level operation
Solution:
Best Practices
Use delegated permission for:
User-facing apps
Normal CRUD operations
Simple approvals
Low-risk actions
Use elevated permission for:
Always log/monitor elevated operations:
Never give normal users access to service account credentials.
Conclusion
Delegated and elevated permissions are fundamental to building secure, scalable solutions in the Power Platform.
Delegated permission ensures apps and flows respect the user's own access rights.
Elevated permission enables backend logic to run with higher privileges through service accounts, Dataverse plug-ins, Azure AD apps, and custom connectors.
A well-architected solution usually combines both:
Front-end (delegated): secure, user-based actions
Back-end (elevated): robust automation with privileged access