单点登录,两个具有自己的标识表的数据库

时间:2015-11-12 19:22:34

标签: asp.net single-sign-on asp.net-identity asp.net-authorization

客户端的网站使用带有MVC的.net 4.0。该网站有自己的数据库和身份表。

我们为客户端实现了一个与网站及其数据库完全分离的Web应用程序。应用程序数据库保存用户所做的内容以及链接到用户的许多其他内容的会话信息。用户与Web API交互以操纵数据,并审核这些操作并将其映射到管理员可以运行报告的会话。当用户通过应用程序本身注册并拥有自己的登录页面时,一切正常。

问题是现在客户希望使用网站登录页面进行单点登录。客户希望从应用程序中删除登录页面,并允许该网站的每个当前和未来用户访问该Web应用程序。

- 到目前为止我所知道的

  • 通过网站登录的每个用户都将在应用程序中拥有基本用户角色
  • 生成数据库时将生成将具有管理员角色和超级管理员角色的帐户

我的问题是:

是否可以使用具有自己的身份表的两个独立数据库实现单点登录?如果它不是最好的路径,因为应用程序本身具有基于特定用户角色的自己的授权,并且这些用户已在应用程序数据库中进行了扩展。如果可能的话,将现有用户放入应用程序数据库的最佳方法是什么呢?

任何有助于指出我正确方向的人都会受到赞赏。

谢谢,

1 个答案:

答案 0 :(得分:0)

所以你要解决3个任务:

  1. 如何将应用程序的现有用户映射到身份提供商(另一个" main"应用程序)上可用的身份。保存是否必要?
  2. 如何在应用程序之间实现SSO(登录)。
  3. 如何在将来配置用户。
  4. 根据具体情况,将现有用户映射到身份提供商上的身份可能非常容易或非常复杂。您是否可以使用双方可用的常用信息(如电子邮件地址)唯一识别用户?您身边的所有用户是否也可以在身份提供商方面使用?

    SSO解决方案可能从原始的共享cookie到完整的OpenID Connect服务器不等。 SSO解决方案是否已经存在?您是否计划在未来连接更多应用程序?

    范围或用户配置解决方案也很广泛:从为应用程序提供RO访问权限到身份提供商数据库,直到基于消息队列的容错解决方案。