Join our Newsletter — 33% off our NHI Course
Home› Guides› Microsoft Dynamics 365 and Power Platform Security Guide:…
Guide Shadow AI & AI Use

Microsoft Dynamics 365 and Power Platform Security Guide: Dataverse Roles, Connectors and Baselines

PDF for newsletter subscribers · free to read online

← All guides
By NHI Mgmt Group, edited by Lalit Choda Updated 27 October 2026 16 min read
On this page

Dynamics 365 and Power Platform hold customer, finance and case data in Dataverse, and every app, flow and agent built on them reaches that data through connections, application users and admin roles that few security teams review. This guide explains how identity and access work across those layers, how to control privileged roles and service principals, what to log, and how to apply the CISA SCuBA Power Platform baseline. It is written for Power Platform administrators, Dynamics 365 platform owners and the security engineers who support them. Governance of citizen developers and internal AI apps is covered in the Citizen Developer and Internal AI App Governance Guide; this page goes deeper on the platform controls.

Key takeaways

  • Four layers decide access. Entra tenant roles, environment roles, Dataverse security roles and data policies each grant or block something different; review all four, not just the security roles.
  • Tenant admins are no longer automatic system administrators. Global, Power Platform and Dynamics 365 administrators must self-elevate to System Administrator in an environment, which makes PIM with short activations practical.
  • Application users are unlicensed, powerful NHIs. Each one maps to an Entra app registration or managed identity, acts with its own security roles and usually authenticates with a client secret that nobody rotates.
  • Connections are stored credentials. Data policies, endpoint filtering and tenant isolation decide which connectors can move data, and they need to be set before makers build, because enforcement can take up to 24 hours.
  • Logging is split and partly off by default. Purview captures admin activity automatically, but Dataverse auditing, access logging and read logging must be switched on per environment and per table.

How identity and access work in Dynamics 365 and Power Platform

Power Platform covers Power Apps, Power Automate, Copilot Studio and Power Pages. Dynamics 365 customer engagement apps such as Sales, Customer Service and Field Service run as model-driven apps on Dataverse in the same environments, so the controls in this guide apply to both. Dynamics 365 finance and operations apps use a separate role model and are out of scope.

Users authenticate with Microsoft Entra ID, so Conditional Access, MFA and sign-in risk policies apply before any platform permission is evaluated. See the Conditional Access Guide. After sign-in, four layers decide what the user can do.

LayerExamplesScopeWhat it controls
Entra tenant rolesGlobal Administrator, Power Platform Administrator, Dynamics 365 AdministratorEvery environment in the tenantTenant settings, environment creation, data policies, capacity, self-elevation to System Administrator
Environment rolesEnvironment Admin, Environment MakerOne environment without DataverseCreating apps, flows, connections and custom connectors; Environment Maker has no data access
Dataverse security rolesSystem Administrator, System Customizer, Basic User, app roles such as SalespersonOne environment with DataverseTable privileges, access level, miscellaneous and privacy-related privileges
Data policies and tenant isolationBusiness, non-business and blocked connector groups; endpoint filteringTenant, environment group or environmentWhich connectors, actions and endpoints apps, flows and agents can use together

Dataverse security roles in practice

  • Privileges are cumulative: a user with several roles gets the union of all of them, so one broad role assigned "temporarily" overrides careful design elsewhere.
  • Table privileges: Read, Create, Write, Delete, Append, Append To, Assign and Share, each at an access level of User, Business Unit, Parent: Child Business Units or Organization. Organization-level Read on the account or contact table is effectively a full customer export.
  • Privacy-related privileges: exporting to Excel, printing and similar actions that move data outside Dataverse are separate privileges. Remove them from roles that do not need bulk extraction.
  • Column (field) security: field security profiles hide sensitive columns such as national ID or bank details even from users who can read the record.
  • Environment security group: associating an Entra security group with an environment limits who can be added to it at all, which is the simplest way to keep production Dynamics 365 away from the wider tenant.

Admin roles and privileged access

Microsoft no longer assigns the System Administrator Dataverse role automatically to Global, Power Platform or Dynamics 365 administrators. Those tenant admins can still change tenant settings, view analytics and capacity, but to update security roles or install apps in an environment they must self-elevate to System Administrator through the Power Platform admin center or the elevation API. When the tenant role is held through Microsoft Entra Privileged Identity Management, Microsoft removes the elevated System Administrator role when the PIM assignment expires. Two documented limitations matter: role assignment through groups is not supported for this flow, and a Dynamics 365 administrator must be a member of an environment's security group to elevate there.

RoleRisk if compromisedRecommended control
Global AdministratorEverything in the tenant, including Power PlatformBreak-glass and PIM only; never used for routine platform work
Power Platform AdministratorAll environments, data policies, tenant isolation, self-elevation anywherePIM eligible, approval, short activation, small named group
Dynamics 365 AdministratorAll environments it can reach, self-elevationPIM eligible; prefer this or Environment Admin over Power Platform Administrator where scope allows
System Administrator (Dataverse)All data and customisation in one environment, audit settingsAssign per environment, review quarterly, remove standing assignments left from the old auto-assignment
System CustomizerSchema, apps, plug-ins and audit configurationDevelopment and test environments; production through pipelines
Environment MakerCreates connections and custom connectors in the environmentGrant in governed maker environments, not by default in production
  • Clean up legacy assignments first: Microsoft's prerequisite for the PIM model is removing old System Administrator assignments that were granted automatically. Inventory them per environment before enabling PIM.
  • Use the narrowest admin role: Microsoft's guidance for the default environment is to limit the Power Platform Administrator role to a few users and consider Environment Admin or System Administrator instead. See the Privileged Identity Management (PIM) Guide.

Integrations, API tokens and service accounts

Integration platforms, data migration tools, portals and custom code reach Dataverse as application users. An application user is created in the Power Platform admin center (Environment, Settings, Users + permissions, Application users), linked to one Microsoft Entra app registration or managed identity, placed in a business unit and given security roles. It needs no paid licence, and every operation it performs is recorded as the application user, not as the person using the integration. Only one application user can exist per Entra application per environment.

Credential options for application users

OptionWhere the credential livesStrengthWeakness
Client secret on the app registrationIntegration server config, pipeline variables, key vaultEasy to set up; documented default in the S2S walkthroughStatic bearer secret, often long-lived and copied between environments
Certificate on the app registrationCertificate store or key vault, private key not sharedProof of possession; harder to leak in codeExpiry must be tracked; private keys still exported carelessly
Managed identity application IDNo credential handled by the customerNo secret to rotate or leakOnly for workloads running in Azure that support managed identity
  • One app registration per integration: a shared app user cannot be scoped or attributed.
  • Design a custom security role per application user: do not assign System Administrator to an integration because the vendor's setup guide says so. Start from the tables it actually reads and writes.
  • Prefer certificates or managed identity over secrets: a client secret on an app registration with Dataverse access is a high-value target. See the Azure Entra Client Secrets Security Guide and the Azure Managed Identities Security Guide.

Connections, connectors and agents

When a maker adds a connector to an app, flow or Copilot Studio agent, a connection is created with the authentication the connector supports and stored in the environment. Microsoft describes connections as saved credentials. A shared app or a flow that runs on a schedule therefore acts with the maker's identity or with whatever service account the maker signed in with. Custom connectors wrap any REST API and can carry API keys; Model Context Protocol connectors expose MCP tools to Copilot Studio and are governed through advanced connector policies.

  • Data policies: classify connectors as Business, Non-business or Blocked. An app or flow cannot combine Business and Non-business connectors. Microsoft states that enforcement usually completes within an hour and can take up to 24 hours, after which violating resources are suspended and blocked connections disabled.
  • Endpoint filtering: for connectors marked "Endpoint configurable" (HTTP, HTTP with Microsoft Entra ID, HTTP Webhook, SQL Server, Azure Blob Storage, SMTP and the browser and UI automation connectors), restrict which URLs, servers or environments makers can target inside the data policy.
  • Tenant isolation: off by default, which allows cross-tenant connections with valid Entra credentials. When on, inbound and outbound cross-tenant connections are blocked for Entra-authenticated connectors unless the tenant is on the allowlist. It does not block connectors that use other authentication, so pair it with data policies.
  • Agents: Copilot Studio agents use the same connectors and connections. The CoPhish research showed how an agent's demo site on a Microsoft domain could front an OAuth consent phishing prompt and forward the resulting token. See the Securing Microsoft Copilot Studio Agents Guide.

Logging and detection

Power Platform logging is spread across Microsoft Purview, Dataverse auditing and per-product telemetry. Only admin activity is collected by default.

SourceDefaultWhat it recordsHow to enable or read
Purview: Power Platform admin activityOn, cannot be disabledEnvironment lifecycle, setting changes, data policy changes, lockbox and licensing actionsPurview Audit with the Audit Logs or View-Only Audit Logs role; Office 365 Management Activity API
Purview: connector activityRequires environment auditingCustom API created, edited or deleted; connection created, edited, deleted; connection permission added or removedTurn on auditing for production environments
Purview: Power AutomateRequires environment auditingFlow created, edited, deleted; flow permission changes; trial eventsPurview Audit; flow runs need Application Insights or Dataverse run records
Dataverse auditingOff until startedRecord create, update, delete, sharing changes, security role changes, audit log deletionEnvironment setting Start Auditing, then per table and column; System Administrator or System Customizer
Dataverse access and read loggingOffSign-in access (Log access) and read activity to Purview (Read logs)Environment auditing settings; Read logs needs qualifying Microsoft 365 licensing

Dataverse auditing does not record retrieve or export operations, so bulk export only appears through read logging. Audit retention defaults to Forever with a custom maximum of 24,855 days, and a change applies only to new records, so set it before go-live.

Detections worth building

  • Privilege change: security role assigned to a user or team, especially System Administrator, and self-elevation events outside a PIM activation window (ATT&CK T1078.004 Cloud Accounts).
  • New credentials on integration apps: a client secret or certificate added to an app registration that backs an application user (T1098.001 Additional Cloud Credentials), correlated with Entra audit logs.
  • Connection sharing: "Connection permission added or edited" on connections to SQL Server, SharePoint or HTTP, which hands the maker's credential to others.
  • Data policy or tenant isolation changes: any edit outside a change window, since a single connector move from Blocked to Business opens an exfiltration path (T1567 Exfiltration Over Web Service).
  • Bulk reads by an application user: unusual read volume from Read logs against customer tables (T1213 Data from Information Repositories).
  • Session replay: sign-ins rejected by IP cookie binding or the IP firewall, which indicate stolen cookies or tokens being used elsewhere (T1550.004 Web Session Cookie, T1528 Steal Application Access Token).

Forward Purview records to the SIEM; see the Microsoft Sentinel Guide.

Hardening baseline

CISA's Secure Cloud Business Applications (SCuBA) project publishes a Power Platform baseline and the ScubaGear tool that checks most of it automatically. Several policies are marked as requirements under Binding Operational Directive 25-01 for US federal agencies; for everyone else it is a credible, testable minimum.

SCuBA policyRequirementLevelWhere to set it
MS.POWERPLATFORM.1.1v1Restrict creation of production and sandbox environments to administratorsSHALLAdmin center tenant settings, environment creation
MS.POWERPLATFORM.1.2v1Restrict creation of trial environments to administratorsSHALLSame setting for trial environments
MS.POWERPLATFORM.2.1v1Create a DLP (data) policy restricting connector access in the default environmentSHALLData policies
MS.POWERPLATFORM.2.2v1Non-default environments have at least one DLP policySHOULDData policies scoped to environments or groups
MS.POWERPLATFORM.3.1v1Enable Power Platform tenant isolationSHALLSecurity, Identity and access, Tenant isolation
MS.POWERPLATFORM.3.2v1Configure an inbound and outbound connection allowlistSHOULDTenant isolation rules (manual check)
MS.POWERPLATFORM.4.1v1Enforce Content Security Policy for model-driven and canvas appsSHALLEnvironment privacy and security settings (manual check)
MS.POWERPLATFORM.5.1v1Restrict Power Pages site creation to administratorsSHOULDTenant settings
MS.POWERPLATFORM.6.1v1Disable "Share with everyone"SHOULDTenant setting disableShareWithEveryone

Controls beyond the SCuBA baseline

  • Managed environments: enable them for production and the default environment. They unlock sharing limits, the IP firewall and IP-based cookie binding. Unmanaged developer environments are being deprecated.
  • IP firewall: allow Dataverse requests only from listed CIDR ranges and service tags. It starts in audit-only mode by default, which is the right way to test; review the "Allow access for Microsoft trusted services" bypass, which is on by default.
  • IP-based cookie binding: Settings, Product, Privacy + Security. Expect reauthentication when users switch VPN or networks, and configure reverse proxy addresses so the forwarded client IP is used.
  • Content Security Policy: canvas apps default to frame-ancestors 'self' https://*.powerapps.com; enable it in a dev or test environment first, use report-only mode with a reporting endpoint in production, then enforce.

Phased rollout

  1. Inventory: run ScubaGear and the CoE Starter Kit or admin center inventory to list environments, admins, application users, connections and cross-tenant connections.
  2. Admin roles: remove legacy System Administrator assignments, move tenant admin roles into PIM, restrict environment and Power Pages creation.
  3. Default environment: rename it, apply a strict data policy, enable managed environment features and sharing limits.
  4. Logging: start Dataverse auditing, access logging and read logging in production; set retention; forward Purview to the SIEM.
  5. Network and session: IP firewall and CSP in audit or report mode for two to four weeks, then enforce; enable cookie binding.
  6. Tenant isolation: review cross-tenant connections from the inventory, build the allowlist, then turn isolation on.
  7. Integrations: give each application user its own app registration and role, migrate secrets to certificates or managed identity.

Rollback: data policies, tenant isolation and IP firewall can each be switched back in the admin center, but data policy changes propagate with the same latency as the original change, and suspended flows must be reactivated by their owners.

Small and large organisations

A small tenant with one Dynamics 365 environment can get most of the value from four actions: restrict environment creation, a default environment data policy, PIM on admin roles and Dataverse auditing in production. Large tenants also need environment groups with rules, tiered data policies, a named platform security owner and SIEM detections.

Common misconfigurations

  • Integrations running as System Administrator: vendor setup guides often request it, and the application user then has every table, audit settings and customisation rights.
  • Client secrets that never expire: secrets created during a migration project years ago still authenticate integration app users; nobody owns the app registration. Forgotten applications with live credentials are a recurring breach path: in the Microsoft Midnight Blizzard Breach an OAuth application in a neglected test tenant led to production mailboxes.
  • Default environment left open: no data policy, sharing unrestricted and production data reached through personal connections, which is exactly what SCuBA 2.1v1 targets.
  • Auditing assumed to be on: admin activity appears in Purview, so teams assume data access is logged too; Dataverse auditing, access and read logs are still off.
  • IP firewall left in audit-only mode: the setting is on by default when the firewall is first configured and is easy to forget, so nothing is ever blocked.

Framework mapping

Control areaNIST SP 800-53 Rev. 5NIST CSF 2.0CIS Controls v8.1ISO/IEC 27001:2022 Annex A
Admin roles, PIM, security rolesAC-2, AC-6, AC-6(5)PR.AA-055, 6A.5.15, A.8.2
Application users and credentialsIA-5, AC-2PR.AA-015, 6A.5.17, A.8.5
Data policies, tenant isolation, IP firewallSC-7, AC-3, CM-7PR.PS-013, 4A.8.20, A.8.22
SCuBA baseline settingsCM-6PR.PS-014A.8.9
Auditing and monitoringAU-2, AU-6, AU-12PR.PS-04, DE.CM-038A.8.15, A.8.16

Detection and measurement

  • Standing privileged access: number of permanent System Administrator assignments in production environments (target: break-glass only).
  • Baseline conformance: percentage of SCuBA Power Platform policies passing in ScubaGear, tracked monthly.
  • Integration credential hygiene: share of application users backed by certificates or managed identity, and the age of the oldest client secret.
  • Audit coverage: percentage of production environments with Dataverse auditing and read logging on.
  • Data policy coverage: environments without a data policy (SCuBA 2.2v1) and number of active data policy exceptions.

Practitioner checklist

  • Run ScubaGear against the Power Platform baseline and record every failed policy with an owner.
  • Restrict production, sandbox, trial and Power Pages creation to administrators.
  • Put Global, Power Platform and Dynamics 365 administrator roles in PIM and remove legacy System Administrator assignments.
  • Apply a strict data policy to the default environment and at least one policy to every other environment.
  • Bind each production environment to an Entra security group and enable managed environment features.
  • Give every integration its own app registration, application user and custom security role; replace client secrets with certificates or managed identity.
  • Start Dataverse auditing, access and read logging in production, set retention and forward Purview records to the SIEM.
  • Test the IP firewall and CSP in audit or report mode, then enforce them.
  • Review cross-tenant connections, build the allowlist and enable tenant isolation.

Standards and references

Related NHI Mgmt Group resources: Citizen Developer and Internal AI App Governance Guide · Securing Microsoft Copilot Studio Agents Guide · Power BI Security Guide · SaaS and OAuth App Governance Guide · Microsoft 365 Security Guide

PDF for subscribers

Take this guide with you

Every section, table and checklist in one PDF, with links to the sources and related guides. Subscribe to our weekly NHI & AI Identity Journal and we’ll email you a download link.

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Researched and written by the NHI Mgmt Group editorial team using AI tools, under the editorial direction of Lalit Choda. Facts are drawn from the sources listed on this page and checked by our automated quality process. Last updated 27 October 2026. Spotted an error? Use our contact page.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM and Agentic AI security. nhimg.org

PDF Downloads for Newsletter Subscribers

Get the guide

Enter your details and we’ll email you a download link.

The full guide is free to read online. The PDF is a thank you for subscribing.

Fill in all fields marked * and tick the PDF box to continue.