Windows 是否可以在azure web app中实现kerberos身份验证?

Windows 是否可以在azure web app中实现kerberos身份验证?,windows,azure,azure-active-directory,azure-web-app-service,Windows,Azure,Azure Active Directory,Azure Web App Service,我们有一个托管在本地Windows服务器(IIS)服务器上的应用程序 现在我在azure上创建了一个windows服务器,并为其构建了一个web应用程序。该应用程序需要使用kerbrose协议通过windows服务器(DC)对用户进行身份验证,但我无法从Microsoft方面找到任何相关文档 上述查询是否可以在azure web app中实现?根据您是否必须允许访问与本地Active Directory关联的用户,有几种方法 您应该看看这项服务: 它将在Azure中提供一个Active Dire

我们有一个托管在本地Windows服务器(IIS)服务器上的应用程序

现在我在azure上创建了一个windows服务器,并为其构建了一个web应用程序。该应用程序需要使用kerbrose协议通过windows服务器(DC)对用户进行身份验证,但我无法从Microsoft方面找到任何相关文档


上述查询是否可以在azure web app中实现?

根据您是否必须允许访问与本地Active Directory关联的用户,有几种方法

您应该看看这项服务:

它将在Azure中提供一个Active Directory,您可以在其中对VM进行域加入,然后使用Kerberos作为身份验证协议(应与prem上的工作方式相同)

另一个选项是在虚拟网络中创建一个新的Active Directory(通过创建AD的1或2个小型Windows Server VM)

如果您使用的是Active Directory域服务,那么您可以通过同步或联合on-prem AD将其扩展到on-prem Active Directory

这里有关于这些场景的更多信息:

对于Azure应用程序服务-Web应用程序,您可以将其连接到Azure Active Directory(AAD),并使用混合身份模型允许来自on-prem AD的用户访问它:


希望这能对你有所帮助,这是一个相当复杂的话题。不,这是不可能的。Windows身份验证适用于内部部署。对于Azure网站,Azure Active Directory显然是最好的选择。从AD同步到Azure Active Directory也很容易设置

如果您仍然希望绝对使用Windows Auth并在Azure上托管您的网站,您可以创建Windows VM并在那里托管您的网站。然后,您需要将虚拟机连接到AD。为此,两个虚拟机必须位于同一网络中。因此,如果您的虚拟机是本地的,那么您需要创建一个虚拟机


如需了解更多信息,请遵循本指南,本指南也对此进行了讨论

如果您打算将承载网站的虚拟机加入一个域,那么正如其他人所提到的,这是不可能的

然而,在Azure网站中执行Kerberos身份验证本身并不特别困难,但它确实需要手动实现。Windows在加入域的计算机上以本机方式为您处理所有这些问题,IIS公开了这些功能。由于您无法加入域,因此必须手动完成所有繁重的工作,并自行请求和验证票证

这涉及到在Active Directory中创建服务帐户并保持帐户密码同步。一旦您有了,您需要向浏览器指示它需要协商身份验证,这是通过401响应上的
WWW-Authenticate:congregate
头完成的。如果配置为发送票据,客户端将在后续响应的
授权:协商YII…
请求头中发送票据。此时,您需要将协商头和原始服务帐户密码放入可以验证Kerberos票据的内容中。Windows SSPI将为您做到这一点,但这是一种痛苦。我创建了一个库,可以为您执行此操作:。YMMV提供最适合您的服务


综上所述,切换到更现代的身份验证机制(如OAuth/OpenIDConnect/SAML)可能更为有益。

我们有一些限制,无法使用Azure AD。web应用程序应该使用VM AD对用户进行身份验证。是否可能?如果您在VM上创建新的广告,那么您可以将您的web服务器(IIS)VM加入其中(只要存在网络连接)。如果要使用应用程序服务,则必须将在VMs上创建的新广告与AzureActiveDirectory连接,并将应用程序服务应用程序连接到该AAD。无法将应用程序服务中的应用程序直接连接到广告服务器。只能通过AAD。这实际上不是真的。Windows Auth不仅仅用于内部部署。I这很难做到,但这并不意味着这是不可能的。如果我使用Azure ad,那么可以使用Azure web app进行karbrose(SSO)身份验证?感谢您回答我们现在正在使用Azure ad,并且已经断开了我们的ad域服务器的连接,因此仍然可以吗?根据此文档“”它提到需要使用AD域服务器,但我们现在不想使用AD DS。在这种情况下,您没有能够发出Kerberos票证的Active Directory服务器。这是Kerberos身份验证的一个要求。在这种情况下,选项是启动AAD,重新打开本地AD服务器,或切换到现代身份验证。