首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DNS的IIS Windows身份验证

问使用DNS的IIS Windows身份验证
EN

Server Fault用户
提问于 2018-01-13 20:56:33
回答 1查看 1.7K关注 0票数 2

我问了这个问题,关于堆栈溢出的研究,但我意识到这可能是一个更好的地方张贴它。

我在Windows 2016上使用IIS 10。

我已经成功地将IIS配置为在访问站点时使用Windows身份验证。当使用服务器的IP地址或主机名时,这种方法工作得很好。

但是,我将在同一服务器上托管几个站点,因此我尝试配置一些DNS记录以指向服务器的IP (A records),并通过在IIS绑定中为该站点定义主机名,在浏览器中使用该名称时,我成功地连接到了正确的站点。

但出于某种原因,这破坏了Windows身份验证。当将用户名和密码放入浏览器登录框时,它只是无法进行身份验证。

我读了这个答案,但它没有提供一个解决方案(https://stackoverflow.com/questions/15366649/iis-windows-authentication-weirdness)

我试着用不同的方式编写用户名:

代码语言:javascript
复制
username
domain\username
domain.local\username

但没什么区别。

我看过此页,但它似乎不适用。

建议我尝试使用以下命令:adsutil set w3svc/EnableReverseDNS FALSE关闭IIS中的反向DNS检查。为了做到这一点,我必须添加角色IIS 6管理兼容性。

有人知道怎么做吗?

EN

回答 1

Server Fault用户

发布于 2018-01-13 23:07:13

我假设它是一个域成员,因为你发布的用户名语法。

如果您已经使用了A记录,那么为了使Kerberos身份验证成功,您需要为每个名称定义一个服务主体名称,该名称属于目标站点的进程标识。(如果您将其放在默认的ApplicationPoolIdentity、LocalService、NetworkService或Local中,则将是机器帐户。)

有一个副作用,您可以利用它来测试理论,即IE做CNAME的记录分辨率和查询SPN的已解析目标名称.

因此,如果您将fakehost.mydomain作为MACHINENAME的CNAME,IE将解析MACHINENAME,然后使用HTTP/MACHINENAME作为它正在查找的SPN --这意味着您不必创建任何额外的SPN。只要所有站点的标识都是机器,就可以工作。

现在,奇怪的是,Kerb身份验证不应该是唯一的选择,我感兴趣的是,当Kerb无法检索到票证时,NTLM回退根本不起作用,因此这里可能存在其他一些设置或复杂性,使事情变得复杂。据猜测,这就是扩展保护可能会有问题的地方。或者,auth设置不再作为故障排除/设置的一部分进行协商(这意味着,如果Kerb失败,则需要协商Kerb和NTLM )。

最后,虚线主机名的奇妙之处在于,它们倾向于调用代理--如果您在IE中定义了代理,则禁用它以进行测试。

超级--最后,它不太可能与IIS的DNS视图有关,因此您可以卸载IIS管理6(IIS Management 6)--您在IIS中无法配置或破坏任何东西,都需要使用遗留兼容性来修复它。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/892080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档