ADFS单点登录与外部身份验证提供程序

时间:2012-01-22 21:07:46

标签: authentication single-sign-on adfs2.0 adfs saml-2.0

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

我们最近遇到了以下情况:

  1. 用户尝试访问面向客户的系统A,并重定向到ADFS进行身份验证。
  2. ADFS将用户重定向到身份验证合作伙伴,并在其中成功进行身份验证。
  3. 用户的身份验证令牌将用户发送回ADFS。
  4. ADFS将用户发送回系统A.他现在有一个会话。
  5. 用户尝试访问系统B,而他尚未访问系统B. 经过身份验证,并发送到ADFS。
  6. 这是ADFS偏离我们预期的行为的地方。 ADFS不是识别用户,而是透明地使用有效的身份验证令牌将其发送回系统B,而是将他发送给我们的身份验证合作伙伴进行重新身份验证。

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

    有没有人解决过这个问题?

    ADFS在完全负责身份验证时是否只能提供单点登录?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

在传统ADFS中,您将不同的身份验证合作伙伴设置为具有ADFS的声明提供程序,即您联合相应的STS。然后,它提供您需要的SSO功能。

听起来您的问题是ADFS与外部合作伙伴之间只有联合,但ADFS与外部合作伙伴处理的身份验证提供程序之间不存在联盟。

答案 2 :(得分:0)

您是否可以访问ADFS2日志?在 Windows计算机中 - &gt;事件查看器 - &gt;应用程序和服务日志 - &gt; AD FS 2.0 - &gt;管理员

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

希望它有所帮助,

路易斯