Windows Admin Center 基于资源的委派因 KRB_AP_ERR_MODIFIED 错误而停止工作

Windows Admin Center 基于资源的委派因 KRB_AP_ERR_MODIFIED 错误而停止工作

我们的 WAC 安装 SSO(通过基于资源的委派)上周因未知原因停止工作,这让我很抓狂。当尝试在 WebUI 中连接到托管客户端(其中任何一个)时,WAC 服务器上会记录以下事件:

A Kerberos error message was received:
 on logon session 
 Client Time: 
 Server Time: 19:6:29.0000 11/29/2021 Z
 Error Code: 0x29 KRB_AP_ERR_MODIFIED
 Extended Error: 0xc00000bb KLIN(0)
 Client Realm: 
 Client Name: 
 Server Realm: DOMAIN.COM
 Server Name: HTTP/accounting-02-m.domain.com
 Target Name: HTTP/[email protected]
 Error Text: 
 File: onecore\ds\security\protocols\kerberos\client2\kerbtick.cxx
 Line: 128d
 Error Data is in record data.

相应的错误 0x29 也记录在目标 KDC 上。

用户能够正常访问 WAC WebUI,而相同用户也能够通过远程 PowerShell 访问 WAC 之外的目标计算机。当 WAC 中的目标计算机被拒绝访问且系统提示输入凭据时,手动输入我的凭据即可访问。WAC 服务器上的 WebUI 直接允许按预期通过 SSO 访问目标计算机。这排除了权限问题,似乎指向了双跳委派问题。

网络流量捕获显示了我自己访问 WAC$ 机器的 TGS-REQ/REP,然后我看到目标机器服务(即 HTTP/accounting-02-m.domain.com)的 TGS-REQ,其中 KRB-OPTION 为“constrained-delegation:True”,后跟 KRB5KRB_AP_ERR_MODIFIED 的 KRB-ERROR...

我检查了示例机器的委派并且它看起来符合预期:

Path Owner                    Access  
---- -----                     ------ 
     BUILTIN\Administrators   DOMAIN\WAC$ Allow

我确保服务器/目标和 DC 之间的安全通道正常运行(无论如何我都会重置机器密码)

PS C:\> Test-ComputerSecureChannel
true

我检查 SPN 问题:

PS C:\> setspn -L accounting-02-m Registered ServicePrincipalNames for CN=ACCOUNTING-02-M,OU=Workstations,OU=Domain Computers,DC=domain,DC=com:
WSMAN/ACCOUNTING-02-M
WSMAN/ACCOUNTING-02-M.domain.com
TERMSRV/ACCOUNTING-02-M
TERMSRV/ACCOUNTING-02-M.domain.com
RestrictedKrbHost/ACCOUNTING-02-M
HOST/ACCOUNTING-02-M
RestrictedKrbHost/ACCOUNTING-02-M.domain.com
HOST/ACCOUNTING-02-M.domain.com

PS C:\> setspn -Q HTTP/accounting-02-m
Checking domain DC=domain,DC=com

No such SPN found.

我相信 SPN 映射应该考虑 HOST->HTTP 等价性:

host=alerter,appmgmt,cisvc,clipsrv,browser,dhcp,dnscache,replicator,eventlog,eventsystem,policyagent,oakley,dmserver,dns,mcsvc,fax,msiserver,ias,messenger,netlogon,netman,netdde,netddedsm,nmagent,plugplay,protectedstorage,rasman,rpclocator,rpc,rpcss,remoteaccess,rsvp,samss,scardsvr,scesrv,seclogon,scm,dcom,cifs,spooler,snmp,schedule,tapisrv,trksvr,trkwks,ups,time,wins,www,http,w3svc,iisadmin

我习惯klist purge -li 0x3e7在任何测试之前清除机器票。

WAC 服务器是 Win2019,服务以“网络服务”运行,KDC 是 Win2019,客户端是 Win10 和 Win2012R2/2016/2019 的混合。所有涉及的机器(KDC、服务器、目标)上的时间增量最大为 1 秒。我们有一个域林。

我怀疑是 KB5008380 造成的,因为 KDC 上记录了以下错误:

During TGS processing, the KDC was unable to verify the signature on the PAC from WAC$. This indicates the PAC was modified.

但是在域中的任何地方都找不到注册表项(也没有在 KDC 上安装的更新)。

根据我对 Kerberos RFC 的理解,要么由于传输中的票证被更改而导致校验和失败(不太可能),要么由于安全通道问题或 SPN 配置错误导致服务无法解密票证,但所有这些看起来都配置正确。

我遗漏了什么?什么地方坏了?

答案1

好吧,事实证明 KB5007206 是罪魁祸首,尽管最初的说明中没有提到潜在的问题......我不想冒 OOB 更新的风险,因此在 DC 上卸载 KB5007206 解决了这个问题。

相关内容