Autenticação de chave pública ou similar em HTTP / HTTPS?

30

É possível configurar o Apache, ou algum outro servidor web, para usar algum tipo de autenticação de chave pública?

O que eu gostaria, idealmente, é poder dar aos usuários acesso a um site sem a necessidade de um nome de usuário / senha, desde que eles tenham instalado um arquivo de chaves (ou similar) em seu navegador, e que essa chave seja 'autorizado' no lado do servidor.

    
por ezzatron 10.02.2011 / 02:25

2 respostas

17

O que você está procurando é geralmente chamado de autenticação mútua. Normalmente, existe um certificado de servidor para "autenticação de servidor", o que significa que ele valida a identidade do servidor para o cliente.

Observe que, ao buscar esse esquema, você tem um desafio adicional de renovação de certificado para os clientes.

Aqui está um exemplo de como é feito para um produto:

Primer de autenticação mútua

Configurando o Apache para SSL

    
por 10.02.2011 / 02:40
8

SSL é autenticação de chave pública. Geralmente ele é usado para autenticar a identificação do servidor remoto ... o servidor apresenta um certificado, assinado pela chave privada de uma autoridade de certificação, e seu navegador o verifica em relação à chave pública das autoridades.

Também é possível usar SSL para autenticar a identidade do cliente. Nesse caso, você configura seu navegador para apresentar um certificado de cliente quando ele se conecta a um servidor remoto, e o servidor remoto autenticará o certificado em relação a alguma autoridade.

Tudo isso é relativamente fácil e bem suportado pela maioria dos servidores da web. Este documento discute como configurar o Apache. A declaração SSLRequire faz a maior parte do trabalho pesado para esse tipo de configuração.

    
por 10.02.2011 / 02:41