使用JWT的身份验证:从消费客户的角度来确保视图



我已经使用ASP.NET Core 2.1创建了Web API,并且它使用(成功)JWT作为授权请求的方法。

API链接到SQL Server数据库。我的用户使用Identity作为基本框架存储在其中。

要授权我的API访问权限,请使用用户名和密码,该密码与存储(基于Identity)的用户进行检查。

成功的登录返回Access Token(寿命为30分钟)。

首次登录后,将生成Refresh Token并对身份用户存储并从API发送回。

所有这些都很好。我的下一步是创建一个单独的.NET Core 2.1 MVC网站,该网站消耗API。

我的问题是:

从MVC站点的角度来看,如何根据此安全性确定控制器和视图?我通常会使用[Authorize]属性作为身份的一部分。

目前,我在MVC站点方面拥有的只是有关用户的Access Token(和Refresh token)。

我正在考虑以下解决方案:

  • MVC网站具有自己的数据库和用户的身份验证(使用Identity)。
  • 与API的连接(凭据/令牌)分别存储在MVC站点数据库中,并用作服务器端的"全局"方式,以执行针对API
  • 的呼叫

您应该使用OpenID Connect和OAuth 2.0框架。请检查IdentityServer4。它还支持ASP.NET核心身份

IdentityServer是一个开放式连接提供商 - 它实现了 OpenID Connect和OAuth 2.0协议。

不同的文献对同一角色使用不同的术语 - 您 可能还可以找到安全令牌服务,身份提供商, 授权服务器,IP-STS等。

,但它们的简而言之完全一样:一块软件 向客户发出安全令牌。

IdentityServer有许多作业和功能 - 包括:

  • 保护您的资源
  • 使用本地帐户存储或通过外部身份提供商对用户进行身份验证
  • 提供会话管理和单一登录
  • 管理和身份验证客户
  • 向客户发出身份和访问令牌
  • 验证令牌

相关内容

  • 没有找到相关文章

最新更新