Autenticação básica do IIS 7.5 e validação do Active Directory

3

Não sou especialista em IIS ou Active Directory, portanto, quero apresentar um cenário aqui e ver se o que queremos realizar é viável.

Temos um aplicativo hospedado no Windows Server 2008 R2 com uma série de serviços da Web expostos como uma API por meio do IIS. Esses serviços serão chamados por vários sistemas de integração externos. Se configurarmos os serviços do IIS para usar a autenticação Básica, o IIS validará as credenciais que passamos para ele no Active Directory por padrão? Essa é uma configuração especial ou isso não é possível? Gostaríamos que essas credenciais fossem validadas contra o AD, por isso recebemos o token / principal em retorno, que pode ser enviado para o aplicativo subjacente nesse servidor.

Obrigado antecipadamente. Qualquer ajuda é apreciada.

    
por jturinetti 21.12.2011 / 17:44

4 respostas

3

A autenticação básica funcionará muito bem para autenticação no AD - é autenticada no banco de dados de contas locais do servidor IIS; para um membro do domínio, que inclui os domínios do Active Directory na floresta à qual ingressou.

Você não receberá nenhum tipo de ticket do kerberos em retorno - a autenticação básica simplesmente inclui a senha no cabeçalho dos pedidos enviados ao servidor, e o servidor faz o mesmo com a senha - retornando o recurso solicitado ou um 401 error .. mas se você está procurando por identificação de usuário dentro do aplicativo web no IIS, então essa informação (qual usuário / domínio ele autenticou como) deve estar disponível para o código.

Os navegadores manterão a senha digitada na memória durante a vida útil da sessão, para que você fique coberto para solicitações subsequentes para esse servidor, mas não para qualquer acesso a outros sistemas ou serviços.

Há informações sobre como configurar a autenticação básica, incluindo a configuração do domínio padrão e o prompt que os usuários recebem, aqui .

    
por 21.12.2011 / 18:13
1

Ok, então uma resposta foi aceita, mas eu vou dizer em geral:

Não use o Basic.

Se houver uma pergunta para a qual credenciais Básicas com domínio parecem ser a resposta correta, quase sempre não é.

Use a autenticação integrada.

O

Basic permite que um desenvolvedor da Web mal-intencionado aprenda as credenciais do AD de um usuário e, então, o fim do jogo.

Integrado permite ao usuário autenticar que eles são quem eles dizem que são, e permite o uso da Delegação Restrita para limitar o que um desenvolvedor web pode fazer com o token. Ele não expõe diretamente o nome de usuário e a senha à interceptação (se o SSL estiver configurado incorretamente (ou seja, não-), o que acontece todo o tempo) e não permitirá que alguém com acesso de gravação ao compartilhamento do servidor da Web escreva aplicativos da web simples que interceptem credenciais.

    
por 22.12.2011 / 03:31
1

Se o IIS tiver as credenciais do usuário, elas poderão ser usadas para criar um token primário para esse usuário. O IIS pode usar esse token e representar esse usuário para acessar recursos e aplicativos em outros servidores.

A identidade da máquina e do pool de aplicativos do IIS (conta de serviço) precisaria ser configurada para o nível apropriado de representação ou delegação para agir em nome de um usuário com seu token, mas esse cenário é bastante comum no IIS Mundo /ASP.Net.

Se você executasse delegação restrita - mencionada por Tristan - é realmente possível criar um token de nível de delegação completo para usuários para acesso a serviços específicos em máquinas específicas (essa é a parte restrita) e você não precisa realmente da senha. Isso é mais seguro se você tiver um mecanismo de autenticação externo (como um cartão inteligente) e somente sua identidade for passada para o aplicativo da web. Isso elimina a necessidade de transmitir senhas além dos limites de segurança.

    
por 22.12.2011 / 04:44
0

Se você deseja usar o AD para autenticar usuários da web, é necessário usar a autenticação integrada.

A Autenticação Básica HTTP não é segura, não está protegida e é quebrada de forma trivial para qualquer pessoa que tenha acesso ao tráfego de rede.

Seria altamente inseguro para o Windows permitir que as pessoas usassem credenciais do AD para autenticação básica, o que tornaria essas credenciais automaticamente indignas de confiança.

    
por 21.12.2011 / 17:50