【发布时间】:2017-06-05 16:48:29
【问题描述】:
我正在 ColdFusion 11 中设置一个简单的 REST 服务。Web 服务器是 Windows Server 2012R2 上的 IIS 8.5。
需要保护此 REST 服务以防止未经授权的用户访问/写入数据。暂时只有一个授权用户,所以我希望尽可能简单地进行身份验证/授权。我最初的想法是使用 HTTP BASIC Authentication。
这是 REST 服务的设置:
源目录:C:\web\site1\remoteapi\ REST 路径:库存
为了实现这一点,我在 IIS 中配置了 REST 服务的源目录,只授权一个用户,禁用匿名身份验证,并启用基本身份验证。
当我直接在浏览器中调用源目录(即http://site1/remoteapi/inventory.cfc?method=read)时,我会看到基本身份验证对话框。
但是,当我尝试请求 REST 路径 (http://site1/rest/inventory/) 时,我完全没有受到挑战。
如何在 REST 路径上实现 HTTP BASIC 身份验证?
【问题讨论】:
-
确实没有答案,但我认为问题在于 IIS 安全性设置在文件夹
C:\web\site1\remoteapi\但 REST 路径实际上是//site1/rest/inventory/中并不存在IIS 领域。所以身份验证挑战没有发生。我不认为你可以在 IIS 中创建一个虚拟目录来解决这个问题,因为这会在 ColdFusion 之前捕获请求。您可以将 IIS 安全性移至 Web 根目录并尝试一下吗?否则,我唯一的另一个想法是使用 ColdFusion 处理挑战(让它发送 401),但我更希望 Web 服务器来完成。 -
@Miguel-F 是的,这也是我的假设。我希望 Web 服务器也对用户进行身份验证。我正在研究一种在 CF 中处理身份验证的方法...
标签: rest authentication iis coldfusion