SPNs e delegação de Kerberos

3

Eu gostaria de verificar minha compreensão. Este é um cenário totalmente hipotético abaixo, pois atualmente estou estudando para uma certificação.

Eu tenho um pool de aplicativos do IIS com um site básico, que acessa dados de um back-end do SQL. Eu quero configurar a autenticação Kerberos e, portanto, a delegação.

A identidade do AppPool que está executando o site é IISApp01 e tem um SPN definido como HTTP/IISSRV01.serverfault.local .

Agora, tudo bem e bem, mas no Active Directory eu defino as opções de delegação, no objeto de computador que hospeda o pool de aplicativos do IIS ou a conta de usuário IISApp01 , que é a identidade do AppPool. Quem irá realmente delegar as credenciais para minha caixa de SQL? Então, como eu adicionaria os serviços à lista restrita de serviços que estou permitindo a delegação?

Obrigado!

    
por PnP 26.05.2013 / 20:08

1 resposta

3

Versão resumida: você define opções de delegação para uma entidade de segurança (ou seja, usuário ou computador) que acabou de configurar um SPN para na guia Delegação desse diretor em Usuários e Computadores do AD.

Versão mais longa: não, não, não!

Você não deseja configurar a autenticação do Kerberos e, portanto, . Estes são conceitos separados, independentes um do outro.

Você pode autenticar usando o Kerberos sem precisar delegar nada. Na verdade, fora da caixa, o IIS 7 do Windows 2008 e posterior vêm com uma configuração padrão, o que significa que qualquer caixa de membro de domínio, onde seu nome de host real é usado, será capaz de executar a autenticação Kerb. Veja "Autenticação no modo kernel" e spoilers! Você precisará desativá-lo para que seu cenário funcione como você descreveu *.

A Delegação de Curb exige que um principal seja usado para encerrar um salto autenticado por Kerberos e, em seguida, executar outro, em nome do principal de segurança solicitante original (o usuário).

Voltar para a solução:

Então, para PC - > IIS - > SQL, você precisaria mapear quem cada processo está executando como:

PC (usuário) - > IIS (Conta do Pool de Aplicativos (IISApp01)) - > SQL (conta de serviço ("SQLService"))

Nesse cenário, cada conta deve ser uma conta de usuário de domínio e, para simplificar, você precisa desabilitar a Autenticação do Modo Kernel nas opções de Autenticação Integrada do Windows do site em questão.

Em seguida, você precisa identificar o SPN usado em cada salto e garantir que ele seja registrado em cada um deles:

PC (usuário) não importa

Camada do IIS: SETSPN -S IISApp01 http / name.used.by.client (isso nunca é automático)

Camada SQL: SETSPN -S SQLService mssql / name.used.by.iis.app: 1433 (isso pode ter sido automático)

então, você deve ter uma guia de Delegação disponível para IISApp01, na qual você pode especificar que IISApp01 é confiável para delegação restrita (Search, escolha SqlService e escolha o SPN apropriado registrado em relação ao SqlService).

Há um site / programa chamado DelegConfig disponível, que ajuda a mapear essas coisas para você.

* não é estritamente verdadeiro; existem muitas soluções.

    
por 27.05.2013 / 07:50