动态CRM 365 Web API身份验证,获得令牌,但我得到对实体C#的未授权调用。净核心

时间:2019-03-07 23:12:12

标签: .net dynamics-crm dynamics-365

我正在尝试使用.net core(c#)调用Dynamics 365 api,并且能够使它适用于一个clientid(应用程序),但是调用第二个id时,我获得了承载令牌,但无法调用任何自从我获得未经授权以来的实体。

我正在使用Microsoft.IdentityModel.Clients.ActiveDirectory

var httpClient = new HttpClient();
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //
            var result = httpClient.GetAsync("Dynamics URL witl Version and Entity name goes here").Result;
            var JSON = await result.Content.ReadAsStringAsync();

我认为我必须缺少一些安全设置,因为在相同代码下使用不同的clientid来获取令牌,我可以得到结果,但不确定原因是什么。

1 个答案:

答案 0 :(得分:0)

找到了解决方案并缺少步骤。

供以后参考,缺少的步骤是在Dynamics CRM上创建一个用户(不是azure),分配一个角色(从Administrator克隆),然后从Azure目录中将应用程序ID分配给该用户,然后API起作用。

注意:请参阅此文章: http://phuocle.net/crm/dynamics-365-online-s2s-authentication-full-explain.aspx