【问题标题】:ADFS as a SAML Service Provider interacting with other Relying PartiesADFS 作为与其他依赖方交互的 SAML 服务提供商
【发布时间】: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。

所以,看到这种行为,我有两个问题:

  1. 我原以为通过 IdP 启动的登录初始登录到 ADFS 可以让我进入我的 RP,而无需返回 IdP 进行另一次登录。是我误解了,还是我只是错误地配置了 ADFS?

  2. ADFS 确定使用我的 IdP 的机制是什么?如果我在浏览器中访问 ADFS /adfs/ls/idpinitiatedsignon.aspx 页面,我根本没有涉及我的 IdP,并且选择我的 RP 确实使用我的 IdP 来授权用户,但我不知道这是如何确定的,因为没有链接ADFS 配置中信任声明提供者和依赖方之间的关系。

【问题讨论】:

    标签: saml adfs


    【解决方案1】:
    1. 如果您使用 loginToRp 会发生什么:

    https://your-adfs-server/adfs/ls/IdpInitiated.aspx?loginToRp=your:relying:party:id

    1. 您已选择使用 IDP Initiated to ADFS。因此 ADFS 处理身份验证。

    如果您想让您的 IDP 参与进来,您需要使用来自 RelyingParty (S) 的 SP 发起的流程。

    然后 ADFS 将显示 Home Realm Discovery 屏幕,您可以选择 IDP。

    【讨论】:

    • 1.如果我使用 loginToRp,单击我的 RP 的登录按钮时会发生同样的事情。它只是跳过 UI 并启动一个 SP 启动的流程。
    • 2.我不确定这是否正确。转到 IdPInitiatedSignOn 并选择一个 RP,一种或另一种方式会触发我的 IdP 的 AuthNRequest 消息,这是根据 SAML 标准的 SP 启动的流。我怀疑我的 IdP 会自动参与,而无需提供领域,因为它是唯一注册的 Claims Provider Trust。
    猜你喜欢
    • 2020-09-21
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2019-11-01
    • 2011-07-27
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    相关资源
    最近更新 更多