多个域上的单点登录

时间:2015-09-14 04:56:51

标签: c# asp.net authentication cookies

我们正在开发一个托管在多个域上的单个ASP.NET网站:

  • website-a.com
  • website-b.com

两个网站都允许用户登录。我们正在尝试启用它,以便用户登录 website-a.com 时,会自动登录 website-b.com 。显然,由于跨域安全性,不能为这两个域提供单个cookie集。

我们考虑设置第3个域名 auth.company.com ,该网站将运行,其中包含几个简单的终端:

  • / authorize 将是网站-a和网站-b用于对用户进行身份验证的端点
  • / client-id 将是两个网站将用于查看用户是否已经过身份验证的端点

当用户点击 website-a.com 时,将向 auth.company.com/client-id 发出AJAX请求,如果用户已通过身份验证,则将返回标识符, website-a.com 将设置Cookie,理想情况下referencing the same ASP.NET Session为其他网站并刷新页面。

所有网站都将通过HTTPS运行,我正在考虑加密从授权服务器发回的客户端ID ,但认为这可能没有必要,因为如果用户有权访问此信息,他们无论如何都可以欺骗用户的ASP.NET会话cookie。

我的问题是:这样安全吗?这是理智的吗?还有其他/更好的方法吗?

我们理想地希望避免引入像OAuth2或OpenID这样复杂的东西,因为上述功能是所需要的程度。

0 个答案:

没有答案