使用外部身份验证提供程序的ADFS单点登录

问题描述 投票:2回答:4

我们正在建立一个ADFS(2.0),它将负责验证多个面向客户的系统的用户。身份验证机制外包给外部合作伙伴,该外部伙伴可以访问多个身份验证提供程序。

我们最近遇到以下情况:

  1. 用户尝试访问面向客户的系统A,并重定向到ADFS进行身份验证。
  2. ADFS将用户重定向到身份验证伙伴,他在此成功进行身份验证。
  3. 用户将使用其身份验证令牌发送回ADFS。
  4. ADFS将用户发送回系统A。他现在与它进行会话。
  5. 用户尝试访问尚未使用的系统B经过验证,并发送到ADFS。

这是ADFS偏离我们期望的行为的地方。 ADFS不会识别用户,而是使用有效的身份验证令牌将其透明地发送回系统B,而是将其发送给我们的身份验证伙伴以进行重新身份验证。

这完全破坏了我们希望使用系统A和B的客户获得的SSO功能,但是我们还没有找到让ADFS建立用户会话并在访问第二个系统期间重新使用它的方法。

有人解决了这个问题吗?

ADFS仅在完全负责身份验证时才能提供单点登录吗?

authentication single-sign-on adfs2.0 adfs saml-2.0
4个回答
1
投票

如果您的RP-s(系统A和系统B)已配置为强制身份验证(ForceAuthn =“ true”),则ADFS会以这种方式运行。要解决您的问题,请确保从<wsFederation>元素中删除了Freshness属性。


0
投票

[在传统的ADFS中,您将不同的身份验证伙伴设置为ADFS的声明提供者,即,将相应的STS联合在一起。然后提供所需的SSO功能。

听起来您的问题是,ADFS与外部伙伴之间只有联盟,而ADFS与外部伙伴所处理的​​身份验证提供者之间没有联盟。


0
投票

您是否有权访问ADFS2日志?在Windows计算机->事件查看器->应用程序和服务日志-> AD FS 2.0->管理员

还要检查A,B和ADFS2是否在同一信任圈中,以及系统B的Assertion Consumer Services端点中。

希望它有帮助,

路易斯


0
投票

@@ Henrik AastedSørensen-对此是否有任何解决方法或解决方法?这是唯一与我在ADFS 3.0中看到的行为完全匹配的线程。

© www.soinside.com 2019 - 2024. All rights reserved.