2

在过去的几天里,我一直在不知疲倦地为使用 WIF 和 ADFS 2.0 的开发设置测试环境。我遇到的问题之一是我的家庭环境只有一个 IP 地址,而且我不打算在我的主服务器上粘贴 ADFS。因此,我为 FS (idp.yyy.local) 创建了一个专用的虚拟机。

为了没有直接链接回我的网站,“yyy”指的是“dgdev”。(下图)

奇怪的是,它部分工作。这是一张详细介绍我的基础架构的图片。

在此处输入图像描述

奇怪的是,我可以在普通 HTTP 和 HTTPS 中浏览“idp.yyy.net”。我还可以完美地查看 WS-Federation 元数据。现在,我对 ADFS 很陌生,但我希望在访问http://idp.yyy.net/adfs/services/trust时,它会将我重定向到 Windows SSL 登录。相反,我收到的只是:

暂停服务


http错误503服务不可用。

我在 FS 代理和 FS 上使用相同的 SSL 证书。它的主题是我的主域名yyy.net。它有几个主题备用名称,因此我可以使用我的单个 IP:Port 使用 SSL 托管多个 IIS 网站。

CN = yyy.net
DNS Name=www.yyy.net
DNS Name=idp.yyy.net
DNS Name=idp.yyy.local
...
IP Address=192.168.1.2
IP Address=192.168.1.3
IP Address=192.168.1.4
...

有谁知道为什么我会看到 503 Service Unavailable 错误。事件查看器中没有显示任何错误。(除了 AppFabric 令人讨厌的事情,但这是我尚未触及的另一个问题

提前致谢!其实非常感谢。我已经用尽了我能想出的所有途径和想法,为什么这可能会被“破坏”?


如果有人知道如何调试这个问题,我当然会作为解决方案。我已经尝试过 IIS 失败的请求日志记录,但没有生成任何内容。ADFS 服务在哪里/什么托管?我已经看过的东西:

  • 所有 AppPool 都在运行。
  • 旧的 ADFS 1.0 Web 服务 (asmx) 可以正常访问。
  • 我可以直接访问颁发者端点……或者至少是“windowstransport”
4

1 回答 1

3

事实证明一切都一直在工作!

我花了几个小时确保正确创建了证书。然后在仍然看到 503 和 403 错误之后,我意识到我的 \Default 网站的代理服务器 AppPool 正在“ApplicationPoolIdentity”下运行 - 这实际上是用户:IIS AppPool\DefaultAppPool。

我从未授予该用户对 ADFS 证书私钥的读取权限。因此,我看到 403 Forbidden 而不是 503 的原因。将 AppPool 切换到 Network Service 后……瞧!,503 Service Unavailable。

所以现在我确信我的代理服务器和 ADFS 服务器正常工作。现在为什么我仍然看到 503 服务不可用?!?

我告诉自己无论如何都要创建一个测试应用程序。在 Visual Studio 中,我设置了一个新的 MVC 3 Web 应用程序。添加了我现有的 STS 参考。设置一个虚拟声明并更新应用程序的 FederationMetadata。向 ADFS 添加了新的依赖方。

打开我的浏览器到网络应用程序并立即成功!

> GET) https://mywebapp/
> Response-Redirect) Location header kicks me to my IdP (ADFS)
  https://idp.yyy.net/adfs/ls/?wa=wsignin1.0&wtrealm.........
> I sign-in with proper credentials
> POST) https://mywebapp/login << AWESOME!
于 2011-12-03T23:56:06.147 回答