我正在开发Asp.NET Core Web应用程序,并按照官方的Microsoft指南在其上启用了Windows身份验证:
身份验证有效,但是有一件事我不清楚。如果我使用Windows域中的计算机通过浏览器访问该网站,则根据访问方式,我有两种不同的行为:
我现在的问题是:
答案 0 :(得分:1)
Windows身份验证是一种允许自动登录的身份验证方案,它基于属于同一域的所有内容:身份提供者(AD),Web服务器和客户端(本地计算机)。根据定义,公共网站不是域的一部分,因此Windows Auth(或至少其自动登录功能)在这种环境中无法运行。
总体上,您仍然可以在技术上使用Windows Auth或AD。例如,Azure Active Directory旨在在分布式环境中工作。但是,您必须手动进行身份验证(通过传统的用户名和密码或通过OAuth流)。您无法使用公共网站自动登录。
编辑
对不起,我最初没有充分了解您的问题。虽然它不会改变我的答案,但确实需要更多说明。从技术上讲,这台机器在域上,它的朝外立面是 not 。这就是为什么可以通过主机名访问它,但不能通过实际的Web域访问它的原因。就是说,您绝对是将域中的计算机暴露于整个Internet的“疯狂”。即使您可以起作用,打开的漏洞的安全风险也远远超出了自动登录等简单功能。您的内部网络应该是内部,并且应该立即从域 中删除此计算机。