ADFS/SSO:由于IE安全设置,在SP2010中使用iframe加载外部应用程序时出现无限循环



我们也遇到了同样的问题。我们有SP2010和ADFS。在iFrame中,我们正在加载一个外部应用程序,该应用程序也被配置为使用ADFS。

如果我们在页面上放置,我们可以在不登录的情况下打开外部应用程序,这样SingleSignOn就可以工作了。

但是,如果我们在iframe中加载外部应用程序,就会遇到问题。

如果我们运行Fiddler来查看进行了哪些调用,我们就会看到"正常"的adfs流。当adfs返回并重定向到外部应用程序的url时,提供的FedAuth cookie不包括在向外部应用程序发出的Post请求中。由于外部应用程序没有收到cookie,我们最终陷入了一个无限循环。

该问题是由IE将身份验证cookie视为第三方cookie引起的。它的安全设置阻止它将cookie添加到请求中。当我们将IE隐私设置更改为低(接受所有cookie)时,一切正常。

有人知道我们该怎么解决这个问题吗?

我们通过放置一个虚拟的"启动"页面解决了这个问题,这样Sharepoint用户就可以第一次访问这个页面,并被迫在ADFS中进行身份验证。

然后,只有在随后的页面上才有您的iframe。即使iframe没有从容器页面获取cookie,这也无关紧要——上下文被重定向到ADFS,ADFS会无声地发出令牌(因为用户已经在ADFS中进行了身份验证),并且iframe中托管的应用程序会处理令牌。

我不知道为什么您希望ADFS对您的申请的响应带有cookie?它从不这样做,它只在响应体中携带SAML令牌。

最新更新