当一个用户想要模仿另一个用户时如何使用SAML

时间:2013-02-07 11:35:15

标签: authentication impersonation single-sign-on saml-2.0

我有以下情况:

UserA可以访问ApplicationA。

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

在ApplicationA中登录时,UserA希望以UserB单一登录ApplicationB(假设UserB已向UserA提供此类权限)。

ApplicationB应该知道UserA已登录为UserB。

在这种情况下如何使用SAML 2.0?到目前为止,我在网上得到的关于SAML的任何例子都是针对单个用户在多个站点上尝试单点登录,但不是用户模仿另一个站点上的另一个用户。 具体来说,我试图了解如何在这种情况下使用带有HttpBinding的SAML Web SSO配置文件。

2 个答案:

答案 0 :(得分:1)

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

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

HTH, 伊恩

答案 1 :(得分:0)

在回复Ian时回答你的问题,使用AuthnRequest通知IDP的一种方法就是使用AuthnRequest的Extensions元素。