我想为多个网站(sitea.com、siteb.com、sitec.com)创建单点登录。所有网站都属于同一家公司。任何数据库也与相同的公司/位置。有些是 asp.net 网络应用程序,有些是论坛。我想尝试抽象出 SSO,这样它就不会与任何一个站点纠缠在一起。我在下面概述了我的方法:
- 用户登录到对用户进行身份验证的 sitea.com。sessionid 由 sitea.com 创建。
- 带有用户名和 sessionid 的 cookie 被放置在用户的机器上。sessionid 被插入到所有站点都可以访问的数据库 centralAuthDB 中。
- 用户单击 sitea.com 中对 siteb.com(论坛)执行 SSO 的链接。
- siteb.com 从 cookie 中检索用户名和 sessionid。然后 siteb.com 对照 centralAuthDB 检查这些凭据。
- 与 centralAuthDB 匹配,并且 SSO 已通过身份验证。但是,论坛 (siteb.com) 也有自己的用户数据库。用户名也在这个数据库中被检查,现在用户无缝登录到论坛。
以上安全实用吗?
凭据是否应该通过 web 服务发送到 centralAuthDB?
cookie 需要一些通用名称吗?那么 username 和 sessionid 的值会放在这个 cookie 中吗?