Owin Web API Bearer Token 直通

Posted

技术标签:

【中文标题】Owin Web API Bearer Token 直通【英文标题】:Owin WebAPI Bearer Token pass though 【发布时间】:2015-12-25 22:28:36 【问题描述】:

我在我的 OWIN / web API / AngularJS 应用程序中使用 OAuth 持有者令牌身份验证流程。

我想要做的是重用服务器上的不记名令牌并将其传递给第二个 Web API 服务(另一台服务器上的另一个服务也受不记名令牌保护并使用相同的机器密钥)。我知道如何在 C# 中创建不记名令牌并使用 HTTPClient 将其添加到请求的标头中 - 但是我如何只使用我已经拥有的不记名令牌(由浏览器请求传入)?这可能吗?

【问题讨论】:

【参考方案1】:

从技术上讲,这是可能的,但很少是一个好主意。您通常不会通过它,因为这会将您的后端 API 暴露给中间人攻击。在规范方法中,您将使用收到的访问令牌返回授权并请求新令牌,这一次仅限于您的后端。一个例子请参见https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof。

【讨论】:

感谢 vibronet。这种方法是否意味着每次访问后端 API 时都从权威机构获取一个新令牌,或者您会存储后端令牌并重用它 - 我可以看到每种方法的优缺点?目前token在浏览器本地缓存并重复使用。 在我链接的示例中,生成的令牌被缓存。您可以选择将其缓存在服务器端或将其放置在受保护的 cookie/会话中 - 或者,如果您不经常执行调用,您甚至可能根本不缓存它(尽管这在我的经验中并不常见)。

以上是关于Owin Web API Bearer Token 直通的主要内容,如果未能解决你的问题,请参考以下文章

从 OWIN 中的 OAuth Bearer Token 获取 IPrincipal

无法设置 OWIN + OneLogin + Bearer

JSON Web Token in ASP.NET Web API 2 using Owin

Web API OAuth Bearer Token 安全性

JSON Web Token in ASP.NET Web API 2 using Owin

Web API 2,OWIN 身份验证,SignOut 不注销