1

我想知道有关处理此身份验证方案的最佳做法。我有一个名为(即https://public.domain.com/#registration)的注册页面,注册完成后,我想认证用户并将其重定向到应用程序(即https://app.domain.com/)。我有另一台服务器,我有身份验证方法,API控制器等(即https://api.domain.com/Token,https://api.domain.com/api/getOrders等)。使用ASP.NET标识和ASP.NET Web API的跨域令牌身份验证2

从注册页面(https://public.domain.com/#registration)我打电话(https://api.domain.com/Token)进行验证,并将其存储在sessionStorage [“accessToken”]或localStorage [“accessToken”]中。无论我存储此令牌的位置如何,它都不会在我将用户重定向到的其他域中提供(https://app.domain.com/)。

我的问题是:我必须通过从https://public.domain.com/#registrationhttps://app.domain.com/Login?Token=xxxxxxxxxxx查询字符串,所以我可以用它来存储它的localStorage或sessionStorage的传递令牌,并在https://app.domain.com/进行身份验证?

我如何在多个域中使用该令牌?这样做的最佳做法是什么?任何重大的安全风险? 我已经使用CORS设置了我的Api框,因此可以在注册和应用程序服务器中访问令牌端点。

我还想指出,https://public.domain.com/#registrationhttps://app.domain.com/是使用Durandal,BreezeJS,Knockout等(热毛巾模板)的单页应用程序。

回答

1

这几乎回答我的问题: Single Sign On (SSO) for cross-domain ASP.NET applications

亮点:

那么,如何共享跨多个域的身份验证cookie?那么,绝对没有办法做到这一点。主要出于安全原因,HTTP协议的基本障碍 阻止您在不同域之间共享cookie。

... ASP.NET中没有内置的机制来实现跨这两个不同站点的单一登录 。