【发布时间】:2019-11-12 19:03:49
【问题描述】:
我有一个能够成为 SAML 2.0 IdP 和 SP 的 Web 应用程序,并且已经在我的平台和 ADFS 之间成功实施了 SSO,但前提是 ADFS 是 IdP。
这是我第一次尝试与我的平台集成,使用 ADFS 作为 SP,但我在理解 SSO 流程时遇到了问题。
在我的情况下,我有三个参与者:WebApp (IdP)、ADFS (SP)、RelyingParty (S)。信任是在 ADFS 中设置的,用户体验应该是成功登录到已登录 WebApp 的 RelyingParty
使用我的 Web 应用在 ADFS 中设置新的声明提供者信任似乎可以完美运行。我可以转到我的应用程序的 IdP 发起的 URL,它会向 ADFS 的 ACS URL 发送未经请求的 SAML 消息。当我这样做时,我会被重定向到 /idpinitiatedsignon,并显示“您已登录”消息和我已经设置的依赖方的下拉列表。
如果我单击 RP 的登录按钮,ADFS 会在最终到达依赖方之前为我的 Web 应用生成一个新的 AuthNRequest。
所以,看到这种行为,我有两个问题:
我原以为通过 IdP 启动的登录初始登录到 ADFS 可以让我进入我的 RP,而无需返回 IdP 进行另一次登录。是我误解了,还是我只是错误地配置了 ADFS?
ADFS 确定使用我的 IdP 的机制是什么?如果我在浏览器中访问 ADFS
/adfs/ls/idpinitiatedsignon.aspx页面,我根本没有涉及我的 IdP,并且选择我的 RP 确实使用我的 IdP 来授权用户,但我不知道这是如何确定的,因为没有链接ADFS 配置中信任声明提供者和依赖方之间的关系。
【问题讨论】: