【问题标题】:Choose best authentication and authorization option for Web API为 Web API 选择最佳身份验证和授权选项
【发布时间】:2017-05-17 04:45:11
【问题描述】:

我们在 ASP.NET MVC 中拥有自己的现有门户,现在我们的一位客户不想将我们的门户用作单独的工具,而是希望通过 WEB API 使用我们的功能并在他们身边使用它。

现在我想在web API中实现认证和授权,我用google找到了我的问题的答案,但没有得到它。

我对以下几点感到困惑。

  1. OWIN 是微软提供的默认实现的最佳选择吗?还是一些自定义实现?

  2. 在安全性方面使用 OWIN 有哪些优势和劣势?

  3. 何时使用 JWT(Json Web 令牌)和 OWIN?

  4. 或任何其他有助于创建更安全的 Web API 的实现?

寻找所有专家的宝贵意见以帮助我做出决定。

【问题讨论】:

    标签: asp.net-web-api oauth-2.0 asp.net-web-api2 owin jwt


    【解决方案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 进行身份验证/授权

    • 独立的 STS,接受 POSTS 来验证和生成 JWT

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      相关资源
      最近更新 更多