Como funciona a delegação OpenID na Parte Confiante? Já as especificações mudou recentemente?

StackOverflow https://stackoverflow.com/questions/826014

  •  05-07-2019
  •  | 
  •  

Pergunta

Considere este cenário. Eu tenho o meu próprio site, que eu uso como meu identificador, mas eu uso um provedor de terceiros OpenID (no meu caso yahoo), como descrito aqui , para efectuar o login terceira parte confiável (RP) sites como stackoverflow e sourceforge.

Ele parecia ser um movimento sábio:

  • Não estou trancado em com um provedor de OpenID, uma vez que, se / quando yahoo não irá oferecer o serviço mais, ou vai começar a cobrar por ele, ou eu não confio neles anymore, eu posso mudar de fornecedor sem dor
  • Eu não tenho o ônus econômico, administrativo e de segurança de instalação e manutenção de um provedor de OpenID no meu servidor

Pergunta

Como é a RP suposto trabalho? O meu entendimento é que ele deve usar o identificador I fornecer, e usar o provedor (yahoo) apenas para autenticação (e não para identificação). Isso está correto? Fez algo mudança recentemente? Só para ficar claro, quero dizer que a minha identificação deve ser

http://www.mysite.com/myPreferredUrl

e não

https://me.yahoo.com/myYahooId (que é onde o meu site "redirecionamento "a autenticação, conforme descrito no site acima)

Nota lateral

Eu estou fazendo esta pergunta também porque as coisas parece estar quebrado agora (eles eram ok, há alguns meses). Se eu tento fazer o login em stackoverflow, eu escrevo o URL mysite.com, estou corretamente "redirecionada" para o site do yahoo, em que eu entrar, ele me pergunta se eu gostaria de "continuar stackoverflow", eu digo Sim, "redirecionamentos" e no site stackoverflow eu vejo "Este é um OpenID não vimos antes", ele mostra o meu ID yahoo e eu estou realmente trancado para fora!

É um bug, ou estou faltando alguma coisa?

PS: se você está se perguntando como eu estou escrevendo esta pergunta, é porque em uma das muitas máquinas que eu uso, um navegador ainda tem um cookie válido ....

EDIT: A resposta de Andrew Arnott abaixo sugeriu uma maneira de corrigir o meu problema (ou seja, a mudança para um fornecedor diferente). Mas eu ainda estou interessado em alguns detalhes: o que mudou a partir OpenID 1,1 a 2,0, cerca de delegação? Porque nas especificações foi escolhido para deixar o "break" provedor da delegação? Quanto mais você explicar, melhor as chances de ter sua resposta aceite.

Foi útil?

Solução

Eu acredito que a resposta de Andrew é bastante precisa. A única coisa que posso acrescentar é um pouco sobre como a especificação v2.0 acabou do jeito que aconteceu, permitindo que o provedor para optar por não trabalhar com a delegação. Eu acho que um dos motivadores foi a seleção de identidade dirigiu-servidor, em que o usuário apenas fornece "yahoo.com" (ou clique no botão Yahoo), e depois a sua ID escolhido vem de volta do servidor na resposta id_res. Isso também permite que o servidor para fazer coisas como oferta uma escolha de qual ID para enviar (como Yahoo faz) ou enviar um identificador único para cada RP (como o Google faz).

Isso também significa que toda a informação necessária está em uma resposta id_res, o que significa que a RP não precisa estado loja de seu pedido checkid, a fim de processar a resposta. Na verdade, um fornecedor pode enviar uma resposta id_res diretamente para o RP sem a RP iniciá-la com um pedido checkid em tudo.

Um provedor v1.x estava completamente inconsciente quando a delegação estava acontecendo à noite. Este projeto impediu um provedor de mesmo optando por não delegação de apoio, mas também fez para alguns problemas de interface do usuário; seria perguntando se você queria para fornecer o "joe.coolprovider.com" ID quando você estava realmente usando o seu delegado "joesmith.org" ID.

Assim, não há a troca. Delegação ainda é possível, de modo que a esperança era de que os usuários que realmente querem delegação (que, vamos enfrentá-lo, vai ser ofuscado pelo número de usuários desses grandes sites) pode escolher provedores que oferecem os recursos de que necessitam. (Em outras palavras, deixar que o mercado combatê-lo.)

Outras dicas

Eu não acho que o Yahoo suporta OpenID delegação. Ou seja, StackOverflow e outros RPs podem executar a descoberta em seu próprio identificador e configurar o pedido de delegação de autenticação corretamente, mas o Yahoo pode ser a escolha (sem dúvida contrária à especificação) para enviar uma afirmação de identidade para o seu próprio identificador em vez de um dado por a RP.

As especificações não foram alterados a partir OpenID 1,1 a 2,0. As especificações não sugerem ou endossa Yahoo! 'S comportamento, e só Yahoo pode autoritariamente comentário no seu raciocínio.

StackOverflow delegação ainda funciona. Yahoo quebrou-lhe, ao que parece. Eu sugiro que você aproveitar o que a delegação comprou você alterando quem você delegar autenticação para. www.myopenid.com por exemplo suportes delegação. Se você mudar o seu próprio identificador para apontar para isso, você deve ser capaz de voltar para StackOverflow como seu antigo auto novamente. :)

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