OAuth 资源所有者密码流和 HMAC

OAuth resource owner password flow and HMAC

我有一个 Web api 应用程序,它实现了来自 OAuth 规范的资源所有者密码流程。一切正常。

实际上,我在我的 WebApiConfig class 中配置了所有内容,方法是使用这样的身份验证过滤器

// Configure Web API to use only bearer token authentication.
config.SuppressDefaultHostAuthentication();
config.Filters.Add( new HostAuthenticationFilter( OAuthDefaults.AuthenticationType ) );

由于我的一些客户要求使用不同的身份验证方法,我正在评估是否要为我的服务添加一些功能,但仍然不清楚这些功能如何协同工作。

特别是我遇到了一个 link,它用非常简单的语言解释了如何在网络中实现 HMAC 身份验证 api。

我可以实现这种认证方式,让客户自己选择使用哪一种吗?他们能凝聚在一起吗?

是的,您的网络 api 服务可以在 WWW-Authenticate 质询中发回多个方案。例如,在您的情况下,它可以发回“bearer”和“hmac”。

另请参阅 this question 了解有关使用多个方案的更多信息。

顺便说一句,支持资源所有者密码流的不是您的 Web api 服务。客户端使用此流程从授权服务器获取令牌,它可以在承载方案中与您的服务(资源服务器)一起使用。 HTH.