Troubleshooting di SPN Kerberos duplicati

Published 09 January 08 03:08 PM | claudiog 

Qualche volta capita in un ambiente Active Directory, che un Service Principal Name (SPN), necessario al corretto funzionamento dell'autenticazione Kerberos, risulti duplicato.

Questo è percepibile sia da eventi di errore 11 del KDC in Event Viewer, che dal malfunzionamento di Kerberos, per quanto spesso questo secondo aspetto sia meno visibile. Infatti molti servizi che possono usare Kerberos (ad esempio SQL Server), eseguono automaticamente il "fall back" a NTLM se il primo non funziona.

Mentre con SetSPN.exe è possibile ottenere l'elenco degli SPN associati ad un account (user o computer), oltre a registrare/eliminare SPN arbitrari, con la stessa utility non si riesce a cercare in AD chi ha registrato uno specifico SPN.

Alcuni articoli della KB di Microsoft consigliano di cercare con LDP o ADSIedit, ma la cosa risulta poco agevole, perchè i tools non sono installati di default e sono abbastanza scomodi e pericilosi in mani non esperte. Per fortuna ci viene in aiuto una (poco) nota utility di Windows Server 2003, DSquery.exe.

Se per esempio stiamo cercando chi ha registrato il SPN "MSSQLSvc/srvdb01.dom.local:1433", possiamo eseguire:

dsquery * -filter "(servicePrincipalName=MSSQLSvc/srvdb01.dom.local:1433)" -attr dNSHostName -l

Ottenendo la lista degli hostname che hanno registrato quell'SPN. Ma un SPN può essere associato anche ad uno user (Service Account), quindi può essere più utile interrogare AD così:

dsquery * -filter "(servicePrincipalName=MSSQLSvc/srvdb01.dom.local:1433)" -attr name,dNSHostName -l

è anche possibile usare lo stesso principio per trovare tutti gli SPN di un certo tipo, ad esempio:

dsquery * -filter "(servicePrincipalName=MSSQLSvc/*)" -attr name,dNSHostName -l

Variando il prefisso, si possono trovare specifici servizi. Provate con 'DNS/*', 'NtFrs-*', 'SMTP*','LDAP/*'.

Individuato il secondo incomodo (ad esempio lo user Administrator), è possibile rimuovere il SPN "di troppo" con:

SetSpn -D MSSQLSvc/srvdb01.dom.local:1433 Administrator

Anonymous comments are disabled

About claudiog

MCSA, MCSE, MCT su NT/2000/2003 MCTS: Windows Server 2008 Active Directory/Application Platform/Network Infrastructure