管理已经使用Identity的项目中的客户端帐户



我正在开发一个WebAPI在我已经存在的MVC应用程序,使用OAuth2授权系统。

这个API将允许我的客户端请求我的用户信息。目前,我的用户存储在标识表(ASPNetUsers)中。在我的应用程序中,他们正在注册,登录等…在Identity类和方法的帮助下。

问题在这里:我想管理我的API客户端帐户,以"身份方式",所以当他们要求访问令牌时,我可以对他们进行身份验证。但是我不能使用当前的用户表,因为我的客户端和用户之间没有共同点。

完美的解决方案是有两个Identity表:一个用于我的用户,另一个用于我的客户,但经过长时间的搜索,我认为这是不可能的,或者它将是一个烂摊子,在最好的情况下

我不会使用ASP。. NET Identity作为管理OAuth2注册客户端应用程序的一种方式。尽管一些客户端应用程序(机密)确实获得了客户端凭据,但这可能是它们与用户名/密码用户标识共享的唯一东西。这是一个完全不同的东西,因此应该独立管理和存储

如果你认为这听起来像很多工作,你完全正确。实现安全的自定义用户名/密码身份验证并不简单,实现OAuth2授权服务器要复杂很多倍。

如果你真的想要/需要走这条路,那么一些必读:

    OAuth 2.0授权框架
  • OAuth 2.0威胁模型和安全考虑
  • JSON Web令牌(JWT)(假设您选择JWT作为令牌格式)

如果您仍在评估所有选项,我也会考虑将所有身份验证/授权工作委托给第三方的可能性,我想到了Auth0,但我有偏见,因为我在那里工作。

相关内容

  • 没有找到相关文章

最新更新