【问题标题】:SP-IdP interaction issue: I'm not redirected back to SP web siteSP-IdP 交互问题:我没有被重定向回 SP 网站
【发布时间】:2011-12-01 06:31:16
【问题描述】:

我是 SSO 和 ADFS 的新手,所以我尝试先运行本指南:AD FS 2.0 Federation with a WIF Application Step-by-Step Guide。本指南暗示使用单台机器来运行它,但我在 2 台不同的机器上运行身份提供者 (IdP) 和服务提供者 (SP)。当 IdP 应该将经过身份验证的请求重定向回 SP 的网站时,我在最后一步遇到问题,而是返回 HTTP 200 Ok,让我留在 IdP 网站上。用例:当我在浏览器 (IE8) 中请求 SP 页面时,它会按预期将我重定向到 IdP。它向我显示弹出窗口,我在其中输入我的 Windows 帐户凭据。但是,它没有让我回到 SP 网页,而是向我显示 //adfsserver/adfs/ls 文件夹的内容。

根据 Fiddler 的说法,http 身份验证请求/响应如下所示:

GET https://adfsserver/adfs/ls/?wa=wsignin1.0&wtrealm=https%3a%2f%2fymichurin%2fClaimsAwareWebAppWithManagedSTS%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fClaimsAwareWebAppWithManagedSTS%252fdefault.aspx&wct=2011-11-23T21%3a59%3a56Z HTTP/1.1 ...

HTTP/1.1 200 正常 ... 这里是 //adfsserver/adfs/ls 文件夹内容

有什么问题吗?

有没有人知道类似的 ADFS 指南,它显示了这些东西如何在不同的机器上工作,而不是在单个机器上?

谢谢

【问题讨论】:

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


    【解决方案1】:

    它应该在两台服务器上工作完全相同。我已经做了很多次了。

    基本上,在您的应用上运行 FedUtil。指向 ADFS 元数据(使用现有的 STS),然后配置应用程序。作为 ADFS 上的 RP(导入在线发布的 RP 数据),然后配置一些声明。

    您可以从您的 RP 服务器浏览到 https://{your_federation_service_name}/federationmetadata/2007-06/federationmetadata.xml 吗?

    您能否从您的 ADFS 服务器浏览到您的 RP 应用程序。 (使用 https)?

    在您的 RP web.config 中,检查 federatedAuthentication 部分是否指向 ADFS。

    在 ADFS 中,双击您的 RP。检查 Identifiers 选项卡中的 url 是否正确。

    从 ADFS 服务器的事件查看器中,查看“应用程序和服务日志”/AD FS 2.0 下是否有任何错误。

    【讨论】:

    • IdP 和 SP 都可以使用 https 进行浏览。这就是我的 federatedAuthentication 的样子:<wsFederation passiveRedirectEnabled="true" issuer="https://adfsserver/adfs/ls/" realm="https://spsserver/ClaimsAwareWebAppWithManagedSTS/" requireHttps="true" />。标识符选项卡看起来也不错。两边log都没有错误
    • 我觉得奇怪的是,从 SPS 到 IdP 的 uri 中没有 wreply 参数,因此 IdP 很可能只是不知道将用户重定向到哪里。我在 Fiddler 中根本看不到任何有关“回复”URI 的信息,无论是在 URI 中还是在消息正文中
    • 如果你有 VS 并且你已经在你的开发者上安装了 WIF 和 WIF SDK。框,尝试文件/新建/网站/Claims-aware ASP.NET 网站,然后执行添加 STS/配置 RP 内容,看看会发生什么。
    • 我应该把这个新网站放在 IIS 下吗?或者我应该在向导中将localhost:51515/ClaimsAwareWebSite1 指定为应用程序URI?在 STS 步骤中,我应该选择“使用现有 STS”选项指定 adfserver 名称
    • 右键单击项目,属性/Web / 单击使用本地 IIS Web 服务器,然后创建虚拟目录按钮最适合将其放入 IIS。 Cassini(内置 Web 服务器)在 https 方面存在问题。对于添加 STS,请使用应用程序 URI 的全名,即 Server Name/App Name 而不是 localhost/App Name。然后使用现有的 STS 并指向 adfserver。
    【解决方案2】:

    问题解决了。这是因为运行了 Fiddler。

    顺便说一句,我仍然无法在 FireFox 下运行它,只有 IE 可以正常运行。 FireFox 要求提供显示弹出窗口的凭据,但在我输入正确的用户名/密码时不想对我进行身份验证。 Kerboros 适用于 Firefox,我检查了它构建示例 asp.net Web 应用程序并将其放入同一个 Web 服务器 (IdP),但看起来 adfs\ls 目录的工作方式不同,它手动处理凭据,似乎有问题通过这种处理。注意 Firefox 仅在 Windows 版本中不工作,Firefox for iOS 工作正常。

    【讨论】:

      猜你喜欢
      • 2018-02-10
      • 2015-03-05
      • 2013-07-04
      • 1970-01-01
      • 2015-06-12
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      相关资源
      最近更新 更多