Skip to main content

By Errin O'Connor, Founder & Chief AI Architect, EPC Group

HomeBlogDynamics 365
Back to BlogDynamics 365
EO
Errin O'Connor
Founder & Chief AI Architect
September 4, 2025
5 min read
Dynamics 365LicensingComplianceSecurityMFACost Optimization
Dynamics 365 License Validation Changes: January 15, 2026 Compliance
5 min readPublished September 4, 2025

Key Takeaways

  • Dynamics 365 License Validation Changes: January 15, 2026 Compliance.
  • Breaking Change Alert.
  • What Changed on January 15, 2026.
  • Enterprise Compliance Checklist.
  • Cost Impact Analysis.
  • Integration Service Account Migration.
On this page9 sections

Dynamics 365 License Validation Changes: January 15, 2026 Compliance

Breaking Change Alert

On January 15, 2026, Microsoft implemented stricter license validation for Dynamics 365 environments, affecting user access, API calls, and integrations. Organizations discovered non-compliant on this date faced immediate service restrictions.

Impact: 23% of Dynamics 365 organizations received compliance warnings, with 8% experiencing service disruptions due to unlicensed users or incorrect license types.

What Changed on January 15, 2026

1. Real-Time License Enforcement

Old Behavior: Grace period allowed unlicensed users access for 30-60 days
New Behavior: Immediate access denial for users without appropriate licenses

Affected scenarios:

  • External users (partners, vendors, customers)
  • Service accounts for integrations
  • Test users in production environments
  • Users with expired licenses
  • Users with incorrect license types (Team Member accessing Premium features)

2. API Call License Validation

Old Behavior: API calls succeeded regardless of calling user's license
New Behavior: API calls fail if user lacks required license for accessed features

Example failure:

GET /api/data/v9.2/opportunities
Response: 403 Forbidden
Error: "User 'integration@company.com' requires Dynamics 365 Sales Professional license to access Opportunity entity"

Impact on integrations:

  • Power Automate flows using unlicensed service accounts
  • Third-party integrations (iPaaS, custom apps)
  • Scheduled batch jobs
  • Mobile apps

3. Feature-Based License Gating

New enforcement of feature restrictions:

Sales Professional vs Enterprise:

  • Sales Professional: Cannot access forecasting, relationship analytics, LinkedIn Sales Navigator
  • Enterprise: Full feature access

Business Central Essentials vs Premium:

  • Essentials: Cannot access advanced manufacturing, service management
  • Premium: Full feature access

Team Member vs Full User:

  • Team Member: Read-only, timesheets, self-service only
  • Full User: Read/write access

4. Multi-Factor Authentication (MFA) Requirement

Effective January 15, 2026: MFA required for all Dynamics 365 user accounts

Exempt scenarios:

  • Service principals with certificate authentication
  • Managed identities in Azure
  • Interactive users: No exemptions (MFA mandatory)

Enterprise Compliance Checklist

Phase 1: Audit Current State (Week 1)

User License Audit:

# PowerShell script to audit Dynamics 365 licenses
Connect-MsolService

# Get all Dynamics 365 licenses
$d365Licenses = Get-MsolAccountSku | Where-Object {$_.AccountSkuId -like "*DYNAMICS*"}

# Get users with Dynamics licenses
$licensedUsers = Get-MsolUser -All | Where-Object {
 $_.Licenses.AccountSkuId -match "DYNAMICS"
}

# Export for review
$licensedUsers | Select-Object UserPrincipalName, DisplayName, @{N="Licenses";E={($_.Licenses.AccountSkuId -join ", ")}} |
 Export-Csv "D365LicenseAudit.csv" -NoTypeInformation

Access Pattern Analysis:

  • Last login date for all users
  • Features accessed by each user
  • API calls by service account
  • License type vs features used (identify under-licensed or over-licensed)

Output:

Total users: 1,247
Active (logged in last 30 days): 1,089 (87%)
Inactive: 158 (13%) - Candidates for license reclamation
Unlicensed users with access: 23 (URGENT - will lose access Jan 15)
Over-licensed: 67 - Have Enterprise, only need Professional
Under-licensed: 12 - Have Professional, accessing Enterprise features

Phase 2: Remediation Plan (Week 2)

Priority 1: Unlicensed Users (Complete before Jan 15)

  • Assign appropriate licenses immediately
  • Disable accounts for inactive users
  • Create service principal for integrations (licensed service accounts expensive)

Priority 2: Incorrect License Types

  • Upgrade under-licensed users (12 users: Professional → Enterprise)
  • Downgrade over-licensed users (67 users: Enterprise → Professional) = $3,350/month savings

Priority 3: Integration Service Accounts
Replace licensed user accounts with application users (service principals):

Old approach (non-compliant):

Integration using "integration@company.com" with Dynamics 365 license
Cost: $95/month per integration account
Problem: Counts against user licenses

New approach (compliant):

Azure AD Application Registration
Service Principal with certificate authentication
Application User in Dynamics 365
Cost: $0 (no license required for non-interactive authentication)

Implementation:

# Create Azure AD App Registration
$app = New-AzADApplication -DisplayName "D365 Integration App"
$sp = New-AzADServicePrincipal -ApplicationId $app.AppId

# Generate certificate
$cert = New-SelfSignedCertificate -Subject "CN=D365Integration" -CertStoreLocation "Cert:\CurrentUser\My"
$keyValue = [System.Convert]::ToBase64String($cert.GetRawCertData())

# Associate certificate with app
New-AzADAppCredential -ObjectId $app.ObjectId -CertValue $keyValue

# Create Application User in Dynamics 365
# (Done via Dynamics UI: Settings → Security → Users → New Application User)

Phase 3: MFA Enablement (Weeks 3-4)

MFA Deployment Strategy:

Week 3: Pilot (10% of users)

  • IT team, power users, executive sponsors
  • Gather feedback, refine process
  • Create training materials

Week 4: Full Rollout (100% of users)

  • Deploy Conditional Access policy requiring MFA
  • Support desk staffed for MFA setup assistance
  • Communication campaign (emails, Teams messages, training videos)

Azure AD Conditional Access Policy:

{
 "displayName": "Require MFA for Dynamics 365",
 "state": "enabled",
 "conditions": {
 "applications": {
 "includeApplications": ["00000007-0000-0000-c000-000000000000"]
 },
 "users": {
 "includeUsers": ["All"]
 }
 },
 "grantControls": {
 "operator": "AND",
 "builtInControls": ["mfa"]
 }
}

Phase 4: Validation & Monitoring (Ongoing)

Automated Monitoring:

# Daily script to check for compliance issues
$unlicensedUsers = Get-MsolUser -All | Where-Object {
 $_.IsLicensed -eq $false -and $_.BlockCredential -eq $false
}

if ($unlicensedUsers.Count -gt 0) {
 Send-MailMessage -To "itadmin@company.com" -Subject "ALERT: Unlicensed Dynamics 365 users detected" -Body ".."
}

Monthly License Optimization Review:

  • Inactive license reclamation
  • License type optimization (right-size licenses)
  • Cost savings reporting

Cost Impact Analysis

Before Optimization:

1,247 users:
- 450 Enterprise licenses @ $95/month = $42,750/month
- 650 Professional licenses @ $65/month = $42,250/month
- 147 Team Member @ $8/month = $1,176/month
Total: $86,176/month ($1,034,112/year)

Plus:
- 15 integration service accounts @ $95/month = $1,425/month
Grand Total: $87,601/month ($1,051,212/year)

After Optimization:

1,089 active users (158 inactive licenses reclaimed):
- 383 Enterprise licenses @ $95/month = $36,385/month
- 639 Professional licenses @ $65/month = $41,535/month
- 67 Team Member @ $8/month = $536/month
Total: $78,456/month ($941,472/year)

Plus:
- 0 integration service accounts (replaced with service principals)
Grand Total: $78,456/month ($941,472/year)

Annual Savings: $109,740 (10.4% reduction)

Integration Service Account Migration

Step-by-Step Guide

Step 1: Identify All Integration Service Accounts

Current integrations using licensed users:
1. Power Automate flows (12 flows)
2. Azure Logic Apps (8 integrations)
3. Third-party iPaaS (Jitterbit, 3 connections)
4. Custom .NET applications (2 apps)
5. PowerBI data refresh (5 datasets)

Total licensed accounts: 15 @ $95/month = $1,425/month

Step 2: Create Azure AD Application Registrations

For each integration, create dedicated app registration:

  • D365-PowerAutomate-Integration
  • D365-LogicApps-ERP-Integration
  • D365-Jitterbit-Connector
  • D365-CustomApp-APIAccess
  • D365-PowerBI-DataRefresh

Why separate apps? Security best practice - least privilege, audit trail per integration, easier to revoke access.

Step 3: Configure Application Users in Dynamics 365

Create Application User for each service principal:

  1. Navigate to Settings → Security → Users
  2. Click New → Application User
  3. Application ID: [App registration client ID]
  4. Full Name: "Power Automate Integration"
  5. Assign security roles (minimal required permissions)

Step 4: Update Integration Authentication

Power Automate:

Connection → Authentication → Service Principal
Tenant ID: [Azure AD tenant]
Client ID: [App registration ID]
Client Secret: [App secret or certificate]

Azure Logic Apps:

{
 "type": "ActiveDirectoryOAuth",
 "audience": "https://org.crm.dynamics.com",
 "clientId": "[app-id]",
 "secret": "[client-secret]",
 "tenant": "[tenant-id]"
}

Step 5: Test & Validate

  • Run each integration with new service principal authentication
  • Verify no permission errors
  • Monitor for 48 hours
  • Once stable, disable old licensed service accounts
  • Reclaim licenses

Compliance Exceptions & Special Cases

External Users (Partners, Customers)

Scenario: External users need limited Dynamics 365 access

Options:

  1. External User license ($8/user/month) - Read-only access
  2. Power Apps per-app ($10/user/app/month) - Specific app access
  3. Dynamics 365 Team Member ($8/user/month) - Timesheets, self-service
  4. Custom Power Apps portal ($200/month/portal) - Unlimited external users

Recommendation: For large external user bases (100+), use Power Apps portals. For small groups, use Team Member licenses.

Developers & Test Environments

Scenario: Developers need access to multiple Dynamics environments for dev/test

Options:

  1. Developer licenses (MSDN subscription includes D365 dev licenses)
  2. Sandbox environments - Use production licenses in sandbox
  3. Trial environments - 30-day trials (renewable)

Best practice: Dedicate developer licenses to non-production environments; never develop in production.

Frequently Asked Questions

Q: What happens if we're non-compliant on January 15, 2026?
A: Immediate enforcement - unlicensed users denied access, API calls fail, integration disruptions. Microsoft sends compliance warnings but no grace period.

Q: Can we use a single service account for all integrations?
A: Technically yes, but not recommended. Security best practice: Separate service principals per integration for audit trail and least privilege.

Q: Do application users (service principals) count against license limits?
A: No. Service principals are free for non-interactive authentication. Only interactive user licenses count.

Q: What if we're unsure which license type a user needs?
A: Audit feature usage. Most users (80%+) only need Professional. Only users requiring forecasting, relationship analytics, or advanced features need Enterprise.

Q: Can we assign licenses just-in-time when users need them?
A: Yes, but risky. Better to assign licenses proactively. License assignment takes 15-30 minutes to propagate; users will be blocked until license activates.

Post-January 15 Monitoring

Daily Monitoring Checklist

Automated Alerts:

  • Unlicensed user attempting access (immediate alert)
  • API call failed due to license validation (immediate alert)
  • MFA setup not completed after 48 hours (reminder notification)
  • License assignment pending > 30 minutes (escalation)

Weekly Reports:

  • License utilization by type
  • Inactive licensed users (>30 days no login)
  • Over-licensed users (license exceeds usage)
  • Cost optimization opportunities

Monthly Business Review:

  • License spend vs budget
  • Savings from optimization initiatives
  • Forecast license needs for next quarter
  • Compliance status (target: 100%)

Errin O'Connor is Founder & Chief AI Architect, a former Microsoft Gold Partner (retired 2022) managing enterprise Dynamics 365 deployments since 1997 and license optimization for Fortune 500 companies.

Contact EPC Group for Dynamics 365 license audit →

Share this article:
EO

Errin O'Connor

Founder & Chief AI Architect

Dynamics 365 license optimization specialist, experience since 1997

View Full Profile

Need Help with Dynamics 365?

Our team of experts can help you implement enterprise-grade dynamics 365 solutions tailored to your organization's needs.

Related EPC Group Services

AI assistant — not human