一个客户端的网站正在使用带有MVC的.net 4.0。这个网站有自己的数据库和标识表。
我们为客户端实现了一个与网站及其数据库完全解耦的web应用程序。应用程序数据库保存用户所做操作的会话信息,以及链接到用户的许多其他会话信息。用户与Web API交互以操作数据,这些操作将被审核并映射到管理员可以在其上运行报告的会话。当用户通过应用程序本身注册并拥有自己的登录页面时,这一切都很好,这就是最初实现的方式。
问题是,现在客户端希望使用网站登录页面进行单点登录。客户端希望从应用程序中删除登录页面,并允许网站的每个当前和未来用户都可以访问web应用程序。
-到目前为止我所知道的
- 每个通过网站登录的用户都将在应用程序中扮演基本用户角色
- 将具有管理员角色和超级管理员角色的帐户将在生成数据库时生成
我的问题是:
是否可以使用两个具有自己标识表的独立数据库来实现单点登录?如果不是这样,那么最好的方法是什么,因为应用程序本身根据特定的用户角色有自己的授权,并且这些用户已经在应用程序数据库中扩展。如果可能的话,如果现有用户还不在应用程序数据库中,那么最好的方法是什么。
如能为我指明正确方向,我们将不胜感激。
谢谢你,
所以你有3个任务要解决:
- 如何将应用程序的现有用户映射到Identity Provider(另一个"主"应用程序)上可用的身份。有必要保存吗
- 如何在应用程序之间实现SSO(登录)
- 未来如何为用户提供资源
根据具体情况,将现有用户映射到Identity Provider上的身份可能非常容易,也可能非常复杂。你能在双方可用的一些常见信息上唯一识别用户吗,比如电子邮件地址?您这边的所有用户是否也可以在身份提供商端使用?
SSO解决方案可能会有所不同,从原始的共享cookie到成熟的OpenID Connect服务器。SSO解决方案是否已准备就绪?您是否计划在未来连接更多的应用程序?
范围或用户配置解决方案也很广:从为您的应用程序提供RO访问权限到身份提供程序的数据库,再到基于消息队列的容错解决方案。