OpenID provider usando o Apache SSL / FakeBasicAuth?

1

Gostaria de criar um provedor de OpenID para o nosso grupo, que podemos usar para fazer login em serviços compatíveis com OpenID internos e externos (por exemplo, stackoverflow.com).

Todos os nossos usuários têm certificados X.509 emitidos por nossa CA, então acho que a solução ideal usaria isso para autenticá-los (ou seja, o provedor não deve pedir uma senha). Talvez o Apache FakeBasicAuth trabalhe para extrair o nome de usuário do certificado da conexão SSL?

Qual seria o melhor software para usar? Open Source preferido.

    
por user5746 11.06.2009 / 15:50

2 respostas

1

OK, consegui este trabalho usando:

Na configuração do Apache, eu fiz isso (nota: não usei o FakeBasicAuth no final):

SSLCACertificateFile /.../myOrgCA.pem
SSLVerifyClient require
SSLVerifyDepth  1
SSLOptions      +StdEnvVars

Edite action_default () para redirecionar o usuário para o endereço https, se acessado via http simples. O endereço http simples é o que você publica no seu <link rel="openid.server"> .

Altere getLoggedInUser () para extrair o nome de usuário de $_SERVER['SSL_CLIENT_S_DN_Email'] .

Você também pode editar o doAuth () para fornecer o endereço de e-mail ou o nome completo de maneira semelhante.

Tenha certeza de como isso é seguro, mas o usamos em sites de valor relativamente baixo (fóruns, rastreadores de bugs, etc.).

    
por 15.06.2009 / 16:47
0

Eu mesmo considerei a mesma coisa, e a melhor resposta que consegui encontrar depois de uma pesquisa foi exatamente como você sugeriu - Apache executando mod_ssl, FakeBasicAuth para identificar o usuário e depois extraí-lo para identificar o usuário e validá-lo.

    
por 12.06.2009 / 09:37