Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A autenticação é o processo de identificar quem é o cliente, normalmente para determinar se o cliente está qualificado para acessar um recurso. O protocolo HTTP dá suporte à autenticação como um meio de negociar o acesso a um recurso seguro.
A solicitação inicial de um cliente normalmente é uma solicitação anônima, não contendo nenhuma informação de autenticação. Os aplicativos de servidor HTTP podem negar a solicitação anônima, indicando que a autenticação é necessária. O aplicativo de servidor envia cabeçalhos WWW-Authentication para indicar os esquemas de autenticação com suporte. Este artigo descreve vários esquemas de autenticação para HTTP e discute seu suporte no WCF (Windows Communication Foundation).
Esquemas de autenticação HTTP
O servidor pode especificar vários esquemas de autenticação para o cliente escolher. A tabela a seguir descreve alguns dos esquemas de autenticação comumente encontrados em aplicativos do Windows:
| Esquema de autenticação | Descrição |
|---|---|
| Anônimo | Uma solicitação anônima não contém nenhuma informação de autenticação. Anônimo é equivalente a conceder a todos acesso ao recurso. |
| Básico | A autenticação básica envia uma cadeia de caracteres codificada em Base64 que contém um nome de usuário e uma senha para o cliente. Base64 não é uma forma de criptografia e deve ser considerada a mesma que enviar o nome de usuário e a senha em texto claro. Se um recurso precisar ser protegido, considere fortemente o uso de um esquema de autenticação diferente da autenticação básica. |
| Resumo | A autenticação por resumo é um esquema de desafio-resposta que é destinada a substituir a autenticação básica. O servidor envia uma cadeia de caracteres de dados aleatórios chamada nonce para o cliente como um desafio. O cliente responde com um hash que inclui o nome de usuário, a senha e a nonce, entre outras informações. A complexidade que essa troca apresenta e o hash de dados tornam mais difícil roubar e reutilizar as credenciais do usuário com esse esquema de autenticação. A autenticação digest requer o uso de contas de domínio do Windows. O realm digest é o nome de domínio do Windows. Portanto, você não pode usar um servidor em execução em um sistema operacional que não dá suporte a domínios do Windows, como o Windows XP Home Edition, com autenticação Digest. Por outro lado, quando o cliente é executado em um sistema operacional que não dá suporte a domínios do Windows, uma conta de domínio deve ser especificada explicitamente durante a autenticação. |
| NTLM | A autenticação do NTLM (Gerente de LAN do NT) é um esquema de resposta de desafio que é uma variação mais segura da autenticação Digest. O NTLM usa credenciais do Windows para transformar os dados de desafio em vez do nome de usuário e senha não codificados. A autenticação NTLM requer várias trocas entre o cliente e o servidor. O servidor e quaisquer proxies interveniente devem dar suporte a conexões persistentes para concluir a autenticação com êxito. |
| Negociar | Negociar a autenticação seleciona automaticamente entre o protocolo Kerberos e a autenticação NTLM, dependendo da disponibilidade. O protocolo Kerberos será usado se ele estiver disponível; caso contrário, NTLM será tentado. A autenticação Kerberos melhora significativamente o NTLM. A autenticação Kerberos é mais rápida que a NTLM e permite o uso de autenticação mútua e delegação de credenciais para computadores remotos. |
| Windows Live ID (Identificação Windows Live) | O serviço HTTP do Windows subjacente inclui autenticação usando protocolos federados. No entanto, os transportes HTTP padrão no WCF não dão suporte ao uso de esquemas de autenticação federados, como o Microsoft Windows Live ID. O suporte para esse recurso está disponível no momento usando a segurança da mensagem. Para obter mais informações, consulte Federação e Tokens Emitidos. |
Escolher um esquema de autenticação
Ao selecionar os possíveis esquemas de autenticação para um servidor HTTP, alguns itens a serem considerados incluem o seguinte:
Considere se o recurso precisa ser protegido. O uso da autenticação HTTP requer a transmissão de mais dados e pode limitar a interoperabilidade com clientes. Permitir acesso anônimo a recursos que não precisam ser protegidos.
Se o recurso precisar ser protegido, considere quais esquemas de autenticação fornecem o nível de segurança necessário. O esquema de autenticação padrão mais fraco discutido aqui é a autenticação Básica. A autenticação básica não protege as credenciais do usuário. O esquema de autenticação padrão mais forte é a autenticação Negotiate, resultando no protocolo Kerberos.
Um servidor não deve apresentar, por exemplo, nos cabeçalhos WWW-Authentication), qualquer esquema que ele não esteja preparado para aceitar ou que não proteja adequadamente o recurso protegido. Os clientes são livres para escolher entre qualquer um dos esquemas de autenticação que o servidor apresenta. Alguns clientes adotam um esquema de autenticação fraco ou o primeiro esquema de autenticação na lista do servidor.