C# 授权Dynamics 365业务中心API
我想创建一个按计划运行的Webjob。webjob的目的基本上是检查一些数据库表,如果表中有新条目,则在Dynamics 365 BC中相应地创建项。在设计实现所有这些的方法时,第一步是对API进行身份验证,这样我们就可以进行C# 授权Dynamics 365业务中心API,c#,azure-active-directory,dynamics-business-central,C#,Azure Active Directory,Dynamics Business Central,我想创建一个按计划运行的Webjob。webjob的目的基本上是检查一些数据库表,如果表中有新条目,则在Dynamics 365 BC中相应地创建项。在设计实现所有这些的方法时,第一步是对API进行身份验证,这样我们就可以进行POST调用。该文档指定了具有各自身份验证机制的不同API端点,即通过Azure Active Directory(需要对Dynamics Business Central API进行委托的权限的应用程序注册)或基本身份验证。我知道,我们可以通过以下方式使用客户端id和密码
POST
调用。该文档指定了具有各自身份验证机制的不同API端点,即通过Azure Active Directory(需要对Dynamics Business Central API进行委托的权限的应用程序注册)
或基本身份验证。我知道,我们可以通过以下方式使用客户端id和密码从Azure active directory获取访问令牌:
ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
var authenticationContext = new AuthenticationContext(authorityUri, true);
AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync(resource, clientCredential).GetAwaiter().GetResult();
accessToken = authenticationResult.AccessToken;
现在,由于我的web作业需要在没有任何用户交互的情况下在后端运行,因此Azure AD身份验证不适合这里,因为它需要用户交互才能同意。但不建议在生产场景中使用基本身份验证。请建议如何生成访问令牌,这样就不需要用户交互 编辑 根据Allen的回复,基本身份验证可用于此场景,尽管需要更新Microsoft文档以支持此场景。但是,在探索API端点
https://api.businesscentral.dynamics.com/v1.0//api/beta/companies
使用邮递员和基本身份验证,我面临以下错误:
{
"error": {
"code": "Authentication_InvalidCredentials",
"message": "The server has rejected the client credentials. CorrelationId: 641ea3fd-19d6-4402-8e68-a70145eb6da3."
}
}
虽然我已经为我的business central用户生成了webservice访问密钥,并将其与用户名一起用于基本身份验证。我确信我正在复制正确的webservice密钥。
我们将非常感谢您的帮助。Dynamics 365 BC支持的身份验证方法仅包括以下两个选项:
- 基础认证
- AAD认证
根据Dynamics 365 Business Central Forum,@Stefano Demiliani表示,基本身份验证可以在生产环境中使用,这取决于您的选择。Dynamics 365 BC支持的身份验证方法仅基于以下两个选项:
- 基础认证
- AAD认证
根据Dynamics 365 Business Central Forum,@Stefano Demiliani说过,基本身份验证可以在生产环境中使用,这取决于您的选择。您好,您有机会查看我的答案吗?这有帮助吗?嗨,你有机会检查我的答案吗?这有帮助吗?嗨,艾伦,很抱歉反应太晚,请检查我更新的问题,如果可以的话请回答。@MuhammadMuradHaider你的租户版本是什么?这篇文章有用吗?你好,艾伦,很抱歉回复太晚,请检查我更新的问题,如果可以的话请回复。@MuhammadMuradHaider你的租户版本是什么?这篇文章有用吗?