← Back to Security Wiki
D365 F&O ITGC SOX · Audit August 2026 · 10 min read · Verified

How to Configure Emergency "Firefighter" Access in D365 F&O to Pass IT Audits

When a Big 4 ITGC auditor finds your support desk and developers holding persistent System Administrator access, the audit effectively stops. You are handed a Significant Deficiency — or worse, a Material Weakness requiring board disclosure.

IT Directors often inherit this exact mess from implementation partners. During a high-stress go-live, partners grant SysAdmin to everyone to bypass security bottlenecks and resolve tickets faster. Post go-live, nobody cleans it up. The next annual ITGC audit surfaces it as a critical finding.

Auditors understand that IT teams need elevated access to fix broken transactions or unblock system crashes. What they demand is that this access be Just-In-Time, heavily monitored, and automatically revoked.

Here is the exact technical blueprint to engineer a compliant, automated Firefighter access process in current versions of D365 F&O (10.0.40 and later).

Why Persistent System Administrator Access Is an Automatic Audit Failure

In the D365 F&O architecture, the System Administrator role is hardcoded to bypass every single security layer:

⚠️ You cannot secure a system when the users maintaining it operate entirely outside the security framework. Persistent SysAdmin is an automatic Material Weakness under SOX 404.

Step 1 — Engineer a Custom Elevated Firefighter Role

Never use the out-of-the-box System Administrator role for temporary support access. Because you cannot run SoD conflict reports against it, you can never prove to an auditor what the user didn't do while holding it.

Navigate to System administration → Security → Security configuration. Click Create new and name the role Firefighter - Elevated Support.

Assign the functional duties required for IT troubleshooting — view access across ledgers, ability to run batch jobs, access to module parameters. Then explicitly exclude these privileges:

By building a custom role, your Firefighter access remains bound by the SoD engine. When the auditor asks for proof that the support team couldn't manipulate payments during a troubleshooting session — generate the SoD conflict report for the custom role and hand it over.

Step 2 — Time-Bound Assignment via Entra ID PIM

Manual role assignment is prone to human error. Helpdesk staff will inevitably forget to remove the role at end of shift, leaving access persistent and failing the next audit cycle. The enterprise standard is to outsource the time-bound logic completely to Microsoft Entra ID Privileged Identity Management.

Prerequisite: Enable the Entra ID security groups feature. Put the environment in Maintenance Mode via LCS or Power Platform Admin Center → System administration → Setup → License configuration → expand Administration node → check Microsoft Entra ID security groups.

1Create the Azure Security Group
In Azure Portal, create an Entra ID Security Group named SG-D365-Firefighter-Access and enable it for PIM management.
2Map Group to F&O Role
In D365 F&O — System administration → Users → Groups → Import groups → pull in SG-D365-Firefighter-Access → map it to the custom Firefighter - Elevated Support role.
3Configure PIM Activation Rules
Set maximum activation duration to 2 hours. Require justification field — engineer must enter a ServiceNow or Jira ticket number. Require manager approval via mobile push notification before access activates.

When the timer expires, PIM automatically ejects the user from the group. Their Firefighter access in D365 F&O is immediately severed. You now have an immutable, time-stamped audit trail outside the ERP showing exactly who requested access, who approved it, and when it was revoked.

Step 3 — Database Logging on SecurityUserRole and SysUserInfo

Experienced ITGC auditors will immediately ask: how do you prove a rogue administrator didn't bypass your Azure PIM process and manually assign the Firefighter role directly inside D365 F&O?

Navigate to System administration → Setup → Database log setup. Click New and target two specific tables:

SecurityUserRole (User to role assignment): Expand the Security node, select User to role assignment, check Insert, Update, and Delete. This creates a permanent ledger entry if anyone manually assigns a role through the F&O interface, completely bypassing PIM.

SysUserInfo (User information): Log the Update event. Malicious actors with temporary elevated access frequently alter the email field on an executive's user record — rerouting workflow approval emails to their own inbox, approving a fraudulent transaction, then changing the email back before their access expires. This log catches intercept attempts.

⚠️ Never enable database logging broadly across transactional tables like PurchTable or SalesTable. The AOS performance degradation will bring your environment down. Restrict database logging strictly to high-value security tables.

Step 4 — Real-Time Governance Alerts

A database log gives the auditor a historical record — but your governance team needs real-time alerts when manual role assignments happen outside the PIM process.

Whenever a role is manually added to any user, your governance team receives an immediate email. They cross-reference it against active PIM requests. No corresponding PIM ticket means a manual security breach is in progress.

Verify the Change based alerts batch job is running at System administration → Inquiries → Batch jobs with a 1-2 minute recurrence. A real-time security alert is useless if the batch job runs once a day.

Step 5 — Quarterly Access Review

Auditors want proof of execution, not just configuration. Every quarter, your compliance team should:

If you have this reconciliation completed and sitting in a folder before the Big 4 auditor asks for it, you completely control the narrative of the audit.

A complete D365 F&O security governance review — identifying persistent SysAdmin access, SoD conflicts, database logging gaps, and emergency access control weaknesses — delivered within 48 hours. No system access required.