Azure Ad B2B身份验证从外部用户CRM检索数据

时间:2020-07-24 10:49:28

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

我们要构建一个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

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

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

我想连接到CRM来使用项目的解决方案,因此我习惯通过参考PowerApps samples回购来实现CRM SDK。我的项目使用Azure B2B对用户进行身份验证,我希望同一用户连接到CRM。所以我用了On-Behalf-Of flow。 在为AD应用验证用户身份后,我首先获得了访问令牌。然后,我使用此令牌为目标组织(例如:https://org12345.crm.dynamics.com/)使用UserAssertion获取另一个令牌。您需要添加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,我认为您应该能够执行其他操作操作。