首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何安全地进行跨域认证?

如何安全地进行跨域认证?
EN

Stack Overflow用户
提问于 2013-11-07 19:53:34
回答 4查看 21.1K关注 0票数 18

所以。我有域A.com,其中的用户身份验证是在域B.com完成的。目前,我已经设置了它,以便将登录表单发布到B.com,后者(如果成功的话)设置会话cookie并将其重定向到A.com/loggedin。但是,由于表单被发布到B.com,cookie被设置为该域,所以当我从A.com发出JSON请求时,会话cookie是不可用的--我不知道他们是否登录。然后问题就变成了,如何解决这个问题?

我一直在考虑一种解决方案,在重定向uri中添加一个令牌,然后可以用A.com一次性使用经过身份验证的会话创建(浏览器可以使用该令牌来使用B.com来记录会话,以便将cookie设置为A.com,并在JSON请求中可用。在此之后,令牌将失效( ofc)。

但是,我不确定这个解决方案有多安全?还是还有其他更安全的解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-15 06:49:14

您当前的解决方案在我看来不错,可以在这个场景中使用。但出于安全考虑,您可能不需要提供简单的令牌,而是希望使用一些好的加密方法对其进行加密,并在此基础上配置您的服务器,以便在使用之前对authentication token进行加密和解密。唯一的问题是,您需要为您的情况选择最佳的算法。

除了这个解决方案之外,您还可以考虑会话管理工具。Session MigrationSession Replication会话共享是我能想到的选项。

下面是链接为会话共享提供的解决方案,我认为这在您的情况下会有所帮助。

票数 10
EN

Stack Overflow用户

发布于 2013-11-21 12:07:30

是的,还有更安全的选择。

对于单点登录,有一个名为OpenID/connect (构建在oAuth2.0之上)的开放标准,用于资源共享、授权和身份验证,有oAuth。

要记住的事情。

  1. 所有这些解决方案只不过是被控制的安全漏洞--小心使用。
  2. 所有这些解决方案让您低俗的XSS,人在中间和劫持/重播攻击。
  3. 由于第1点和第2点,认真执行是至关重要的。

利用社区已经完成的工作。

oAuth 1.0a (至今仍被广泛接受为最安全的模式)- https://www.rfc-editor.org/rfc/rfc5849 oAuth 2- http://oauth.net/2/ (使用openID进行基于oAuth2的授权)

oAuth 2并不是oAuth 1a的替代品--它是一个完全新的(安全性较低)的想法,严重依赖于SSL -- oAuth1a仍然是最安全的--但仍然只有您的实现和对潜在弱点的理解才能做到这一点。

您可能正在寻找openID连接的想法--但是oAuth信息也很有用.

所以-一些差异的起点

openID连接(分层在oAuth 2上)

oAuth概念

所以-值得一读

票数 4
EN

Stack Overflow用户

发布于 2013-11-21 18:57:26

安全断言标记语言(SAML,发音为“SAML”1)是一种基于XML的开放标准数据格式,用于在各方之间,特别是在身份提供者和服务提供者之间交换身份验证和授权数据。SAML是绿洲安全服务技术委员会的产品。SAML可追溯到2001年;SAML的最新更新是2005年。

对SAML地址的一个最重要的要求是web浏览器单点登录(SSO)。单个登录解决方案在intranet级别上很常见(例如使用cookie),但是将这些解决方案扩展到intranet之外是有问题的,并导致不可互操作的专有技术的扩散。(解决浏览器SSO问题的另一种最新方法是OpenID协议。)SAML规范定义了三个角色:主体(通常是用户)、身份提供者(IdP)和服务提供者(SP)。在SAML所处理的用例中,主体向服务提供者请求服务。服务提供程序请求并从标识提供程序获得标识断言。基于这一断言,服务提供者可以做出访问控制决策--换句话说,它可以决定是否为连接的主体执行某种服务。

在向SP传递身份断言之前,IdP可能会请求主体(例如用户名和密码)提供一些信息,以便对主体进行身份验证。SAML指定三方之间的断言:特别是断言从IdP传递给SP的标识的消息。在SAML中,一个身份提供者可以向许多服务提供者提供SAML断言。相反,一个SP可能依赖和信任许多独立国内流离失所者的断言。SAML没有指定身份提供者的身份验证方法;它可以使用用户名和密码,或者其他形式的身份验证,包括多因素身份验证。目录服务允许用户使用用户名和密码登录,是身份提供者身份验证令牌(例如密码)的典型来源。流行的互联网社交网络服务也提供身份服务,理论上可以用来支持SAML交换。

语言

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19845345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档