Como funciona o OpenID? - Dúvidas Gerais - Portugal-a-Programar
Como funciona o OpenID?
Por softklin, 10 de Setembro de 2008 em Dúvidas Gerais
Bom, antes de encherem este tópicos com 1001 links para o que é o openID, deixem-me dizer que já andei no site oficial http://openid.net/, e na wikipédia, mas não consegui chegar a umas conclusões:
1) Alguns sites (cada vez mais) permitem o acesso com OpenID. Sei que tenho de ter um OpenId provider (por exemplo, uma conta do wordpress ou assim). Mas, a minha questão é se é possível alguém utilizar o meu endereço do wordpress para iniciar sessão num site que suporte openid, e alterar/vandalizar os conteúdos que eventualmente lá tenha, visto que esta operação apenas requer que se saiba o endereço web próprio. Resumo: como é controlada a utilização do openID?
2) Soube que posso criar o meu próprio site com o meu próprio OpenID, através de um script qualquer em PHP. Isto melhora a segurança sobre o problema que referi no ponto anterior?
Estou muito curioso em experimentar esta nova "tecnologia", mas um pouco receoso ao mesmo tempo. Espero que me possam esclarecer sobre isto
1) Assim que inseres um openid és redireccionado para o provider onde tens de pôr a password do openid. Geralmente não metes porque deves ter um cookie que faz logo login automaticamente.
2) Podes fazer delegation para o teu domínio ser o teu openid (apenas externamente, o provider continua o mesmo). Mas não é um código php, é html:
<meta http-equiv="X-XRDS-Location" content="http://myprovider.com/oid_xrds/=ve7jtb" />
Muito basicamente o OpenID é uma troca de "tokens" ou "autorizações". A ideia é muito simples: um site qualquer que suporte login por OpenID recebe o endereço (login único) e redireciona o browser do cliente para o site inserido. Do outro lado é feita uma pergunta "se aceita usar a sua conta do site X como login no site Y".
Agora na prática experimenta fazer logout da tua conta do Wordpress.com.
Depois vais ao site que utilizaste o OpenID e tenta inserir o teu endereço.
Vais ser redirecionado para o site do Wordpress.com e vai-te ser pedido para fazeres o login.
Depois o Wordpress.com redireciona-te para o site de onde vieste com um "token" que te permite ter uma sessão temporária (cookie, sessions.. etc) associada áquela conta.
Ou seja o OpenID permite que qualquer site utilize as contas dos Providers de OpenID sem que se tenha de preocupar com a segurança/manutenção dessas contas. Existem depois outros factores de segurança mas isso é mais evoluido..
Perfeitamente. Afinal o OpenID é mais simples do que estava a pensar!
Obrigado a ambos pelas vossas respostas, agora estou mais elucidado da utilização do serviço.
Uma questão, qual é a vantagem de usar este sistema num site?
A vantagem do OpenID...
Bem, as desvantagens ainda sao algumas, mas em termos de vantagens prende-se no facto de que se todos os websites usassem só precisaríamos de uma password, a do openid. Openid esse que usaríamos para login em todos os websites.
Outra vantagem prende-se na delegation, deste modo tens a tua identidade confirmada, sabes que o utilizador X é o mesmo do website X.com como tal é mesmo quem pensas que é.
A ideia não é nada má... Mas isto só funcionaria se fosse adoptado por todos...
Mas não é um risco em termos de segurança?, afinal de contas, o acesso a todos os sites está nas mão de uma organização (site)...
Não, o openid é totalmente livre... existem centenas de openid providers, o sistema está totalmente distribuído. É claro que se alguém sabe a tua password de openid pode entrar em todos os teus sites (isto num mundo perfeito), mas isso é o mesmo problema que actualmente.