我正在尝试使用.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来获取令牌,我可以得到结果,但不确定原因是什么。
答案 0 :(得分:0)
找到了解决方案并缺少步骤。
供以后参考,缺少的步骤是在Dynamics CRM上创建一个用户(不是azure),分配一个角色(从Administrator克隆),然后从Azure目录中将应用程序ID分配给该用户,然后API起作用。
注意:请参阅此文章: http://phuocle.net/crm/dynamics-365-online-s2s-authentication-full-explain.aspx