Tenho varias aplicações web legadas em servidores distintos com logins distintos (uma por cpf, outra por matricula), também tem-se autentificação ldap, por certificação digital, por biometria e por OpenID o que precisa-se é que quando efetue o login em uma app o login nas outras seja também efetuado ou seja tenha um login unico, e possa também gerenciar uma sessão unica.
Alguém sabe uma boa API que atenda grande parte desses requisitos pois não tenho tempo hábil para implementar do zero.
Pesquisei e achei algumas como:
OpenAM
Java Open Single Sign-On
Apache Shiro
Porem não sei qual dessas possa atender a maior parte dos requisitos.
Alguém conhece alguma boa que tenha já implementado grande parte dos requisitos?
o josso é muito bom aqui na minha empresa usamos ele em varias aplicações e é bem tranquilo, se logo na aplicação de um cliente em ambiente de desenvolvimento e acesso outro ambiente do mesmo cliente ele ve que é a mesma sessão e não pede outro login.
sabe me dizer se ele funciona em bradcast ou tenho que ter uma app master para fazer os logins? preciso de algo em broadcast… Se tem varias apps e qualquer app que é feito o login é feita a autentificação nas demais…
na verdade você que mapeia isso, ele tem um xml onde você mapeia todas as aplicações no caso ele vira uma aplicação separada da sua podendo até ser rodado em outro servidor, e na configuração dele você aponta as aplicações por exemplo:
é que na verdade o single sign-on é uma aplicação separada ele é uma aplicação web que você vai rodar separado das suas aplicações ele é apenas um login separado você vai integrar com suas aplicações não sei direito como configura isso mas que eu lembre tem uma tabela no teu banco onde tu diz pra onde ele deve mandar após cada login e na tua aplicação tem uma verificação da resposta do single sign-on
e sempre que acessarem a sua aplicação e não tiver feito login ele manda pro single sign-on por exemplo:
o usuario acessa pela primeira vez a aplicação http://localhost:8080/aplicacao1/ sem nunca ter logado, ele automaticamente redireciona pra aplicação de login no caso http://localhost:9090/single/ para o usuario logar após ele logar ele é mandado pra http://localhost:8080/aplicacao1/ normal e se ele acessar http://localhost:8080/aplicacao2/ e tiver logado no single sign-on e você configurar para permitir ele acessar a aplicacao1 e aplicacao2 ele ja vai estar logado e vai navegar normal na aplicacao1 e na aplicacao2
o login é uma pagina em jsf normal você pode customizar, pode criar constantes pra cada aplicação e quando por exemplo a 1 é por cpf você renderiza o campo de cpf, quando for a 2 você renderiza um campo de email, é customizavel essa parte do login, você vai criar uma pagina de login usando facelets, no jboss seam você tem o componente fragment:
<s:fragment rendered="#{bean.aplicacao2}">
<h:inputText name=“email” id=“email” value=“email”/>
</s:fragment>
[/code]
entendeu você customiza como quiser tem total controle sobre a pagina de login a unica diferença é que você vai rodar separado da sua aplicação.
cara eu não tenho nenhuma aplicação com o josso são todas do meu trabalho e como são privada nao posso ti passar mas olha no site do josso deve ter algo sobre o funcionamento e a interação entre as aplicações.
Fazer isso em 2 sites no mesmo domínio (mas por ex: subdomínios diferentes) é fácil porque um site pode ler o cookie do outro, ai basta eles usarem o mesmo cookie e compartilhar a tabela de users no banco de dados
No meu caso a complicação era que são 2 domínios diferentes, acabei fazendo com que um site faça uma requisição JSONP para o outro (que possui os formulários de login), pra pegar o valor do cookie
To procurando mais fontes pq esse site não explica muito bem… não tenho tempo de implementar agora… preciso ver apenas se atende os requisitos e se ele é melhor que a OpenAM e o Apache Shiro…
bem no meu caso JSON não da, pois no meu caso o cliente vai ter n servidores com n projetos distintos implementados em n linguagens com n formas de autentificação tem ate biometria no meio…