An Azure service that serves as a system of registration and system of discovery for enterprise data assets.
Thank you for sharing the detailed background and the steps you’ve already taken. Based on the information provided, your understanding is correct up to a point, and the behavior you are seeing (403 – Not authorized to access account) is consistent with a missing permission outside of the Purview collection roles.
Why this is happening
Although your service principal can successfully authenticate and obtain an access token, authentication alone does not guarantee authorization for Microsoft Purview Unified Catalog Governance APIs.
Microsoft Purview uses a two‑layer permission model:
- Azure RBAC (control plane) – governs access to the Purview account resource
- Purview collection roles (data plane) – govern actions inside the catalog (collections, domains, governance policies)
For Unified Catalog Governance REST APIs (such as GET /datagovernance/catalog/policies), both layers are required when using a service principal.
In your scenario:
- Collection Admin + Data Curator roles at the root collection
- Azure RBAC on the Purview account resource(missing)
When Azure RBAC is not present, the request reaches the service but is blocked at the account boundary, resulting in the 403 authorization error you observed.
What needs to be added
Please assign an Azure RBAC role to the service principal directly on the Microsoft Purview account in the Azure portal.
Recommended roles:
- Contributor (recommended)
- Owner (if broader permissions are acceptable)
This role assignment allows the service principal to access the Purview account itself, after which the already‑assigned collection roles are evaluated for the specific action.
After assigning the role, allow sufficient time for permission propagation before retrying the API call.
Answers to your specific questions
- Is Collection Admin at root collection sufficient for the Unified Catalog Governance API? No. Collection roles control catalog‑level operations but do not grant access to the Purview account for REST APIs when using a service principal.
- Are Azure RBAC roles required in addition to Purview roles? Yes. Azure RBAC is mandatory for service principals calling Unified Catalog Governance APIs.
- Is “Data Curator” an Azure RBAC role? No. It is a Purview‑internal role only and does not replace Azure RBAC.
- Does portal access differ from API access? Yes. Interactive portal access may work with collection roles alone, but REST APIs enforce Azure RBAC checks.
- How long does propagation take? Azure RBAC changes can take up to 30 minutes to fully propagate. Conclusion
Your configuration inside the Purview portal is correct, but collection roles alone are not sufficient for Unified Catalog Governance APIs when using a service principal. Once Azure RBAC (Contributor or Owner) is assigned to the service principal at the Purview account level and permissions are fully propagated, the 403 error will be resolved and the API call will succeed
Microsoft reference documentation - https://learn.microsoft.com/azure/purview/security-access-control-overview
- https://learn.microsoft.com/azure/purview/catalog-permissions#azure-rbac-roles-for-purview
- https://learn.microsoft.com/purview/purview-permissions
- Microsoft Q&A – Service principal 403 “Not authorized to access account.
Hope this helps. If you have any follow-up questions, please let me know. I would be happy to help.
Please do not forget to "Accept Answer" and "up-vote" wherever the information provided helps you, as this can be beneficial to other community members.