【发布时间】:2018-10-30 20:18:19
【问题描述】:
我有一个配置了 ADFS (3.0) 的本地 Dynamics CRM (2016)。当用户想要登录时,他们会被重定向到 ADFS 登录页面,并且用户输入他们的 Windows AD 凭据。
我需要从 .net 核心应用程序使用 HttpClient 向 CRM api 发出请求。当我尝试像通常发送 Windows Auth CRM 一样发送凭据时,它不起作用。我得到一个 401 Unauthorized。如下所示。
HttpClient client = new HttpClient(new HttpClientHandler() { Credentials = new NetworkCredential("myuser", "mypassword", "mydomain") });
var result = client.GetAsync("https://mycrmaddress/api/data/v8.0/accounts");
我还尝试使用 Adal 检索令牌并将其作为不记名令牌附加到请求中,但我无法使用 adal 获取令牌。当我尝试时,我收到以下信息:
The authorization server does not support the requested 'grant_type'. The authorization server only supports 'authorization_code'
ADFS 3.0 不支持此流程。
我无法升级到 ADFS 4.0,所以我想知道我有哪些选项可以对 CRM api 进行经过身份验证的调用(因为此应用程序是一项服务,所以不提示登录窗口)。
我可以在 ADFS 上进行任何配置,以便我的第一个示例有效吗?或者即使它是 ADFS 3.0 也可以使用 Adal 来实现吗?或任何其他解决方案...
【问题讨论】:
标签: c# dynamics-crm adfs