1

我有以下情况:

UserA 有权访问 ApplicationA。

UserB 有权访问 ApplicationB。ApplicationA 和 ApplicationB 都使用 ApplicationI 作为身份提供者(自定义实现)。

在 ApplicationA 中登录时,UserA 想以 UserB 的身份单点登录到 ApplicationB(假设 UserB 已将此类权限授予 UserA)。

ApplicationB 应该知道 UserA 以 UserB 的身份登录。

在这种情况下如何使用 SAML 2.0?到目前为止,我在网上获得的有关 SAML 的任何示例都是针对单个用户在多个站点上以自己的身份尝试单点登录的,而不是针对在另一个站点上冒充另一个用户的用户。具体来说,我试图了解在这种情况下如何将 SAML Web SSO 配置文件与 HttpBinding 一起使用。

4

2 回答 2

1

模拟并不是一个闻所未闻的要求。UserA 和 UserB 身份信息都可以在 SAML 响应中传递,但 AppA 和 AppB 可能有一个共同的 AuthZ 模型,这样您就不会遇到一些恶意活动。

因此,例如,AppA 将对 UserA 进行身份验证。当 UserA 想要 SSO 到 AppB 并模拟 UserB 时,AppA 将为 UserA 生成一个响应,其中 UserB 的身份在“ImpersonateUser=UserB”的属性中传递。UserA 将是响应的主题。当 AppB(充当 SP)验证响应时,它需要确保允许 UserA 通过内部授权映射模拟 UserB。或者,AppB 可以简单地相信 AppA 已经验证 UserA 可以模拟 UserB 并适当地创建会话。但是,这取决于 AppA 和 AppB 之间的信任关系。

HTH,伊恩

于 2013-02-07T14:55:13.203 回答
0

在对 Ian 的回复中回答您的问题,使用 AuthnRequest 通知 IDP 您想要模拟另一个用户的一种方法是使用 AuthnRequest 的 Extensions 元素。

于 2013-03-09T12:32:50.373 回答