ColdFusion RDS和NTLM集成认证问题

时间:2009-01-21 17:22:41

标签: iis coldfusion ntlm jrun

我似乎无法获得启用NTLM身份验证且仍然可以使用RDS的神奇组合。如果我只保留匿名身份验证,RDS工作正常 - 只要我在网站范围内启用它,RDS就会失败(这是预期的)。这就是我所做的:

  • 这是Windows XP SP2和ColdFusion 8,Eclipse + Adob​​e插件
  • 在IIS管理器中,右键单击默认网站,然后选择“属性”
  • “目录安全性”选项卡,单击“匿名访问和身份验证控制的编辑”按钮
  • “身份验证方法”弹出窗口,取消选中匿名访问,并选中“集成Windows身份验证”(所有其他检查也为空)。
  • 单击“确定”,“确定”,并覆盖所有子站点的设置,以便使用NTLM身份验证“保护”整个站点。
  • 返回IIS管理器,右键单击CFIDE虚拟目录,选择Properties
  • 目录安全性选项卡,编辑身份验证方法。取消选中“集成Windows身份验证”并检查匿名访问。点击OK,OK并测试:
C:\>wget -S -O - http://localhost/CFIDE/administrator/
--2009-01-21 10:11:59--  http://localhost/CFIDE/administrator/
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Server: Microsoft-IIS/5.1
  Date: Wed, 21 Jan 2009 17:12:00 GMT
  X-Powered-By: ASP.NET
  Set-Cookie: CFID=712;expires=Fri, 14-Jan-2039 17:12:00 GMT;path=/
  Set-Cookie: CFTOKEN=17139032;expires=Fri, 14-Jan-2039 17:12:00 GMT;path=/
  Set-Cookie: CFAUTHORIZATION_cfadmin=;expires=Mon, 21-Jan-2008 17:12:00 GMT;path=/
  Cache-Control: no-cache
  Content-Type: text/html; charset=UTF-8
Length: unspecified [text/html]
Saving to: `STDOUT'

    ... html output follows ...

到目前为止,CFIDE目录和至少一个子目录似乎没有NTLM身份验证。所以我启动Eclipse并尝试建立RDS连接。不幸的是,我只是得到一个拒绝访问的消息。进一步调查看来Eclipse似乎正在尝试与/CFIDE/main/ide.cfm进行通信 - 公平地说,再次看出IIS正在做什么,取出可靠的wget:

C:\>wget -S -O - http://localhost/CFIDE/main/ide.cfm
--2009-01-21 10:16:56--  http://localhost/CFIDE/main/ide.cfm
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 401 Access Denied
  Server: Microsoft-IIS/5.1
  Date: Wed, 21 Jan 2009 17:16:56 GMT
  WWW-Authenticate: Negotiate
  WWW-Authenticate: NTLM
  Content-Length: 4431
  Content-Type: text/html
Authorization failed.

其他地方已经记录的一个潜在的挂起是主目录和ide.cfm页面实际上并不存在于磁盘上。 IIS配置为将所有.cfm文件传递给JRun,JRun配置为将ide.cfm映射到RDS servlet。为了强迫IIS变得更加合理,我删除了一个主目录并在磁盘上清空了ide.cfm文件,希望它能解决身份验证问题,但它没有任何区别。

我可以做的解决方法是将整个站点保留为匿名访问,然后只启用特定的应用程序文件夹以使用NTLM集成身份验证,但是我必须完成数百种可能的Web应用程序。 。呸。

请帮助!!!

1 个答案:

答案 0 :(得分:2)

回答你自己的问题有些奇怪,但我终于解决了。

  • 可以为整个网站启用NTLM集成身份验证
  • 必须为 CFIDE 虚拟目录
  • 启用匿名访问
  • 必须为 JRunScripts 虚拟目录
  • 启用匿名访问

一旦 CFIDE JRunScripts 启用了匿名访问,RDS和通过Eclipse进行调试就像魅力一样。