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

31

É possível configurar o Apache, ou outro servidor da 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 tenham instalado um arquivo de chave (ou similar) em seu navegador e que essa chave seja 'autorizada' no lado do servidor.

ezzatron
fonte

Respostas:

17

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

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

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

Primer de autenticação mútua

Configurando o Apache para SSL

Greg Askew
fonte
8

SSL é autenticação de chave pública. Geralmente é 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 com relação à chave pública das autoridades.

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

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

larsks
fonte