尝试从ADFS获取访问令牌时出现400错误的请求

时间:2018-08-23 15:28:42

标签: asp.net asp.net-core oauth-2.0 active-directory adfs

当尝试从ADFS获取访问令牌时,我一直收到400 bad request响应。我正在使用以下代码来获取访问令牌:

var client = new HttpClient();
client.BaseAddress = new Uri("xxx");
var request = new HttpRequestMessage(HttpMethod.Post, "/adfs/oauth2/token");

var keyValues = new List<KeyValuePair<string, string>>();
keyValues.Add(new KeyValuePair<string, string>("grant_type", "authorization_code"));
keyValues.Add(new KeyValuePair<string, string>("client_id", "xxx"));
keyValues.Add(new KeyValuePair<string, string>("redirect_uri", "xxx"));
keyValues.Add(new KeyValuePair<string, string>("code", model.AuthCode));
keyValues.Add(new KeyValuePair<string, string>("resource", "xxx"));

request.Content = new FormUrlEncodedContent(keyValues);
var accessTokenResponse = await client.SendAsync(request);

我非常确定xxx标记的变量是正确的,因为与Postman中的变量进行完全相同的发布可以正常工作。

2 个答案:

答案 0 :(得分:0)

在您的域控制器上转到adsiedit.msc,然后查看您的服务帐户。如果您进入属性,则可以向下滚动到servicePrinicpalName并确切查看为其配置的内容。确保您的ADFS服务器在此处列出。您将需要为其添加SPN(http / yourFqdnAdfsServer)并保存。这只是协议和主机名,格式如下:http / myserver。

答案 1 :(得分:0)

这是由于没有正确的证书来请求令牌。 安装此证书即可解决问题。