Power Pages Connectivity with Microsoft Dataverse

Power Pages Connectivity with Microsoft Dataverse

Power Pages Connectivity with Microsoft Dataverse

Microsoft Dataverse is a core component of every Power Pages website. It serves both as:

This document explains how the Power Pages application server connects securely to a Power Platform environment using Dataverse.

Blog content image

Power Pages User Model

End users accessing a Power Pages website are not Dataverse users. Therefore, Dataverse role-based security does not apply directly to them.

Instead:

Server-to-Server (S2S) Connection

  1. Power Pages connects to Dataverse using a server-to-server (S2S) connection.
  2. When a Power Pages website is created, a Microsoft Entra application is automatically created.
  3. Each website has its own application named: Portals {portalid}.
  4. The application ID appears in the Setup workspace.
Important Note:
Do not modify or delete the auto-generated Microsoft Entra application. It is required for S2S authentication.

During website creation:

  1. An X.509 certificate is generated.
  2. The certificate is added to:
    • The Microsoft Entra application
    • The Power Pages application server
  3. The certificate is used to authenticate and obtain Dataverse access tokens.
Important:
The certificate expires every two years and must be renewed to avoid outages.

Integration with Dataverse

Depending on site creation date, Dataverse access uses:

SYSTEM User (Legacy)

All operations appear as performed by the SYSTEM user.

Blog content image

Application User (Modern Approach)

This user appears in:

  1. Power Platform Admin Center
  2. Access → S2S Apps

Application User Naming:

# Portals – <<Site Name>>

Assigned Permissions

Dataverse Security Roles

Column Security Profile

Warning:
Do not change these roles or permissions — doing so may break the website. Blog content image

Migration from SYSTEM User to Application User

Microsoft began migrating sites in 2023. Notifications are sent via:

Preparation Guidelines

  1. Update Liquid templates:
    • Remove SYSTEM user filters
    • Use table permissions + web roles instead
  2. Review workflows:
    • Reassign SYSTEM-owned workflows to the Application User