Skip to content

Commit 9d55c11

Browse files
flanakinclaude
andcommitted
Add EA enrollment 403 error to common errors page
Adds a concise entry to the existing errors.md page for the HTTP 403 error when using Add-FinOpsServicePrincipal. Links to authoritative Microsoft docs for EA role assignment and permissions. Closes #1754 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 774f05b commit 9d55c11

2 files changed

Lines changed: 29 additions & 16 deletions

File tree

docs-mslearn/toolkit/changelog.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,21 @@ The following section lists features and enhancements that are currently in deve
3636
- Cost Management export modules for subscriptions and resource groups.
3737
-->
3838

39-
<br>
39+
<br><a name="latest"></a>
4040

4141
## v14
4242

43+
### [Implementing FinOps guide](../implementing-finops-guide.md) v14
44+
45+
- **Added**
46+
- Added EA enrollment 403 troubleshooting steps to the [common errors](../help/errors.md#403) page ([#1754](https://github.com/microsoft/finops-toolkit/issues/1754)).
47+
4348
### [FinOps hubs](hubs/finops-hubs-overview.md) v14
4449

4550
- **Changed**
4651
- Improved deployment UI to consolidate hub mode selection into a single radio button group with four mutually exclusive options: None (storage only for Power BI reports), Azure Data Explorer, Microsoft Fabric, or Remote Hub ([#1929](https://github.com/microsoft/finops-toolkit/issues/1929)).
4752
- Remote Hub configuration (storage URI, storage key, and purge protection) is now displayed in the Basics tab when Remote Hub mode is selected, making the mutual exclusivity clear.
4853
- Data Explorer SKU and retention settings are now only visible when Azure Data Explorer mode is selected.
49-
50-
### [PowerShell module](powershell/powershell-commands.md) v14
51-
52-
- **Added**
53-
- Added `-WhatIf` support for resource provider registration in [New-FinOpsCostExport](powershell/cost-management/New-FinOpsCostExport.md).
54-
- **Fixed**
55-
- Fixed inverted verbose logging in [Start-FinOpsCostExport](powershell/cost-management/Start-FinOpsCostExport.md) that showed blank dates when a date range was specified.
56-
- Addressed minor lint warnings across PowerShell commands.
57-
58-
<br><a name="latest"></a>
59-
60-
## v14
61-
62-
### [FinOps hubs](hubs/finops-hubs-overview.md) v14
63-
6454
- **Fixed**
6555
- Fixed Init-DataFactory deployment script failing when an Event Grid subscription is already provisioning by checking subscription status before attempting subscribe/unsubscribe and polling separately for completion ([#1996](https://github.com/microsoft/finops-toolkit/issues/1996)).
6656

@@ -71,6 +61,14 @@ The following section lists features and enhancements that are currently in deve
7161
- Azure Hybrid Benefit doesn't apply to Dev/Test resources as Windows licenses are already covered by Visual Studio subscriptions.
7262
- Fixed Azure Hybrid Benefit reports to include Windows VMs from all publishers, not just Microsoft-published images ([#1793](https://github.com/microsoft/finops-toolkit/issues/1793)).
7363

64+
### [PowerShell module](powershell/powershell-commands.md) v14
65+
66+
- **Added**
67+
- Added `-WhatIf` support for resource provider registration in [New-FinOpsCostExport](powershell/cost-management/New-FinOpsCostExport.md).
68+
- **Fixed**
69+
- Fixed inverted verbose logging in [Start-FinOpsCostExport](powershell/cost-management/Start-FinOpsCostExport.md) that showed blank dates when a date range was specified.
70+
- Addressed minor lint warnings across PowerShell commands.
71+
7472
<br>
7573

7674
## v13 Update 1

docs-mslearn/toolkit/help/errors.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,21 @@ If the information provided doesn't help you, [Create a support request](/azure/
2525

2626
<br>
2727

28+
## 403
29+
30+
<sup>Severity: Critical</sup>
31+
32+
You may see this error when using [Add-FinOpsServicePrincipal](../powershell/hubs/Add-FinOpsServicePrincipal.md) to assign EA enrollment reader permissions to a service principal. The billing role assignment API returns HTTP 403 when the request is rejected.
33+
34+
**Mitigation**:
35+
36+
1. Confirm you are using the service principal object ID from **Enterprise applications** in the Azure portal, not the application object ID from **App registrations**. See [Assign roles to EA service principals](https://learn.microsoft.com/azure/cost-management-billing/manage/assign-roles-azure-service-principals).
37+
2. Confirm your account has the **Enrollment writer** role in your Enterprise Agreement. See [Understand EA administrative roles](https://learn.microsoft.com/azure/cost-management-billing/manage/understand-ea-roles).
38+
3. Confirm the billing account ID matches your EA enrollment number exactly.
39+
4. If the error persists, try assigning the role directly through the [Billing Role Assignments REST API](https://learn.microsoft.com/rest/api/billing/2019-10-01-preview/role-assignments/put) using the **Try it** feature.
40+
41+
<br>
42+
2843
## Access to the resource is forbidden
2944

3045
<sup>Severity: Critical</sup>

0 commit comments

Comments
 (0)