gpt4 book ai didi

asp.net-web-api - 使用多种授权方案(HMAC 和 OATH)

转载 作者:行者123 更新时间:2023-12-03 17:43:06 28 4
gpt4 key购买 nike

好的,所以我有一个用于/token 请求的 WebAPI 身份验证服务并将不记名 token 返回给客户端,我在属性中添加了一个 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 签名。

在我的 Controller 上,我使用了 Authorize 属性并创建了一个实现 IAuthenticationFilter 的 HmacAuthentication 属性
[RoutePrefix("api/account")]
[Authorize]
[HmacAuthentication]
public class AccountController : ApiController
{
// rest of controller here
}

我遇到的问题是对这个 Controller 的任何请求都需要 Authorization: Bearer ... header 和 HmacAuthentication 属性也需要 Authorization: amx标题。

现在我知道你只能有一个 Authorization header ,所以我的困惑是如何在不破坏 HTTP 的情况下实现两个 Authorization header ,有没有人同时使用 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

最佳答案

这已经很长时间没有答案了,因为我已经解决了我原来的问题,所以我想我应该在这里发布解决方案,以便其他人可以使用它。

最后,解决方案是添加一个像@Glaucus 在他们的评论中建议的自定义标题。对于标准的 OAuth 授权,我添加了 Authorize头属性。为了满足我对 HMAC 的需求,我简单地添加了一个 X-Authorize属性到标题并修改我的代码以使用此标题。

现在我可以拥有一个由 OAuth token 保护的 WebAPI 服务,并通过对请求实现 HMAC 授权

关于asp.net-web-api - 使用多种授权方案(HMAC 和 OATH),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31172102/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com