【发布时间】:2015-09-19 05:55:28
【问题描述】:
好的,所以我有一个用于 /token 请求并将承载令牌返回给客户端的 WebAPI Auth 服务,我已将 AppId 和 Api Key 添加到属性中,所以我回来了
{
"access_token": "...",
"token_type": "bearer",
"expires_in": 86399,
"dm:appid": "1",
"dm:apikey": "...",
".issued": "Wed, 01 Jul 2015 20:46:45 GMT",
".expires": "Thu, 02 Jul 2015 20:46:45 GMT"
}
客户端应使用 AppId 和 Api Key 为每个请求生成 Hmac SHA256 签名。
在我的控制器上,我使用了 Authorize 属性并创建了一个实现 IAuthenticationFilter 的 HmacAuthentication 属性
[RoutePrefix("api/account")]
[Authorize]
[HmacAuthentication]
public class AccountController : ApiController
{
// rest of controller here
}
我遇到的问题是,对这个控制器的任何请求都需要 Authorization: Bearer ... 标头,而 HmacAuthentication 属性也需要 Authorization: amx 标头。
现在我知道你只能有一个授权标头,所以我的困惑是如何在不破坏 HTTP 的情况下实现两个授权标头,有没有人同时使用 OWIN OAuth 和 HMAC 身份验证
我遵循了 Taiseer Joudeh 的这些例子
Token Based Authentication using ASP.NET Web API 2, Owin, and Identity Secure ASP.NET Web API using API Key Authentication – HMAC Authentication
【问题讨论】:
-
我面临着类似的情况。我正在考虑仅使用自定义标头而不是尝试使两个授权标头工作。你有更好的办法吗?
标签: asp.net-web-api oauth owin hmac