我们正在建立一个 ADFS (2.0),它将负责对多个面向客户的系统的用户进行身份验证。身份验证机制外包给外部合作伙伴,该合作伙伴提供对多个身份验证提供程序的访问。
我们最近遇到了以下情况:
- 用户尝试访问面向客户的系统 A 并被重定向到 ADFS 进行身份验证。
- ADFS 将用户重定向到身份验证合作伙伴,在那里他成功进行身份验证。
- 用户将使用他的身份验证令牌发送回 ADFS。
- ADFS 将用户发送回系统 A。他现在与系统 A 建立了会话。
- 用户尝试访问尚未经过身份验证的系统 B,并被发送到 ADFS。
这就是 ADFS 偏离我们预期行为的地方。ADFS 不会识别用户并使用有效的身份验证令牌将他透明地发送回系统 B,而是将他发送给我们的身份验证合作伙伴以进行重新身份验证。
这完全破坏了我们希望为使用系统 A 和 B 的客户提供的 SSO 功能,但我们还没有找到一种方法让 ADFS 建立用户会话并在访问第二个系统期间重新使用它。
有没有人解决过这个问题?
ADFS 是否只能在完全负责身份验证时才提供单点登录?