【发布时间】:2013-06-19 18:26:08
【问题描述】:
我们目前在使用 ADFS 2.0 和外部 IP-STS 进行单点注销时遇到问题。我们的设置是: RP1 ADFS 2.0 自定义 IP-STS RP2 ADFS 2.0 自定义 IP-STS
单点登录部分效果很好,如果用户已经使用自定义 IP-STS 登录访问 RP1,此后他们可以在同一个浏览器会话中访问 RP2,而无需再次登录。
但是问题出现在退出过程中。当用户从 RP1 退出时,使用 Fiddler 我们可以看到:
- 退出请求 (wsignout1.0) 已发送到 ADFS
- ADFS 将注销请求传输到自定义 IP-STS
- 自定义 IP-STS 进程正确退出操作,然后返回到 ADFS
- ADFS 确实返回到(已注销)RP1
- RP1 不再经过身份验证,因此当然会提示您再次登录(正确)
- 这里有问题:RP2 仍然能够毫无问题地工作(之前的声明集)。并且 ADFS 不会向 RP2 发送任何 wsignoutcleanup1.0 操作。
我认为 ADFS 应该为所有具有相同会话的 RP 注销,但事实并非如此。我错了吗?还是我在这里缺少某种配置?
当然,我们可以选择从自定义 IP-STS 向 RP 显式发送 wsignoutcleanup1.0 操作,但我们需要解析“wctx”以获取我不想要的原始 RP Url。 我还尝试将 wsignoutcleanup1.0 操作从自定义 IP-STS 发送回 ADFS(步骤 3),但它也没有帮助。
【问题讨论】:
标签: single-sign-on wif adfs2.0