我想了解处理此身份验证方案的最佳做法。我有一个名为(https://public.domain.com/#registration)的注册页面,注册完成后,我想对用户进行身份验证并将其重定向到应用程序(即https://app.domain.com/)。我有另一台服务器,我有认证方法,api控制器等(即https://api.domain.com/Token,https://api.domain.com/api/getOrders等)。
从注册页面(https://public.domain.com/#registration)我打电话(https://api.domain.com/Token)进行身份验证,然后将其存储在sessionStorage [" accessToken"]或localStorage [& #34;的accessToken&#34]。无论我在哪里存储此令牌,它都不会在我将用户重定向到(https://app.domain.com/)的其他域中可用。
我的问题是:我是否必须通过https://public.domain.com/#registration中的查询字符串将令牌传递给https://app.domain.com/Login?Token=xxxxxxxxxxx,以便我可以将其用于存储在localStorage或sessionStorage中,并在https://app.domain.com/中进行身份验证?
如何在多个域中提供该令牌?这样做的最佳做法是什么?有什么大的安全风险? 我已经使用CORS设置了我的Api框,因此可以在注册和应用服务器中访问Token端点。
另外,我想指出https://public.domain.com/#registration和https://app.domain.com/是单页应用程序,使用Durandal,BreezeJS,Knockout等(热毛巾模板)。
答案 0 :(得分:1)
这几乎回答了我的问题: Single Sign On (SSO) for cross-domain ASP.NET applications
亮点:
那么,如何跨多个域共享身份验证cookie? 好吧,绝对没有办法做到这一点。根本障碍 HTTP协议阻止您共享cookie 不同的域名,主要是出于安全原因。
...... ASP.NET中没有内置机制来实现Single 在这两个不同的网站上签名。