Single Sign On
|
|
Olá a todos. Gostaria de receber sugestões sobre como criar/implementar uma espécie de Single Sign On para os meus sistemas. Veja: o Google tem diversos sistemas, porém é possível acessá-los usando uma única conta. É isso que quero: dar aos meus sistemas a habilidade de serem acessados através de uma única conta. Como isso pode ser feito? Bancando o Nelson Rubens: OK, OK, eu não quero criar nada “do tamanho dos sistemas do Google”. Quero apenas aprender o “modelo”, o know-how da coisa. Sugestões? Forte abraço, |
|
|
Também estou muito interessado neste tópico! |
|
|
OpenID http://www.bencurtis.com/archives/2007/03/rails-openid-and-acts-as-authenticated/ |
|
|
Olá Cassiano, Não sei como a google funciona, mas serviços de SSO, em geral funcionam assim: - Quando C1 conecta a S2, S2 informa C1 q ele deve se autenticar usando S1.
Se vc entrar no site do google analytics, por exemplo, vc pode ver que eles abrem um IFRAME com a janela para logar no serviço da google, e esta é a URL da pagina dentro do iframe: https://www.google.com/accounts/ServiceLoginBox?service=analytics Veja como eles informam qual serviço vc está logando. E como está tudo abaixo de google.com, eles já tem o seu cookie com o identificador do usuário, então eles sabem que é você que está entrando. Não é simples fazer algo assim, porém. Existe bastante encriptação de dados, chaves compartilhadas, e tudo mais. Espero que esteja compreensível. :) Abraços, Eduardo Scoz |
|
|
Já foi para o meu del.icio.us ;-) Forte abraço, |
|
|
Concordo com o Akita: |
|
|
A idéia de usar openID é interessante, mas no meu caso preciso de um SSO interno, para uma extranet, onde eles mesmos irão criar as contas. Mas minha dúvida é como manter a informação entre vários sites de que o usuário já está logado? Existe cookie multi-host? O que devo me preocupar quanto a segurança, etc… |
|
|
Uma das estratégias é utilizar um servidor CAS (Central Authentication Service) que, a grosso modo, armazena as informações de autenticação de forma centralizada e expõe uma interface para o desenvolvedor. Um servidor conhecido é o JA-SIG, com o qual você pode interagir através do RubyCAS-Client, que também pode se comunicar com o RubyCAS-Server. |
|
|
Tecnicamente LDAP, CAS são as soluções mais maduras e tal. Mas se você não precisar de todos os bells and whistles, fazer um servidorzinho OpenID é bastante fácil, e depois criar aplicações integradas a OpenID no Rails também é fácil. Mas é a velha história: depende. De repente sua empresa já tem um ActiveDirectory (que implementa LDAP-3), daí faz sentido integrar pra não ter que duplicar sua base de usuários, por exemplo. |

