我们在ASP.NET MVC中拥有自己的现有门户网站,现在我们的客户之一不希望将我们的门户网站用作单独的工具,而是希望通过WEB API使用我们的功能并将其用于自己的方面。
现在我想在网络API中实施身份验证和授权,我确实谷歌找到了我的问题的答案,但没有得到它。
我对以下几点感到困惑。
向OWIN提供Microsoft提供的默认实现是否是最佳选择?或一些自定义实现?
在安全性方面使用OWIN有什么优势和劣势?
何时使用JWT(Json Web令牌)和OWIN?
或其他任何有助于创建更安全的Web API的实现?
寻找所有专家的宝贵意见,以帮助我做出决定。
答案 0 :(得分:1)
我实施了类似的东西。这就是我们的工作方式:我们的应用程序(MVC应用程序)允许我们登录。登录使用单独的mvc项目(我们的STS)来处理所有用户身份验证。正确发布我们的登录名和密码后,我们会生成一个返回给MVC应用程序的JWT。回到应用程序端,我们解码我们的令牌并在asp.net应用程序cookie中构建声明。 我们还有一个包含WebApi REST方法的独立项目。这些只能通过使用我们的STS生成的JWT来调用。我们使用自定义属性详细说明了这一点,以便我们可以对令牌中的特定权限或角色声明设置权限。
为了创造所有这些,我非常了解这些系列文章:http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/
在架构方面,这是我认为的应该如何'但我不是这方面的专家。
总结:
Web应用程序 - 用于验证/授权的应用程序cookie
调用WebApi Rest方法 - 使用JWT进行身份验证/授权
单独使用POSTS进行身份验证并生成JWT的STS