asp.net核心WEB API中的身份验证和授权

时间:2017-07-04 10:40:47

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

我是asp.net核心的新手,想在 WEB API 2项目中实现身份验证和授权。我有点混淆使用基本身份验证,不记名令牌,JWT令牌或任何其他。请建议更合适 感谢

2 个答案:

答案 0 :(得分:2)

基本身份验证顾名思义,非常基本且不太安全,它使用用户名和密码的base64编码,因此如果您使用它必须使用HTTPS,但最好不要使用它。

承载令牌是一种令牌,它有效地允许对“承载”的访问资源。令牌。基本和承载都用在HTTP授权头中。

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

This article是一个很好的起点,可以在asp.net核心环境中研究这一切。另请参阅this video seriesthis 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)]

请按以下方式实施

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