asp.net-web-api - Asp.Net Web API : Protecting with a token?

标签 asp.net-web-api security token jwt

我想使用 token 保护 asp.net Web api 服务。现在我知道您通常会实现 STS 服务器,但我不想这样做,那么我的其他选择是什么。

我正在考虑让 Controller 不 protected ,客户端可以调用传递用户名和密码,这将返回一个 token ,然后该 token 将被使用并且需要调用 protected 服务上的其他 Controller 。

因此,使用 DelegatingHandler 与 AuthorizeAttribute 会带来一些问题。上面的选项必须是一个authorizeAttribute,因为我需要让 Controller 不 protected ,以便客户端调用身份验证。我不明白如何使用委派处理程序来从技术上保护整个服务,而不是让 1 个 Controller 不 protected 。

我看到的另一个选项是提供另一个服务来允许客户端进行身份验证并获取 token ,然后我可以使用委托(delegate)处理程序锁定我的第二个服务。

让我们想象一下,我沿着 STS 路由,我仍然需要提供某种方式让客户端联系“OPEN”服务/ Controller ,而后者又会调用 STS 来获取 token 。

考虑到这一点,其他服务是我的最佳选择吗?

最佳答案

我过去使用 Hawk ( https://github.com/hueniverse/hawk ) 实现了类似的场景。我在 GitHub 上有一个 .NET 中 Hawk 的实现,它使用消息处理程序与 Web API 集成。

https://github.com/pcibraro/hawknet

按照我在项目中实现的方式。客户端应用程序首先使用真实用户名/密码(使用 https)进行基本身份验证来调用 Web api。 Web API 对用户进行身份验证,并将一组 hawk 凭据返回给客户端(相当于 token )。其余的调用由 hawk 使用协商的 hawk 凭证进行保护。这个很简单,不涉及任何STS。

关于asp.net-web-api - Asp.Net Web API : Protecting with a token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15835666/

相关文章:

javascript - Cookie 在 Web api 中返回 null

regex - 制作正则表达式以精确匹配两个字符串单词

silverlight - 是否可以将 Windows 集成安全性与 Silverlight RIA 服务结合使用

python - Spotipy client_credential_manager 未提供 token

c# - REST API token 认证

.net - 引用system.web.cors

c# - 如何从 Angular $http 服务将数据 POST 到 Web API Controller ?

security - 客户端和服务之间的安全通信

java - 如何获取用php发布的小程序数据?

android - 无法扩展 Facebook 访问 token