Microsoft Internal Controls Software
Microsoft internal controls software describes using Microsoft 365 and Azure — Entra ID, Purview, Power Platform, and Power BI — as the system that documents, enforces, and monitors the internal control framework required for SOX Section 404, in place of or alongside a dedicated internal-controls or GRC platform. Internal controls in this sense are broader than any single ERP's role-based access model: they include entity-level controls (tone at the top, IT governance policy), process-level controls (approval workflows, reconciliations), and IT general controls, and a meaningful share of all three categories in a Microsoft-centric enterprise are enforced or evidenced through the tenant itself rather than through whichever core financial system — Dynamics, SAP, Oracle, or another — sits at the center of the business.
Entity-level and IT governance controls live in tenant policy, not the ERP
COSO's internal control framework starts with the control environment — the entity-level controls that set the tone for everything downstream. In a Microsoft-centric enterprise, several of the IT-governance entity-level controls that SOX 404 documentation has to describe are literally tenant configuration: the organization's password and MFA policy enforced through Entra ID Conditional Access, the data classification and retention policy enforced through Purview, and the acceptable-use and data-loss-prevention policy enforced through Power Platform DLP and Microsoft Purview DLP more broadly. Documenting these as narrative policy statements without linking them to the actual tenant configuration that enforces them is a common gap — the written policy says MFA is required, but the control's actual evidence is whether Conditional Access enforces it, not whether an employee handbook mentions it.
The connection between written policy and enforced configuration is what an ITGC walkthrough tests directly. A policy document stating 'all privileged access requires approval' is not itself a control; the control is the PIM configuration that technically prevents standing privileged access. Internal controls software built on Microsoft 365 is strongest when it treats the tenant's actual configuration — exportable, dated, versioned — as the primary evidence, with the written policy serving as the narrative that explains why the configuration exists.
Process-level controls: where Power Automate becomes the control itself
Process-level financial controls — three-way match exceptions, journal entry approval, credit memo authorization — are usually built into the ERP's native workflow. But when a Power Automate flow supplements or overrides that native workflow (routing an exception to a different approver, adding an extra approval step above a dollar threshold the ERP's own configuration does not enforce), the flow itself becomes the control, and it has to be documented, tested, and change-managed with the same rigor as any ERP-native workflow. The common oversight is that these flows are built by finance operations staff to solve an immediate problem and never formally added to the internal control matrix, meaning the control the business actually relies on is invisible to the SOX program until an auditor's transaction walkthrough surfaces it.
Bringing Power Automate-based process controls into the internal control matrix requires three things: a documented control owner distinct from the flow's original builder, a change-management process requiring approval before the flow's logic is modified, and a periodic control-design review confirming the flow still matches its documented behavior — because a flow's connectors and conditions can be edited by anyone with edit rights to the underlying environment, silently changing what the 'control' actually does without any corresponding update to its control narrative.
Continuous control monitoring with Power BI and Purview, versus point-in-time testing
Traditional SOX testing samples a control a handful of times per year. Microsoft 365's tooling makes near-continuous control monitoring achievable for controls with a clean data source: a Power BI report that flags every Conditional Access policy change, every new Global Administrator assignment, or every Power Automate flow newly classified as touching financial data, refreshed daily rather than reviewed quarterly. This shifts some ITGC testing from a sample-based approach to a population-based approach — instead of testing five of two hundred PIM activations, the control monitoring dashboard shows all of them, and exceptions surface immediately rather than at the next testing cycle.
The limitation is that continuous monitoring built this way still depends entirely on the completeness of the underlying Purview audit log and the correctness of the Power BI report's logic — a monitoring dashboard that silently stops refreshing, or that has a filter condition excluding a category of event by mistake, will show a clean control environment that is not actually being monitored. Internal controls programs that lean on continuous monitoring need a control over the monitoring itself: periodic validation that the dashboard's data source is complete and the refresh schedule is running, which is easy to treat as obvious and skip documenting formally.
What actually differentiates the options
- ·Entity-level IT governance policies (password/MFA, data retention, acceptable use) each linked to the specific tenant configuration that enforces them, not documented as narrative-only policy statements.
- ·A formal control-matrix entry for every Power Automate or Power Apps workflow that supplements or overrides ERP-native financial approval logic, with an assigned owner and change-management requirement.
- ·Power BI or equivalent continuous-monitoring dashboards for high-volume ITGCs (privileged access changes, Conditional Access modifications), refreshed on a defined schedule rather than reviewed only at testing intervals.
- ·A documented control over the monitoring infrastructure itself — periodic validation that dashboards and underlying Purview queries remain complete and are actually refreshing.
- ·A clear escalation path from continuous-monitoring exceptions to the formal SOX deficiency-evaluation process, so an exception surfaced by a dashboard is not treated differently from one found through traditional sample testing.
Requirement, control, evidence
| Requirement | Control | Evidence |
|---|---|---|
| Entity-level IT governance controls must be enforced, not merely documented (COSO control environment component) | Written IT governance policy (MFA, data retention, acceptable use) linked explicitly to the Entra ID Conditional Access and Purview configuration that technically enforces it. | Policy-to-configuration mapping document plus a configuration export confirming the described enforcement is actually active. |
| Process-level financial controls implemented outside the ERP's native workflow must be in the control inventory | Formal control-matrix entry for each Power Automate or Power Apps flow supplementing or overriding ERP approval workflows, with a named owner. | Control matrix cross-referenced against a Power Platform admin center inventory of flows classified as financially relevant, confirming no undocumented flow exists. |
| Controls implemented via low-code automation must be subject to change management | Approval requirement before modification of any financially relevant Power Automate flow's logic, enforced through Managed Environments and a change log. | Flow modification history compared against change-approval tickets for a sample of financially relevant flows. |
| Continuous control monitoring infrastructure must itself be reliable | Periodic validation that Power BI monitoring dashboards and their underlying Purview queries remain complete and are refreshing on schedule. | Monitoring-validation log showing dashboard refresh timestamps and a periodic completeness check against the raw Purview audit log. |
What this actually costs
| Cost driver | Low | High | What moves it |
|---|---|---|---|
| Entity-level and IT governance control-to-configuration mapping (policy documentation linked to tenant enforcement) | $25,000 | $70,000 | Scales with number of distinct IT governance policies requiring mapping and whether policies are being written for the first time. |
| Power Automate/Power Apps process-control inventory and formal control-matrix integration | $30,000 | $95,000 | Depends heavily on how many undocumented citizen-developed flows are discovered during the initial inventory sweep. |
| Continuous control monitoring build (Power BI dashboards, Purview query design, monitoring-validation process) | $35,000 | $120,000 | Higher end reflects population-based monitoring across a large number of ITGCs rather than a small pilot set. |
- · Ranges assume existing Microsoft 365 E3/E5 and Power Platform licensing already in place; a licensing upgrade is a separate line item.
- · Figures are illustrative estimates based on typical mid-market to large-enterprise engagements, not quotes for a specific organisation.
- · Estimates cover the Microsoft-tenant control layer only — they exclude ERP-specific application control remediation inside Dynamics, SAP, Oracle, or another core system.
A representative scenario
A hypothetical $700M specialty retailer runs Dynamics 365 F&O for core financials but has, over several years, accumulated roughly a dozen Power Automate flows built by finance and operations staff that route exception approvals, apply discount overrides, and reconcile point-of-sale batch totals — none formally documented as SOX controls. An internal controls maturity review in this pattern typically finds that the written IT governance policy describes MFA and privileged access requirements accurately, but nobody had verified in over a year whether the Conditional Access configuration still matched that description, and that of the dozen undocumented flows, at least two touch financially relevant thresholds materially enough to require formal control status. Remediation generally involves adding a periodic policy-to-configuration validation step, formally onboarding the two material flows into the control matrix with named owners and change-management requirements, and decommissioning several of the smaller flows whose function the ERP's own configuration already covers natively. This pattern — a well-controlled core ERP surrounded by an accumulation of undocumented low-code process controls — is common enough in Microsoft-centric retail and distribution environments to be described here as illustrative, not as a specific client outcome.
Common questions
It is the practice of using Microsoft 365 and Azure tooling — Entra ID, Purview, Power Platform, Power BI — as the system documenting, enforcing, and monitoring entity-level, process-level, and IT general controls, rather than licensing a dedicated GRC platform such as Workiva or MetricStream to hold the control framework. It is a build-versus-buy choice for where the control inventory and monitoring logic live.
Book an assessment
Get a scoping call on microsoft internal controls software for your organisation's platform and entity structure.
Book an Assessment →