Como o título indica, estou recebendo o seguinte erro ao tentar usar um webapp ASP.NET:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: 192.168.x.x]
Isso é do log "Aplicativo" no servidor SQL. Atualmente, tenho uma configuração em cluster (usando o Microsoft Failover Cluster), embora o segundo nó ainda não tenha sido configurado. Eu tentei configurar SPNs:
setspn -L minhacontadeserviço
Registered ServicePrincipalNames for <DN>:
MSSQLSvc/*SQL.corp.*.local:1433
MSSQLSvc/*SQL.corp.*.local
E, de fato, o SQL Server o registra corretamente de acordo com seus logs:
Message
The SQL Server Network Interface library successfully registered the Service Principal Name (SPN) [ MSSQLSvc/my.sql.fqdn ] for the SQL Server service.
No entanto, a consulta SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid ;
retorna NTLM
e não Kerberos
. Já reiniciei o servidor algumas vezes sem sucesso. O SQL Server é executado em uma conta de usuário de domínio com os privilégios de delegação apropriados.
Estou esquecendo de algo?
ATUALIZAR:
Consegui fazer com que o SQL Server usasse "Kerberos" conforme a consulta acima, mas ainda não estou tendo sorte em fazer o nível do IIS funcionar.
Isso é conhecido como o problema de "salto duplo" entre o SQL Server e o IIS. Parece que você pode não ter confiado no servidor IIS para delegação.
Aqui está uma boa lista de verificação do que fazer ao configurar o SQL Server com IIS usando Kerberos.
Aqui está um ótimo primer sobre a condição. O login anônimo é uma revelação do problema.