跳到内容

在Active Directory域上启用Windows集成身份验证

本指南提供了在Web门户上使用组托管服务帐户(gMSA)配置Windows集成身份验证(Kerberos/NTLM)的说明。

由于每个公司的网络和架构具有独特性,我们无法对因遵循此文档而产生的问题提供支持。它满足使用Windows集成身份验证的Web门户的技术要求,但实施由您自行负责。

域名配置

活动目录环境必须支持 Kerberos 或 NTLM 身份验证。

设置托管服务帐户 (gMSA)

安装Web门户服务并使用它运行一个 域名托管服务账户 而不是域管理员帐户。

先决条件

  • 活动目录架构级别: Windows Server 2012 或更晚(gMSA所需)
  • 至少需要一个域控制器运行 Windows Server 2012 或更晚
  • KDS根密钥已创建(一次性设置)
  • 会员资格 域管理员 账户操作员 创建账户

创建KDS根密钥(如果尚未创建)

在提升的 PowerShell 会话中运行于域控制器上:

终端窗口
Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))

这使得根密钥立即可用。

创建 gMSA

使用 New-ADServiceAccount :

终端窗口
New-ADServiceAccount `
-Name "WebPortalSvc" `
-DNSHostName "WebPortalSvc.domain.local" `
-PrincipalsAllowedToRetrieveManagedPassword "YourServerGroup" `
-Enabled $true
  • 姓名 gMSA 账户名称
  • DNS主机名 账户的 FQDN
  • 允许检索管理密码的主要负责人 计算机/组被允许使用此 gMSA

授予管理权限(可选/根据需要)

默认情况下,gMSA没有特殊权限。

授予域级访问权限(可选):

终端窗口
Add-ADGroupMember -Identity "Domain Admins" -Members "WebPortalSvc$"

授予本地管理员/登录权限(如有需要):

终端窗口
Add-ADGroupMember -Identity "Administrateurs" -Members "WebPortalSvc$"

重要:尾部 $ 在AD中需要gMSA帐户引用。

重启要求

在继续和安装/使用服务帐户之前,需要重启。还要刷新策略。

在目标服务器上安装 gMSA

在每个将使用 gMSA 的服务器上运行:

终端窗口
Install-ADServiceAccount -Identity "WebPortalSvc"

测试安装:

终端窗口
Test-ADServiceAccount -Identity "WebPortalSvc"

配置服务以使用 gMSA

  1. 授予 作为服务登录 到账户:

    • 打开组策略编辑器
    • 前往: 计算机配置 > Windows 设置 > 安全设置 > 本地策略 > 用户权限分配
    • 打开 作为服务登录
    • 添加 DOMAIN\WebPortalSvc$
  2. 确保Web门户文件/文件夹上的NTFS权限:

    • 右键单击应用程序文件夹/可执行文件 > 属性 > 安全性
    • 添加 DOMAIN\WebPortalSvc$
    • 至少授予 读取和执行 完全控制 如果您的部署需要的话
  3. 配置服务身份:

    • 账户: DOMAIN\WebPortalSvc$
    • 密码: 留空

配置服务主体名称 (SPN)

该网络服务必须在Kerberos中注册。

在域控制器上运行:

终端窗口
setspn -A HTTP/webserver.domain.com DOMAIN\WebPortalSvc

用您的服务器 FQDN 和帐户替换。

如果Web门户托管服务器使用HTTP.sys,请针对计算机帐户注册SPN:

终端窗口
setspn -S HTTP/portal.hiyoko.com:8008 WIN-HLBO0AGABB7
setspn -S HTTP/portal.hiyoko.com:8009 WIN-HLBO0AGABB7

在客户端机器上配置网络

将域加入的客户端放入正确的子网:

  1. 识别正确的网络接口
  2. 删除现有静态IP(如果不正确)
  3. 分配静态IP、子网掩码和与DNS/DC子网匹配的默认网关
  4. 设置 DNS 服务器地址

重要:为域控制器和客户端分配静态IP地址。在此上下文中,安全策略同步要求机器处于同一子网。

允许所需的客户端连接

UDP/TCP 53 可能会被阻止,从而阻止 DNS 查询。

故障排除步骤

检查DNS服务器状态

在域控制器上:

终端窗口
net start DNS

验证DNS服务是否正在运行。

验证DNS服务器IP

在客户端:

终端窗口
ipconfig /all

确认DNS服务器IP与域控制器IP匹配。

测试基本连接性

在客户端:

终端窗口
ping <DC_IP_Address>

如果 ping 失败,请排查网络/防火墙路由。

检查防火墙规则

确保客户端和服务器允许入站/出站的UDP/TCP 53。

使用 nslookup 进行测试

终端窗口
nslookup domain.com <DC_IP_Address>

如果这有效,默认 DNS 服务器可能配置错误或无法访问。

查看事件查看器

在域控制器上检查与DNS相关的错误。

配置Mozilla Firefox以进行Windows集成身份验证

Firefox 默认不使用 WIA。

步骤 1:受信任的协商 URI

  1. 打开Firefox
  2. 前往 关于:配置
  3. 接受警告
  4. 设置 network.negotiate-auth.trusted-uris 到您的域名,例如:
    • intranet.domain.com, domain.com

步骤 2:受信任的 NTLM URIs

设置 网络.自动-ntlm-认证.受信任的-uris 到相同域名列表。

步骤 3:Kerberos 委派 URI(如有必要)

设置 network.negotiate-auth.delegation-uris 例如:

  • domain.com

步骤 4:重启浏览器

重启Firefox以应用更改。

为Windows集成身份验证配置Google Chrome

Chrome使用Windows/系统认证设置。

  1. 下载 Chrome ADMX 模板:
  2. 复制 chrome.admx chrome.adml 到:
    • C:\Windows\PolicyDefinitions
    • C:\Windows\PolicyDefinitions\zh-CN
  3. 打开 gpedit.msc
  4. 前往:
    • 计算机配置 > 管理模板 > Google > Google Chrome
  5. 启用内部网站点的集成身份验证并配置受信任站点:
    • intranet.domain.com, domain.com
  6. 应用政策:
终端窗口
gpupdate /force

其他方法

在这种情况下,其他方法(Chrome命令行开关和标志)没有成功。

配置 Microsoft Edge 以进行 Windows 集成身份验证

Edge使用Microsoft Edge策略和Windows安全区域设置。

在内网区域启用自动登录

  1. 打开 Internet 选项
  2. 安全 标签 > 本地内联网 > 自定义级别
  3. 用户认证 ,设置:
    • 仅在内部网区域自动登录

通过 GPO 配置 Edge 策略

步骤 1:安装 Edge ADMX 模板
  1. 下载:
  2. 复制 msedge.admx msedge.adml 到:
    • C:\Windows\PolicyDefinitions
    • C:\Windows\PolicyDefinitions\zh-CN
步骤 2:编辑策略设置
  1. 打开 gpedit.msc
  2. 前往:
    • 计算机配置 > 管理模板 > Microsoft Edge
  3. 启用:
    • 配置 Microsoft Edge 可以委托凭据的服务器列表
  4. 配置受信任的服务器:
    • intranet.domain.com, domain.com
步骤 3:应用策略
终端窗口
gpupdate /force

其他方法

在这种情况下,其他方法(Edge 命令行开关和标志)没有成功。

集成身份验证故障排除

检查 Kerberos 票证

在Windows客户端上:

终端窗口
klist

您应该看到一个票据用于 HTTP/webserver.domain.com .

清除缓存的凭据/票证

终端窗口
klist purge

验证 SPN 注册

在域控制器上:

终端窗口
setspn -L serviceaccount

确保 HTTP/webserver.domain.com 被列出。

在Firefox中调试Kerberos

以日志模式启动Firefox:

终端窗口
set NSPR_LOG_MODULES=negotiateauth:5
set NSPR_LOG_FILE=%USERPROFILE%\Desktop\firefox.log
start firefox.exe

评论 firefox.log 用于身份验证错误。

检查 Chrome 策略

在 Chrome 中,打开:

chrome://policy

确保 AuthServerWhitelist AuthNegotiateDelegateWhitelist 被应用。

检查边缘策略

在 Edge 中,打开:

edge://policy

确保 AuthServerWhitelist AuthNegotiateDelegateWhitelist 被应用。