我有以下情况:
UserA可以访问ApplicationA。
UserB可以访问ApplicationB。 ApplicationA和ApplicationB都使用ApplicationI作为身份提供者(自定义实现)。
在ApplicationA中登录时,UserA希望以UserB单一登录ApplicationB(假设UserB已向UserA提供此类权限)。
ApplicationB应该知道UserA已登录为UserB。
在这种情况下如何使用SAML 2.0?到目前为止,我在网上得到的关于SAML的任何例子都是针对单个用户在多个站点上尝试单点登录,但不是用户模仿另一个站点上的另一个用户。 具体来说,我试图了解如何在这种情况下使用带有HttpBinding的SAML Web SSO配置文件。
答案 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元素。