Pergunta

Eu quero fazer o que myopenid faz-depois de fazer o login, você pode clicar em um botão que gera um certificado SSL;em seguida, o browser faz o download deste certificado e o armazena.Quando, mais tarde, voltar para yourid.myopenid.com o seu browser pode utilizar seu certificado armazenado para autenticação, de forma que você não precisa de uma senha.

Então minhas perguntas é o que é necessário para obter esse trabalho?Como faço para gerar certificados?Como faço para validá-los uma vez que eles recebem de volta para mim?

Minha pilha é Trilhos no Apache usando o Passageiro, mas eu não tenho muito particular.

Foi útil?

Solução

Estes são geralmente referidos como certificados do lado do cliente.

Eu, na verdade, não usei, mas uma versão modificada do tranquila-autenticação pode ser encontrado aqui aqui que parece que o seu depois.

Eu encontrei esta via Dr.Nic do post

Outras dicas

Depende do server, mas a solução mais simples que eu conheço, usando o Apache:

FakeBasicAuth

"Quando esta opção está activada, o Sujeito de Nome Distinto (DN, distinguished name) do Cliente Certificado X509 está traduzido em HTTP Basic Autorização de nome de usuário.Isto significa que o padrão do Apache métodos de autenticação podem ser usados para controle de acesso.O nome de usuário é apenas o Sujeito do Cliente Certificado X509 (pode ser determinado pela execução do OpenSSL openssl x509 comando:openssl x509 -noout -assunto -no certificado.crt).Note que a senha não é obtido do usuário..."

Não tenho certeza sobre trilhos, mas o costume REMOTE_USER variável de ambiente deve ser acessível, de alguma forma.

Se você deseja gerar certificados, você precisa fazer com que o cliente para gerar um par de chaves, e enviar-lhe, pelo menos, a chave pública.Você pode fazer isso no Firefox através de uma chamada de Javascript, é crypto.generateCRMFRequest.Eu estou supondo que não são específicas do navegador métodos disponíveis em outros navegadores também.Mas primeiro, você precisa descobrir como a emissão de um certificado, uma vez que você obter uma chave pública.

Você poderia script algo no servidor com o OpenSSL, mas ele tem suporte incorporado para o Sac, não o CRMF formato Firefox irá enviar para você.Assim que você precisa para escrever algum código para converter o CRMF para um relatório de segurança química, o que vai exigir algum tipo de DER capacidade de processamento... eu estou apenas arranhando a superfície aqui de funcionamento de uma autoridade de CERTIFICAÇÃO, mesmo para um brinquedo de aplicação, não é trivial.

SSO soluções, como o OpenId e PKI soluções de fazer uma sobreposição, e não há elegância do PKI.Mas o diabo está nos detalhes, e há boas razões para que esta abordagem tem sido em torno de um longo tempo, mas foi apenas retirado no governo e aplicações militares.

Se você estiver interessado em realizar este procedimento, siga até com algumas perguntas específicas para a plataforma que você deseja desenvolver o seu serviço de autoridade de CERTIFICAÇÃO no.

Você pode gerar um certificado no navegador do cliente usando o navegador de código específico.Ver esta pergunta

Você também pode gerar de cliente SSL certificados do lado do servidor usando o OpenSSL em Ruby (ver q esse).(Isso vai funcionar em qualquer browser sem o navegador de código específico, mas o seu servidor vai ter gerado o cliente da chave privada, o que não é o ideal para criptografia puristas.)

Independente do método utilizado para gerá-los, em seguida, você precisará configurar seu servidor web para exigir os certificados de cliente.Ver o Apache docs para um exemplo.

Eu estive trabalhando em uma solução para este problema.Eu queria fazer a mesma coisa e eu sei que muitos outros proprietários de site e quer esta funcionalidade, com ou sem um fornecedor de terceiros.

Eu criei a necessária configuração de servidor de e um plugin do firefox para lidar com a autenticação baseada em certificado.Ir para mypassfree.com para pegar o livre plugin do firefox.Envie-me um Email (link da página) para a configuração do servidor, como eu ainda não embalados ainda com um bom instalador.

Configuração do servidor Apache2 + OpenSSL + Perl (mas você poderia reescrever o perl scripts em qualquer linguagem)

Jonathan

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top