是否可以使用服务主体对动态crm在线进行身份验证?

时间:2016-07-07 16:42:47

标签: azure dynamics-crm azure-active-directory

我尝试了以下内容:

            AuthenticationParameters ap = await AuthenticationParameters.CreateFromResourceUrlAsync(
                        new Uri($"{CrmServiceUrl}/api/data/"));

            var _authenticationContext = new AuthenticationContext(ap.Authority);

            AuthenticationResult result = await _authenticationContext.AcquireTokenAsync(ap.Resource, new ClientCredential(_clientID,secret));

            var client = new HttpClient();
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);

            var req = await client.GetAsync($"{CrmServiceUrl}/api/data/v8.1/accounts?$select=name&$top=3");
            Console.WriteLine(await req.Content.ReadAsStringAsync());

但正在

HTTP Error 401 - Unauthorized: Access is denied

clientid and secret是一个天蓝色的广告服务主体。

enter image description here

1 个答案:

答案 0 :(得分:0)

我自己没有这样做,但我猜可能不会。要访问CRM中的数据,您需要在CRM中拥有一个用户帐户 - 这是在验证后如何应用CRM的安全模型。

我建议在这里查看Authenticate users in Microsoft Dynamics CRM,其中介绍了使用CRM进行身份验证的所有方法。