Authentication IIS 8.5:更改url子路径的身份验证模式
我们有一个客户端intranet web应用程序,在启用Windows身份验证的IIS 8.5上作为远程代理运行。现在,我们需要禁用Windows身份验证,并在URL子路径Authentication IIS 8.5:更改url子路径的身份验证模式,authentication,iis,windows-authentication,iis-8.5,Authentication,Iis,Windows Authentication,Iis 8.5,我们有一个客户端intranet web应用程序,在启用Windows身份验证的IIS 8.5上作为远程代理运行。现在,我们需要禁用Windows身份验证,并在URL子路径/api/上启用匿名身份验证,以使此路径中的所有数据在客户端intranet域中公开可用 实际上,chensformers()的解决方案听起来很有希望。但是,我还没有运行它,因为我缺少一个节声明 如何配置IIS 8.5以实现此目的?首先,您需要将api文件夹转换为应用程序,即右键单击文件夹=>转换为应用程序。在中央窗格中将其转
/api/
上启用匿名身份验证,以使此路径中的所有数据在客户端intranet域中公开可用
实际上,chensformers()的解决方案听起来很有希望。但是,我还没有运行它,因为我缺少一个节声明
如何配置IIS 8.5以实现此目的?首先,您需要将api文件夹转换为应用程序,即右键单击文件夹=>转换为应用程序。在中央窗格中将其转换为应用程序后,双击身份验证=>选择匿名身份验证并启用它。禁用所有其他身份验证模式
附言-您可以不转换为应用程序而尝试。我还没有测试过,所以不确定它是否只是一个文件夹。经过长时间的尝试,我自己找到了答案。答案有两个方面:
C:\Windows\System32\inetsrv\config
中的文件applicationHost.config
中,我将以下行从Deny
更改为Allow
:
<section name="access" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
重新启动IIS管理器和服务器后,应该为子路径覆盖主域中的windows身份验证(/api
,在我的情况下),并且子路径中的每个URL都应该公开可用appplictionHost.config的正确内容(无论出于何种原因),并且其中的所有更改都不会生效(另请参见@MeanGreen)
我通过安装并使用Notepad2 x64解决了这个问题。此后,上述变更立即生效并生效
windowsauthentication
后面有一个管理站点外,该站点的其余部分是anonymousAuthentication
对我来说,这很有效:
web.config
我不必重新启动IIS管理器或服务器。不幸的是,没有物理
api
文件夹,因为这只是反向代理(url重写模块)指向的(Django)web应用程序中的url路径。如果我将应用程序的物理路径设置为与主路径相同的路径(c:\inetpub\wwwroot
),则会出现以下内部服务器错误:无法添加“mimeMap”类型的重复集合项,且唯一键属性“fileExtension”设置为“.appcache”
哪一个是要设置的正确路径?关于(2):32位应用程序和64位应用程序可以看到不同版本的C:\Windows\System32
,其中applicationHost.config
位于该版本下。因此,请始终使用64位应用程序打开此文件。使用普通记事本或任何x64文本编辑器都可以。
<location path="api">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>