【问题标题】:Authentication and Authorization in asp.net core WEB APIasp.net core WEB API中的认证和授权
【发布时间】:2018-05-28 18:57:19
【问题描述】:

我是asp.net core的新手,想在WEB API 2项目中实现认证和授权。我对使用 basic authentication、bearer token、JWT token 或其他任何东西有点困惑。请建议更可取 谢谢

【问题讨论】:

    标签: asp.net-core asp.net-web-api2 jwt bearer-token


    【解决方案1】:

    Basic auth 顾名思义,非常基础,也不是很安全,它使用base64编码的用户名和密码,所以如果你使用它必须使用HTTPS,但最好不要使用它。

    不记名令牌是一种令牌,它有效地将资源访问权限授予令牌的“持有者”。在 HTTP Authorization 标头中使用了 basic 和 Bearer。

    您可以使用不同格式的不记名令牌,其中一种是 JWT - JWT 是行业标准,因此我建议您使用它,因此您将使用不记名令牌。

    This article 是在 asp.net core 的上下文中研究所有这些的一个很好的起点。另请参阅 this video seriesthis article 了解有关 JWT 验证的更多详细信息。

    编辑

    在 cmets 中回答您的问题:

    OAuth 是用户授予应用程序或网站访问其资源的权限的标准,例如,当您允许某些网络应用程序代表您发布到您的 Facebook 供稿时。在这个过程中使用了各种令牌,它们通常是 JWT。 OAuth2 通过OpenID Connect 添加身份验证。

    另一方面,OWIN 是 Web 服务器的标准,它将 IIS 和 ASP.NET 解耦,目的是允许 ASP.NET 在其他实现 OWIN 的 Web 服务器上运行,其他框架通常在 OWIN 兼容的服务器上运行如果这些框架与 OWIN 兼容。

    Auth0 是一个身份平台,可以进行 OAuth 并允许您使用 JWT,通常它处理您的身份和 SSO。 IdentityServer 是另一个具有一些类似功能的身份平台。

    我仍然建议从我在顶部链接的文章开始,不要太担心 OWIN,并阅读有关 OAuth 的更多信息以确定您是否真的需要它。如果你这样做,我会推荐 IdentityServer。

    【讨论】:

    • 关于 0Auth 的任何想法?
    • 你是指 OAuth 还是 Auth0?
    • 你能在.net core中分享任何完整的实现帖子
    • 如果您需要 OAuth,我建议您完成 IdentityServer 教程 here
    • 是否有任何简单直接的文章,因为上面的链接有很多东西?
    【解决方案2】:

    ASP.NET Core 2.0 及以上Web API 身份验证和授权

    承载类型基于JWT Token的身份验证

    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    

    请按照以下帖子实现

    https://fullstackmark.com/post/13/jwt-authentication-with-aspnet-core-2-web-api-angular-5-net-core-identity-and-facebook-login

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2023-03-12
      • 2017-01-23
      • 1970-01-01
      • 2014-10-05
      • 2015-03-04
      相关资源
      最近更新 更多