【发布时间】:2018-09-14 17:29:27
【问题描述】:
Identityserver4 为 SSO 提供了开箱即用的无限客户端和 API 资源。
如果我们想限制用户只能访问指定的客户端,最好的实现方式是什么?
方法 1
- userId 和 clientId 的映射表
- 在登录/反向通道调用时,验证用户后,额外检查已验证用户是否有客户端映射,如果有,请检查并相应返回。
通过上述方法,我们如何处理 SSO?如果用户登录到另一个客户端并尝试访问受限客户端时,仍然会登录,因为 cookie 身份验证启动并允许用户登录。
我们如何在身份服务器上限制这种行为? (带有 aspnetidentity)..
方法 2
- 在身份验证上下文请求中传递 acr_values
- 通过使用tenantid (like this) 扩展 IdentityUser,让用户存储支持租户 id
当用户登录另一个客户端并尝试登录受限客户端时,可能会遇到与上述相同的问题,由于 SSO cookie,idsrv 可能会说正常。
我目前正在开发一个示例应用程序来查看它的实际效果。感谢解决上述问题的任何帮助
【问题讨论】:
-
您找到解决方案了吗?我现在也面临同样的问题
标签: asp.net-identity multi-tenant identityserver4