Pergunta

Então, atualmente estou tentando criar um provedor OpenID. Tentei usar dois pacotes de servidor OpenID baseados em Java- a multidão do Atlassian e o WSO2 Identity Server. Agora, na minha implementação, a segurança é obrigatória, o que significa usar o SSL e ter o OpenIDS baseado em HTTPS. Agora, para o WSO2 e a multidão, um grande número de sites simplesmente não funciona com os OpenIds fornecidos. Dos 20 sites testados, 8 falharam com a multidão e 10 falharam com o WSO2. Essa alta taxa de falhas não é realmente aceitável. Praticamente todos os sites que têm um problema afirmam que eles não conseguem encontrar um terminal OpenID.

Quando usei o OpenIDS sem SSL (então HTTP baseado em OpenIds) de repente, os sites eram muito mais compatíveis, com apenas dois deles falhando. Estou usando um certificado da AusCert; portanto, o problema não deve ser devido a certificados auto-sintados.

No começo, pensei que isso era apenas uma questão de haver um grande número de RPs que simplesmente não aceitavam o OpenIDS baseado em HTTPS. Tentei fazer login nos mesmos sites em que eu estava falhando com um OpenID baseado em HTTPS da Verisign, e funcionou. Olhando mais de perto para o WSO2 e a multidão, descobri que nenhum deles está completamente em conformidade com a especificação do OpenID 2.0- em particular, nenhum deles fornece um link na cabeça para um documento do XRDS para a descoberta de Yadis. Considerando que meu problema é que os sites não podem descobrir um terminal OpenID no URL que dou, parece relevante, exceto que, quando não uso o SSL, a descoberta baseada em HTML é suficiente.

Alguém tem alguma visão de onde meu problema realmente está? O documento do XRDS ausente parece ser relevante, mas pode ser apenas um arenque vermelho. Descobrir isso, se alguém souber uma boa alternativa à multidão ou WSO2, que está bem documentada, funciona bem com as especificações e é (relativamente) fácil de configurar, seria bom saber!

Foi útil?

Solução

Uma coisa a ver é que os certificados SSL de alguns fornecedores não são assinados pelas autoridades raiz que são consideradas autoritárias por alguns RPs. Certifique -se de obter seu certificado de um que todos os RPS confiam.

Se .NET for uma opção para o seu provedor, consulte o código aberto e de código aberto gratuito Dotnetopenauth biblioteca, que você pode hospedar e é usada por alguns grandes operações, como Meu espaço e netidme.com e outros. A implementação do OpenID 2.0 está concluída, ele suporta o perfil do Governo do Governo dos EUA OpenID 2.0 e foi usado para muitos testes de interoperabilidade, segurança e conformidade, e funciona com o OpenID 1.1 e 2,0 RPS, por isso provavelmente terá Boa interoperabilidade com muitos/todos os RPs. Tem um monte de Recursos de segurança adicionais que você pode simplesmente ligar (como exigir HTTPS, como você disse, é um requisito).

(Divulgação completa: escrevi dotnetopenauth.)

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