我正在构建一个ASP.NET Web Api
withOAuth2 authorization
并正在开发一个应用程序,我们有:
- 顾客
- 组织
- 用户
一个客户有一个或多个组织,一个用户可以代表一个或多个客户。
我想让这个逻辑成为范围和访问令牌的一部分。这样我可以限制访问,但我也可以使用我的 API 从应用程序中移除一些(复杂的)逻辑。(当他们选择了一个小范围时)
范围
- 组织
- 顾客
- 全部
例如
当应用程序请求具有组织 范围的访问令牌时,用户应该在授权页面上看到两个下拉框。一个用于选择客户,另一个用于从该客户拥有的组织中选择一个。
这样,具有范围组织的访问令牌应仅限于来自该单个组织的数据。
使用 实现这一点的最佳方法是DotNetOpenAuth
什么?
我应该将 organizationId 和 customerId 作为范围添加到 accesstoken 吗?如果我这样做,我将如何处理“客户”范围?我应该只添加没有组织 ID 的 CustomerId 吗?(客户最多可以拥有大约 150 个组织)
理想我想把它转换成声明,我可以很容易地使用它来授权用户的操作。
如果范围是解决此问题的正确方法,或者我可以更好地解决此问题的一些想法,我想要一些反馈,而无需重新发明轮子或破坏 DotNetOpenAuth 框架的开放。
PS
我同时构建了AuthorizationServer
和ResourceServer
.