我是asp.net核心的新手,想在 WEB API 2项目中实现身份验证和授权。我有点混淆使用基本身份验证,不记名令牌,JWT令牌或任何其他。请建议更合适 感谢
答案 0 :(得分:2)
基本身份验证顾名思义,非常基本且不太安全,它使用用户名和密码的base64编码,因此如果您使用它必须使用HTTPS,但最好不要使用它。
承载令牌是一种令牌,它有效地允许对“承载”的访问资源。令牌。基本和承载都用在HTTP授权头中。
您可以使用不同格式的承载令牌,其中一种是JWT - JWT是行业标准,因此我建议您使用它,因此您将使用承载令牌。
This article是一个很好的起点,可以在asp.net核心环境中研究这一切。另请参阅this video series和this article了解有关JWT验证的更多详细信息。
在评论中回答您的问题:
OAuth是用户委派应用或网站访问其资源的权限的标准,例如,当您允许某些网络应用代表您的Facebook Feed发布时。在此过程中使用各种令牌,它们通常是JWT。 OAuth2通过OpenID Connect添加身份验证。
另一方面,OWIN是Web服务器的标准,它将IIS和ASP.NET分离,目的是允许ASP.NET在其他Web服务器上运行,这些服务器实现OWIN和其他框架通常在OWIN上运行兼容的服务器,如果这些框架是OWIN兼容的。
Auth0是一个身份平台,可以执行OAuth并允许您使用JWT,通常它会处理您的身份和SSO。 IdentityServer是另一个具有相似功能的身份平台。
我仍然建议从我在顶部链接的文章开始,不要过于担心OWIN,并阅读有关OAuth的更多内容以确定您是否真的需要它。如果你这样做,我推荐使用IdentityServer。
答案 1 :(得分:0)
ASP.NET Core 2.0及更高版本的Web API身份验证和授权
承载类型基于JWT令牌的身份验证
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
请按以下方式实施