Nosso SSO de instalação do WAC (via delegação baseada em recursos) parou de funcionar na semana passada por motivos desconhecidos e está me deixando louco. O seguinte evento é registrado no servidor WAC ao tentar se conectar a um cliente gerenciado (qualquer um deles) na WebUI:
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.
O erro correspondente 0x29 também é registrado no KDC de destino.
O acesso ao WAC WebUI funciona bem para usuários e o PowerShell remoto para máquinas de destino fora do WAC também funciona para os mesmos usuários. Quando o acesso é negado à máquina de destino no WAC e as credenciais são solicitadas, inserir manualmente minhas credenciais permite o acesso. O WebUI diretamente no servidor WAC permite usá-lo como pretendido para acessar as máquinas de destino via SSO. Isso exclui problemas de permissão e parece apontar para um problema de delegação de salto duplo.
Uma captura de tráfego de rede mostra o TGS-REQ/REP para eu acessar a máquina WAC$ e então vejo o TGS-REQ para o serviço da máquina de destino (ou seja, HTTP/accounting-02-m.domain.com) com KRB- OPÇÃO "delegação restrita: True", seguida do KRB-ERROR para KRB5KRB_AP_ERR_MODIFIED...
Verifiquei a delegação para uma máquina de amostra e parece como o esperado:
Path Owner Access
---- ----- ------
BUILTIN\Administrators DOMAIN\WAC$ Allow
Certifiquei-me de que o canal seguro está funcionando entre o servidor/destino e o DC (eu redefino a senha da máquina de qualquer maneira)
PS C:\> Test-ComputerSecureChannel
true
Eu verifico se há problemas de 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.
Acredito que o mapeamento SPN deve cuidar da equivalência 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
Eu uso klist purge -li 0x3e7
para limpar bilhetes de máquina antes de qualquer teste.
O servidor WAC é Win2019, serviço executado como "Serviço de Rede", os KDCs são Win2019 e os clientes são uma mistura de Win10 e Win2012R2/2016/2019. O delta de tempo é no máximo 1s em todas as máquinas envolvidas (KDC, Servidor, Destino). Temos uma floresta de domínio único.
Suspeitei do KB5008380 devido a este erro registrado no KDC:
During TGS processing, the KDC was unable to verify the signature on the PAC from WAC$. This indicates the PAC was modified.
Mas não foi possível encontrar a chave do registro em nenhum lugar do domínio (nem a atualização instalada nos KDCs).
Do meu entendimento dos RFCs do Kerberos, a soma de verificação falha devido a um tíquete alterado em trânsito (improvável) ou o serviço não pode descriptografar o tíquete devido a um problema de canal seguro ou configuração incorreta de SPN, mas todos parecem configurados corretamente.
O que estou perdendo aqui? O que está quebrado?
Ok, acontece que o KB5007206 é o culpado, mesmo que as notas iniciais não mencionem o possível problema ... não estou arriscando a atualização OOB, então desinstalar o KB5007206 nos DCs resolveu o problema.