测试 CRM 管理员 API Swagger 界面
Testing CRM Admin API Swagger Interface
我正在尝试尝试位于此处的新 CRM Admin API:https://admin.services.crm.dynamics.com/swagger/ui/index,但每次我尝试 运行 调用时,响应消息都是相同的:
"Message": "Authorization has been denied for this request."
我错过了什么?我假设无论我使用当前 chrome 登录 CRM 的哪个用户,都将是进行管理员调用的用户上下文,但也许我错了?
swagger API 不能用于测试服务。为了能够使用新管理 API 发送和检索数据,您必须获得有效的 OAuth2.0 令牌(参见前两句 in the auth docs) for a user that has the Dynamics Admin or Global Admin role in O365 (see the first part about admin roles in the docs)。
当您通过浏览器登录时,您只会得到一个代表您的登录会话的 cookie,而不是 OAuth 令牌。 Auth0 has a very good article 关于 cookie 和基于令牌的身份验证之间的区别,但在这种情况下,相关部分是它们不相同,因此您需要明确获取 OAuth2.0 令牌。
Microsoft 在其 swagger API 中包含的内容是 API 键的字段。 API 密钥可以从 Azure AD 应用程序注册中生成(有关如何生成密钥的更多信息,请参见 in the AAD docs)。不幸的是,正如我在上面指定的那样,MSDYN365 管理 API 要求经过身份验证的客户端至少具有 Dynamics 的服务管理员角色。这些角色是用户角色,不能委派给 AAD 应用注册,您只能为它们使用应用角色。
这意味着您在无权使用的情况下进退两难,因此 "only" 您可以使用该定义的目的是简化与您自己的应用程序的集成。
我正在尝试尝试位于此处的新 CRM Admin API:https://admin.services.crm.dynamics.com/swagger/ui/index,但每次我尝试 运行 调用时,响应消息都是相同的:
"Message": "Authorization has been denied for this request."
我错过了什么?我假设无论我使用当前 chrome 登录 CRM 的哪个用户,都将是进行管理员调用的用户上下文,但也许我错了?
swagger API 不能用于测试服务。为了能够使用新管理 API 发送和检索数据,您必须获得有效的 OAuth2.0 令牌(参见前两句 in the auth docs) for a user that has the Dynamics Admin or Global Admin role in O365 (see the first part about admin roles in the docs)。
当您通过浏览器登录时,您只会得到一个代表您的登录会话的 cookie,而不是 OAuth 令牌。 Auth0 has a very good article 关于 cookie 和基于令牌的身份验证之间的区别,但在这种情况下,相关部分是它们不相同,因此您需要明确获取 OAuth2.0 令牌。
Microsoft 在其 swagger API 中包含的内容是 API 键的字段。 API 密钥可以从 Azure AD 应用程序注册中生成(有关如何生成密钥的更多信息,请参见 in the AAD docs)。不幸的是,正如我在上面指定的那样,MSDYN365 管理 API 要求经过身份验证的客户端至少具有 Dynamics 的服务管理员角色。这些角色是用户角色,不能委派给 AAD 应用注册,您只能为它们使用应用角色。
这意味着您在无权使用的情况下进退两难,因此 "only" 您可以使用该定义的目的是简化与您自己的应用程序的集成。