.Net MVC多租户URL单点登录(SSO)

时间:2016-07-11 12:21:26

标签: .net single-sign-on multi-tenant core

我在.net核心和多租户实现中有一个应用程序,如下所示:

  

通过网址识别租户(www.example.com/ tenant1 或     www.example.com/tenant2)。租户使用共享数据库,即     使用每个表中每个租户的id分隔数据     每个查询然后使用tenantId来获取对应的数据库     每个租户。

我需要在应用程序中实施SSO,但我无法找到任何针对基于URL的SSO多租户实施的解决方案。

因此,如果用户更改了URL中的tenantName,并且如果该租户是租户的有效用户,则不允许其他人。

我现在正在使用cookie中间件进行身份验证/授权: https://docs.asp.net/en/latest/security/authentication/cookie.html

感谢您的建议。

1 个答案:

答案 0 :(得分:1)

您可以通过现有的owin中间件来实现此目的。只需提取中间件中的url段并找到

  1. 当前请求是否已通过身份验证
  2. 如果已通过身份验证,则当前登录的用户是否有权查看此租户的数据
  3. if(1)& (2)有效,通过其他中间件传递请求
  4. 否则,返回未经授权。
  5. 所有这些都是一个自定义中间件,您可以添加到owin管道来处理所有这些魔法。