首页 文章

Dynamics crm 365获取azure adal授权码

提问于
浏览
0

我有一个场景是用户已登录CRM并触发一些调用第三方API以检索不在CRM中的数据的功能 . 此API是与CRM所在的Same Azure Active Directory中的已注册应用程序 . CRM单点登录已启用 .

我试图找到一个C#代码示例,它通过CRM插件检索授权代码 . 到目前为止,我已设法使用客户端密钥检索令牌,如本文所述:

Retrieving token without the ADAL client library

我已经使用本文中定义的参数实现了一个基本调用:

Requesting an Authorization code

但我需要通过用户会话才能使其正常工作 . 它目前抛出一个错误

已发送静默登录请求,但没有用户登录 . 用于表示用户会话的cookie未在请求中发送到Azure AD . 如果用户使用的是Internet Explorer或Edge,并且发送静默登录请求的Web应用程序位于与Azure AD endpoints (login.microsoftonline.com)不同的IE安全区域中,则会发生这种情况 .

任何帮助赞赏 .

1 回答

  • 2

    AFAIK,它不适合使用Microsoft Dynamics 365插件中的Oauth代码授予流与Azure AD交互,因为它需要用户交互 . 并且它无法使用ADAL库发送Microsoft Dynamics 365插件中的会话进行身份验证 .

    如果您只想访问CRM插件中的Microsoft Dynamics 365组织服务,则无需再使用ADAL库进行身份验证 .

    只需要插件代码通过ServiceProvider.GetService方法创建服务实例 .

    // Obtain the organization service reference.
    IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
    IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
    

    有关Microsoft Dynamics 365插件开发的上下文的更多详细信息,请参阅以下链接:

    Understand the data context passed to a plug-in

相关问题