JavaFree.org | RubyOnBr.org

Single Sign On

Acompanhar Single Sign On 9 posts, 5 participantes

Avatar pcassiano 154 posts

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,

 
Avatar Neves 162 posts

Também estou muito interessado neste tópico!

 
Avatar Akita On Rails 298 posts

OpenID

http://www.bencurtis.com/archives/2007/03/rails-openid-and-acts-as-authenticated/

 
Avatar ESCOZ 37 posts

Olá Cassiano,

Não sei como a google funciona, mas serviços de SSO, em geral funcionam assim:
Digamos q vc tenha isto:

No mundo de sistemas operacionais, normalmente este tipo de coisa é feito com servidores Kerberos. Na web, normalmente este “redirecionamento” é feito utilizando iframes.

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
http://www.mapia.com.br

 
Avatar pcassiano 154 posts

Já foi para o meu del.icio.us ;-)

Forte abraço,

 
Avatar ESCOZ 37 posts

Concordo com o Akita:
OpenID é uma ótima sugestão hoje em dia, principalmente agora que todas as grandes empresas como yahoo, ms, e google vao adotar o serviço.

 
Avatar Neves 162 posts

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…

 
Avatar Lucas Húngaro 2 posts

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.

 
Avatar Akita On Rails 298 posts

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.