【问题标题】:Azure Ad B2B authentication retrieve data from external user CRMAzure Ad B2B 身份验证从外部用户 CRM 检索数据
【发布时间】:2020-11-14 05:32:24
【问题描述】:

我们想要构建一个 Web 应用程序,Dynamics crm 客户可以通过该应用程序登录。一旦他们登录,我们想向他们展示他们的 CRM 实例联系人列表。我们已经实现了 Azure B2B 身份验证和托管应用程序,但我不知道如何从登录的客户的 crm 中检索数据。

https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/blob/master/2-WebApp-graph-user/2-3-Multi-Tenant/README.md#about-this-sample

任何帮助表示赞赏。

【问题讨论】:

    标签: azure azure-active-directory dynamics-crm microsoft-dynamics azure-ad-b2b


    【解决方案1】:

    看看CRM connection string examples。您可以提示登录用户进行身份验证。它使用当前登录的用户通过 OAuth 创建到 Common Data Service 的新连接。

    我想连接到 CRM 以使用某个项目的解决方案,因此我通过参考 PowerApps samples repo 来使用 CRM SDK。我的项目使用 Azure B2B 对用户进行身份验证,我希望同一用户连接到 CRM。所以我使用了On-Behalf-Of flow。 在对 AD 应用程序的用户进行身份验证后,我首先获得了访问令牌。然后我使用此令牌使用 UserAssertion 为目标组织获取另一个令牌(例如:https://org12345.crm.dynamics.com/)。您需要像 Registering AD App 这样添加 Dynamics CRM 权限。现在,一旦我有了目标组织的令牌,我就可以像这样使用它来连接到 CRM:

     Uri serviceUrlDestination = new Uri(orgUrl + @"/xrmservices/2011/organization.svc/web?SdkClientVersion=8.2");
    
     OrganizationWebProxyClient sdkServiceDestination = new OrganizationWebProxyClient(serviceUrlDestination, false);
    
     sdkServiceDestination.HeaderToken = AccessToken;
                CrmServiceClient serviceClient = new CrmServiceClient(sdkServiceDestination);
    

    我不知道如何检索登录用户的联系人列表,因为我主要将其用于解决方案,但是一旦您从登录用户的上下文连接到 CRM,我认为您应该能够执行其他操作操作也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-14
      • 2020-10-02
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      相关资源
      最近更新 更多