【问题标题】:IdentityModel vs Microsoft.IdentityModel vs System.IdentityModelIdentityModel vs Microsoft.IdentityModel vs System.IdentityModel
【发布时间】:2020-12-03 14:10:22
【问题描述】:

我正在使用 OWIN 在经典 ASP.net MVC 应用程序中实现 OIDC/OAuth 身份验证和授权。对于微软的 OIDC 中间件不支持的 API 调用,看来我是有一些选择的。

  1. 我可以直接向 IdP 制作并提出休息请求。
  2. 我可以使用 System.IdentityModel 中包含的类。
  3. 我可以使用 Microsoft.IdentityModel 中包含的类。
  4. 我可以安装和使用由 Dominick Baier 和 Brock Allen 构建的 IdentityModel

可能还有其他选择。其中,Dominick 和 Brock 的 IdentityModel 似乎是最成熟、最先进、最完善的。

鉴于我正在使用带有 OWIN 的经典 ASP.net MVC,我应该更喜欢一种方法还是需要结合使用上述方法?我会在哪里使用一个而不是另一个?有什么优缺点?

我知道有一些较早的帖子将 System.IdentityModel 与 Microsoft.IdentityModel 进行比较,但我对 2020 年的最佳产品更感兴趣。:-)

标记

【问题讨论】:

    标签: asp.net-mvc oauth-2.0 owin openid-connect identitymodel


    【解决方案1】:

    身份模型

    对于 C#,IdentityModel HttpClient 扩展方法为 OAuth 消息提供了一个很好的外观,就像我的 this example class 一样。

    SYSTEM.IDENTITYMODEL

    这有一些你可以在服务器端网络应用程序中使用的类,例如声明/主体。

    MICROSOFT.IDENTITYMODEL

    这主要包含旧的/冗余的 WS-Federation 内容,最好忽略。

    欧文

    除了处理 OAuth / OIDC 消息之外,它还为服务器端 Web 应用程序执行 cookie 处理。 IdentityModel 比基于 cookie 更基于令牌。

    单页应用

    这些天我个人的偏好是开发单页应用程序。在此设置中,如果构建 C# API,我将使用 IdentityModel 库。

    摘要

    对于您引用的额外请求,我肯定会使用 IdentityModel 客户端库。但我认为它不会发出 cookie,因此可能会继续使用 OWIN Openid Connect。

    【讨论】:

      猜你喜欢
      • 2011-06-12
      • 2012-11-14
      • 1970-01-01
      • 2014-08-17
      • 2011-09-18
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      相关资源
      最近更新 更多