【发布时间】:2016-01-29 02:43:12
【问题描述】:
我想在两个网络应用程序之间执行 SSO。这是我的场景:
应用 A 和 B(均提供 RESTFUL API)。 应用 B 使用基于表单的身份验证,我无法对应用 B 进行任何修改。另外,应用 A 和应用 B 维护不同的用户存储进行身份验证。
用户在App A中注册,注册成功后登录App A,调用App B中需要用户认证的API。
目标是确保一旦用户登录应用 A,他们应该能够调用应用 B 的经过身份验证的 API,而无需再次登录应用 B。
我浏览了 PingIdentity、Stormpath 和少数其他供应商提供的基于云的 SSO 解决方案,看起来跨多个应用程序的 SSO 要求所有应用程序都应该信任相同的身份提供者,或者应用程序应该理解 SAML/Open ID。此外,它还需要我更改应用 B 处理身份验证的方式(但我无法对应用 B 进行任何更改。
我已经为我的场景想到了简单的解决方案(这在某种程度上也是一种 SSO 方法http://www.opengroup.org/security/sso/sso_intro.htm)
一旦用户登录到 App A,服务器将对 App B 进行后台登录调用(使用 App B 的预配置默认凭据)。为响应此登录,应用 B 将发出一个会话 cookie,该 cookie 将在随后的 API 调用中传递给应用 B。 这种方法在为应用 B 使用默认凭据方面存在一些缺点,但它很简单并且可以工作。
但是,在走这条路之前,我想知道是否可以使用标准 SSO 解决方案以不同的方式处理这种情况?
【问题讨论】:
-
专家。对此有何指导?
标签: security oauth-2.0 single-sign-on stormpath