我按照本演练创建了一个可以连接到Dynamics 365 CE Online的多租户Web应用程序 . Walkthrough: Multi-tenant server-to-server authentication .

当我第一次运行应用程序并尝试登录Dynamics CRM时,它要求我提供我接受的同意 . 然后它返回以下错误:

Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException HResult = 0x80131500 Message = AADSTS65001:用户或管理员未同意使用名为“MvcCrmStsWalkthrough”的ID为“XXX”的应用程序 . 发送此用户和资源的交互式授权请求 .

对于后续尝试,它没有要求同意 . 但是,不断返回上述错误 .

我用于此POC的内容

  • Dynamics CRM在线试用版

  • Azure Active Directory服务默认包含在CRM试用版中,足以在Azure AD上执行应用程序注册

  • Visual Studio 2017社区版

到目前为止我尝试了什么

  • 在Azure AD中,我已经使用注册的应用程序上的'Grant Permission'按钮授予权限设置>必需的权限(似乎通过我的自定义应用程序接受用户同意)

  • 在Azure AD应用程序清单中将oauth2AllowImplicitFlow设置为true

  • 我确认我用于通过应用登录的O365帐户在AD中具有全局管理员目录角色

示例代码

walkthrough中提到的完全相同