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/accounting-02-m.domain.com@DOMAIN.COM 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-選項“約束委託:真”,後跟 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 秒。我們有一個單一的域森林。
由於在 KDC 上記錄了此錯誤,我懷疑 KB5008380:
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 配置錯誤,服務無法解密票證,但所有這些看起來都已正確配置。
我在這裡想念什麼?什麼壞了?
好吧,事實證明 KB5007206 是罪魁禍首,即使最初的註釋沒有提到潛在的問題……我沒有冒著 OOB 更新的風險,所以在 DC 上解除安裝 KB5007206 解決了這個問題。