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

时间:2016-10-24 13:35:01

标签: asp.net-mvc authentication asp.net-web-api oauth-2.0 asp.net-identity

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

此API将允许我的客户向我的用户请求信息。目前,我的用户存储在Identity表(ASPNetUsers)中。在我的应用程序中,他们在Identity类和方法的帮助下进行注册,登录等。

问题在于:我想以“身份方式”管理我的API客户帐户,因此我可以在他们要求访问令牌时对其进行身份验证。但我无法使用当前用户表,因为我的客户和用户之间没有共同点。

完美的解决方案是拥有两个身份表:一个用于我的用户,一个用于我的客户,但在我的长时间搜索之后,我认为这是不可能的,或者它将是一团糟,充其量。

1 个答案:

答案 0 :(得分:0)

我不会将ASP.NET Identity用作管理OAuth2注册客户端应用程序的方法。即使某些客户端应用程序(机密)确实发布了客户端凭据,这可能是他们与用户名/密码用户身份共享的唯一内容。 这是完全不同的事情,因此应该独立管理和存储。

如果你认为这听起来像是很多工作,那你就是对的。实现自定义用户名/密码身份验证并非易事,这证明了安全性并且实施OAuth2授权服务器的次数非常复杂。

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

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