问题描述
案例:通过通用数据服务OData在Dynamics 365现场服务中的CRUD工作订单
- 我正在尝试访问Dynamics 365现场服务的字段。
我使用 Python , Flask 来构建Web应用程序
-
我需要对工作单进行CRUD:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/msdyn_workorder?view=dynamics-ce-odata-9
-
我正在使用多租户服务器到服务器身份验证机制:https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/use-multi-tenant-server-server-authentication
-
我已经在Azure上设置了应用注册:https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app
-
我已经配置了多个权限:
- Odata.FullAccess
- AX.FullAccess
- CustomService.FullAccess
- User.Read
- User.ReadBasic.All
-
我使用Microsoft提供的代码模板来构建与Active Directory和Dynamics 365交互的Web应用程序
https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-web-app-call-api-overview
错误消息
Login Failure
invalid_scope
The provided value for the input parameter 'scope' is not valid.
The scope 'Odata.FullAccess User.ReadBasic.All offline_access openid profile'
does not exist.
你有什么主意吗?
非常感谢您花时间在此问题上投入
解决方法
基于Grant your application rights to access Common Data Service data,您需要选择 Access Dynamics 365作为组织用户。
它在Dynamics CRM中,而不在Dynamics ERP中。
Odata.FullAccess
是Dynamics ERP的权限,对您的场景无效。