我们正在建立一个ADFS(2.0),它将负责验证多个面向客户的系统的用户。身份验证机制外包给外部合作伙伴,该外部伙伴可以访问多个身份验证提供程序。
我们最近遇到以下情况:
这是ADFS偏离我们期望的行为的地方。 ADFS不会识别用户,而是使用有效的身份验证令牌将其透明地发送回系统B,而是将其发送给我们的身份验证伙伴以进行重新身份验证。
这完全破坏了我们希望使用系统A和B的客户获得的SSO功能,但是我们还没有找到让ADFS建立用户会话并在访问第二个系统期间重新使用它的方法。
有人解决了这个问题吗?
ADFS仅在完全负责身份验证时才能提供单点登录吗?
如果您的RP-s(系统A和系统B)已配置为强制身份验证(ForceAuthn =“ true”),则ADFS会以这种方式运行。要解决您的问题,请确保从<wsFederation>
元素中删除了Freshness属性。
[在传统的ADFS中,您将不同的身份验证伙伴设置为ADFS的声明提供者,即,将相应的STS联合在一起。然后提供所需的SSO功能。
听起来您的问题是,ADFS与外部伙伴之间只有联盟,而ADFS与外部伙伴所处理的身份验证提供者之间没有联盟。
您是否有权访问ADFS2日志?在Windows计算机->事件查看器->应用程序和服务日志-> AD FS 2.0->管理员。
还要检查A,B和ADFS2是否在同一信任圈中,以及系统B的Assertion Consumer Services端点中。
希望它有帮助,
路易斯
@@ Henrik AastedSørensen-对此是否有任何解决方法或解决方法?这是唯一与我在ADFS 3.0中看到的行为完全匹配的线程。