我们开始使用 DYN365O Update 3 后不久就开始遇到这个问题。我们的代码工作了一段时间,然后在一月中旬的一天停止工作。我们有一张进入微软的票,但希望有人找到解决方法。当我们的代码尝试连接时会发生以下错误:
响应代码 (1004) {"error":"AADSTS65001: 用户或管理员未同意使用 ID 为 '' 的应用程序。为此用户和资源发送交互式授权请求。\r\n跟踪 ID: d1775f71-ac60- 4d12-ace5-39b52452a5c7\r\n相关 ID:38e3b5c6-52c2-4ea9-9ad1-67230e246b40\r\n时间戳:2017-01-29 21:42:43Z"}
我能够使用此处的代码 ( https://github.com/Microsoft/Dynamics-AX-Integration ) 来重现问题。以下是相关部分:
string aadTenant = ClientConfiguration.Default.ActiveDirectoryTenant;
string aadClientAppId = ClientConfiguration.Default.ActiveDirectoryClientAppId;
string aadResource = ClientConfiguration.Default.ActiveDirectoryResource;
AuthenticationContext authenticationContext = new AuthenticationContext(aadTenant);
// OAuth through username and password.
string username = ClientConfiguration.Default.UserName;
string password = ClientConfiguration.Default.Password;
// Get token object
var userCredential = new UserPasswordCredential(username, password);
AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync(
aadResource,
aadClientAppId,
userCredential).Result;
- 当指向我们的更新 2(8 月更新)DYN365O 实例时,一切正常。
- 将 URI 更改为指向 Update3 我们开始看到这些错误。
我已经搜索了互联网,我已经完成了所有建议,包括:
- 在 Azure 应用程序的清单中设置 oauth2AllowImplicitFlow = true。
- 在 AAD 中应用程序的权限下,我使用了授予权限来“授予目录中所有帐户的权限”。
- 更改对 AcquireTokenAsync 的调用以包含“prompt=admin_consent”。我看到了提示屏幕,但即使在输入 AAD 管理员用户名/密码后,我也会收到同样的错误。
- 尝试其他用户 3。
- 验证 DYN365O 中的用户(在系统管理 >> 用户下)在我们的 Update2 和 Update3 实例中是相同的,并且是系统管理员。