我实施SSO将一些Web登录机制集成到OAuth2提供商的集中成员系统中 目前OAuth2授权运行良好。
但是,我想通过AJAX调用实现更流畅的登录方法 例如,用户已经登录了Web A和成员系统。当用户导航到Web B时,Web B应该将AJAX调用到成员系统以查看用户是否登录? 如果用户已登录,则Web B应向用户显示登录页面。
我研究了一些OAuth2文章(我现在找不到链接)。他们都通过直接重定向到OAuth提供商来进行SSO 但是,我想使用CORS AJAX调用,因为它可以提供更好的用户体验。
我读了另一篇关于CORS和SSO风险的讨论。 https://security.stackexchange.com/questions/36753/designing-single-sign-on-with-jsonp-cors?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
但我无法理解选定的答案。
必须有一个控件来防止恶意JavaScript 客户端伪造与授权服务器的交互。如果 相反,URL是作为CORS Ajax请求中的参数提供的 然后检查HTTP源头,然后是恶意客户端 允许谎言它的背景。
可以通过CORS标头Origin验证URL。
我的意见是,如果OAuth2 Provider正确设置了CORS Origin,那么支持CORS AJAX登录机制应该没问题。
由于cookie和CORS无法通过跨域访问并违反CORS Origin策略,因此不会遭受CSRF攻击。只需要担心XSS。
我对自己的意见并不十分自信,这就是我在这里发帖的原因 如果您有任何建议或发现我的错误,请告诉我。
谢谢