在asp.net下使用owin和LinkedIn身份验证提供程序进行WebApi身份验证

时间:2018-07-12 10:42:42

标签: c# authentication asp.net-web-api owin linkedin

我们有一个在Asp.Net和Owin(.Net Framework 4.6)下运行的webApi。 几个本地前端客户端(iO,android等)正在使用该api。 该API当前使用带有登录令牌和cookie身份验证的Microsoft登录名。这有效,访问令牌随重定向的请求直接返回到客户端中的webView,我们能够使用Bearer令牌和另一个身份验证cookie访问我们的API。 现在,我们的任务是在该API中使用LinkedIn身份验证提供程序实现身份验证。为了明确起见:我们需要一个 OWIN 实现(没有AspNet.Core)。

我们可以使用此LinkedIn auth provider从webAPI的LinkedIn中获取访问令牌。因此,我们在User.Identity.Claims中看到了令牌。我们也可以再次将其退还给客户。是的,这可能不是一个好主意,但是似乎不可能直接在浏览器/ webView中获取令牌,因为response_type = code是linkedIn身份验证所必需的。使用response_type = token可以用于Microsoft身份验证。

无论如何,尽管我们已经检索了access_token,但最终Webview仍被重定向到以下URL: http://10.0.2.2:8108/signin-linkedin error = unsupported_response_type

请忽略我们暂时不使用https。主机仅用于测试,但重要的部分是附加的错误。

为什么会出现此错误?谁调用此请求,为什么尽管我们已经有了令牌,但为什么仍然出现该错误?

另一个信息是,我们现在在客户端中拥有的访问令牌无法用于针对webAPI的身份验证。因此,我们返回了401未经授权。

也许我应该明确提到,我们也在api中使用cookie身份验证,当我们在webView中接收cookie时,它似乎可以正常工作,并且仅在正确的用户上下文中,我们才能调用受cookie身份验证保护的方法。

我们非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用HTTPS后,出现了unsupported_response_type错误。