Hug*_*iro 5 identityserver3 identityserver4
我正在努力寻找使用 Identity Server 保护多租户 Web API 的正确方法。让我解释。
我们有一个多租户 Web API,它为 ASP.NET MVC 应用程序提供服务。
API 的设置方式是每个端点都包含租户 ID 和订阅 ID,因此它可以知道它应该从哪个订阅/数据库获取数据。:
<server>/tentantId/subscriptionId/(...)
现在想象我有另一个外部应用程序(比如控制台应用程序),使用客户端凭据流,它试图“代表”客户访问某些 API 资源,这意味着将使用特定的tenantId/subscriptionId 对:
<server>/1000/1/products
每次调用到达 API 端点之一时,我都需要验证此特定客户端应用程序是否可以访问该租户/订阅。
如果身份服务器可以作为授权流程的一部分自动执行该检查,那将很有意义。
如果我们为客户添加了某种方式来注册(同意)特定客户端应用程序以访问其订阅上的 Web API,那么我们可能还可以将身份服务器设置为以范围的形式知道这一点,或者至少将该信息包含在声明,以便我们可以通过检查令牌而不是调用外部组件来执行权限检查。
这甚至可能吗?我应该尝试使用范围吗?索赔?
任何人都可以指出我正确的方向吗?
| 归档时间: |
|
| 查看次数: |
5320 次 |
| 最近记录: |