ADFS SAML 单点注销

ADFS SAML 单点注销

我正在处理一个作为依赖方连接到 ADFS 的 Web 应用程序,以便与合作伙伴声明提供商进行单点登录集成。这一切都是通过 SAML(而不是 WS 联合)进行的。Web 应用程序是 .NET,并使用 WIF SAML 扩展。所有这些都适用于 SSO。

不起作用的是单次注销到索赔提供商。我的应用程序通过 WIF 扩展正确重定向到https://adfs.example.com/adfs/ls使用 SAML 注销请求,然后 ADFS 又重定向回我的 /saml/redirect/sloresponse。这一切都很好,但从未发生过任何重定向到声明提供程序(SAML 身份提供程序)上游以从那里注销的情况。声明提供程序确实在其 SAML 元数据中发布了 SingleLogoutService,当声明提供程序直接与我的 Web 应用程序对话 SAML 时(中间没有 ADFS),它可以工作。

问题:

  1. ADFS 是否支持上游 SAML 单点注销?我在网上搜索时发现一些含糊不清的注释,说 ADFS 不支持,但我找不到确切的来源。

  2. 如果不在 ADFS 2.0 中,那么在 ADFS 2.1 中吗?如有必要,我们可以升级到 Windows 2012。

  3. 如果不是 SAML,ADFS 可以使用 WSFederation 执行此操作吗?两条腿都需要 WSFed,即声明提供者信任和依赖方信任吗?

  4. 如果根本不可能,有什么推荐的解决方法吗?也许直接重定向到声明提供程序,并让其将 SAML 注销请求推送到 ADFS?

谢谢!

答案1

有点晚了,但希望它能对某些人有所帮助。NameID 在这里发挥着作用。您是否在“使用 AD FS 2.0 作为服务提供商示例的 SAML 2.0 身份提供程序”自述文件第 3 步中看到了此引文?

“笔记:

· 默认情况下,NameIdentifier 声明不包含在 AD FS 的传出声明中。这可以作为声明转换规则添加。这是正确执行注销所必需的。“

合作伙伴 IDP 是否发送了 NameID,您的 ADFS 是否配置为向 RP 应用发送 NameID?我已配置了与您完全相同的设置,其中我的 IDP 和 RP STS 都是 ADFS,并且运行正常。

请注意,目前不支持 WIF SAML 扩展 CTP。我假设这不是生产设置?

Windows Server 2012 AD FS 2.1 不是实现此功能所必需的。不过,8.1 服务器版本中有一些不错的额外功能可能会影响您的升级决策 :)

相关内容