【发布时间】: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
我是asp.net core的新手,想在WEB API 2项目中实现认证和授权。我对使用 basic authentication、bearer token、JWT token 或其他任何东西有点困惑。请建议更可取 谢谢
【问题讨论】:
标签: asp.net-core asp.net-web-api2 jwt bearer-token
Basic auth 顾名思义,非常基础,也不是很安全,它使用base64编码的用户名和密码,所以如果你使用它必须使用HTTPS,但最好不要使用它。
不记名令牌是一种令牌,它有效地将资源访问权限授予令牌的“持有者”。在 HTTP Authorization 标头中使用了 basic 和 Bearer。
您可以使用不同格式的不记名令牌,其中一种是 JWT - JWT 是行业标准,因此我建议您使用它,因此您将使用不记名令牌。
This article 是在 asp.net core 的上下文中研究所有这些的一个很好的起点。另请参阅 this video series 和 this 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。
【讨论】:
ASP.NET Core 2.0 及以上Web API 身份验证和授权
承载类型基于JWT Token的身份验证
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
请按照以下帖子实现
【讨论】: