Compreensão da autenticação HTTP
A autenticação é o processo de identificação de se um cliente é elegível para aceder a um recurso. O protocolo HTTP suporta a autenticação como forma de negociar o acesso a um recurso seguro.
O pedido inicial de um cliente é normalmente um pedido anónimo, não contendo qualquer informação de autenticação. As aplicações do servidor HTTP podem negar o pedido anónimo enquanto indicam que a autenticação é necessária. A aplicação do servidor envia WWW-Authentication cabeçalhos para indicar os esquemas de autenticação suportados. Este documento descreve vários esquemas de autenticação para HTTP e discute o seu apoio na Windows Communication Foundation (WCF).
Esquemas de autenticação HTTP
O servidor pode especificar vários esquemas de autenticação para o cliente escolher. A tabela seguinte descreve alguns dos esquemas de autenticação geralmente encontrados em Windows aplicações.
| Regime de Autenticação | Description |
|---|---|
| Anónimo | Um pedido anónimo não contém nenhuma informação de autenticação. Isto equivale a dar a todos o acesso ao recurso. |
| Básica | A autenticação básica envia uma cadeia codificada Base64 que contém um nome de utilizador e uma palavra-passe para o cliente. A Base64 não é uma forma de encriptação e deve ser considerada a mesma que enviar o nome de utilizador e a palavra-passe em texto claro. Se um recurso precisar de ser protegido, considere fortemente a utilização de um esquema de autenticação diferente da autenticação básica. |
| Digerir | A autenticação digesta é um esquema de resposta a desafios que se destina a substituir a autenticação básica. O servidor envia uma série de dados aleatórios chamados de nonce ao cliente como um desafio. O cliente responde com um haxixe que inclui o nome de utilizador, senha e nonce, entre informações adicionais. A complexidade que esta troca introduz e o hashing de dados dificultam o roubo e reutilização das credenciais do utilizador com este esquema de autenticação. A autenticação digestiva requer a utilização de Windows contas de domínio. O reino da digestão é o nome de domínio Windows. Portanto, não é possível utilizar um servidor em execução num sistema operativo que não suporte domínios Windows, como Windows XP Home Edition, com autenticação Digest. Inversamente, quando o cliente funciona num sistema operativo que não suporta domínios Windows, uma conta de domínio deve ser explicitamente especificada durante a autenticação. |
| NTLM | A autenticação do NT LAN Manager (NTLM) é um esquema de resposta a desafios que é uma variação mais segura da autenticação Digest. A NTLM utiliza credenciais Windows para transformar os dados do desafio em vez do nome de utilizador e palavra-passe não codificados. A autenticação NTLM requer múltiplas trocas entre o cliente e o servidor. O servidor e quaisquer proxies intervenientes devem suportar ligações persistentes para completar com sucesso a autenticação. |
| Negotiate | Negociar a autenticação seleciona automaticamente entre o protocolo Kerberos e a autenticação NTLM, dependendo da disponibilidade. O protocolo Kerberos é utilizado se estiver disponível; caso contrário, a NTLM é julgada. A autenticação kerberos melhora significativamente na NTLM. A autenticação kerberos é simultaneamente mais rápida do que a NTLM e permite o uso de autenticação mútua e delegação de credenciais para máquinas remotas. |
| ID ao vivo Windows | O serviço HTTP Windows subjacente inclui a autenticação utilizando protocolos federados. No entanto, os transportes HTTP padrão em WCF não suportam a utilização de esquemas de autenticação federado, como o Microsoft Windows Live ID. O suporte a esta funcionalidade encontra-se atualmente disponível através da utilização da segurança da mensagem. Para mais informações, consulte a Federação e os Tokens emitidos. |
Escolher um esquema de autenticação
Ao selecionar os potenciais esquemas de autenticação para um servidor HTTP, alguns itens a considerar incluem:
Considere se o recurso precisa de ser protegido. A autenticação HTTP requer a transmissão de mais dados e pode limitar a interoperabilidade com os clientes. Permitir o acesso anónimo a recursos que não precisam de ser protegidos.
Se o recurso precisar de ser protegido, considere quais os esquemas de autenticação que proporcionam o nível de segurança necessário. O esquema de autenticação padrão mais fraco aqui discutido é a autenticação básica. A autenticação básica não protege as credenciais do utilizador. O regime de autenticação padrão mais forte é a autenticação negocial, resultando no protocolo Kerberos.
Um servidor não deve apresentar (nos cabeçalhos WWW-Authentication) qualquer esquema que não esteja disposto a aceitar ou que não proteja adequadamente o recurso protegido. Os clientes são livres de escolher entre qualquer um dos esquemas de autenticação que o servidor apresenta. Alguns clientes padrão de um esquema de autenticação fraca ou o primeiro esquema de autenticação na lista do servidor.