Compartilhar autenticação com outras aplicações

Eu tenho o seguinte cenário… tenho uma api para fazer login (spring boot)
e tenho outras aplicações java, algumas com jsf, preciso fazer com que o
usuário ao se autenticar na api de login seja reconhecido como autenticado pelas outras apis.
isso para evitar que o usuario tenha que fazer login para cada aplicação.
alguém tem uma ideia de como implementar isso ?

Vc pode trabalhar com tokens, passando na URL qdo o sistema for acessado, com isso seu sistema irá recuperar esse token e criar a sessão. Outra forma seria usar cookie (https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Headers/Set-Cookie - veja ).

Veja a diferença entre os dois: https://www.section.io/engineering-education/cookie-vs-token-authentication/

1 curtida

muito obrigado pela resposta, no caso essa solução de enviar um token no header
serviria para continuar autenticado em outras aplicações do tipo jsf que trabalha com sessões ?
as outras aplicações teriam que decodificar o token certo ?

Irá depender de como vc irá transitar o token, no caso se outras aplicações pertencerem ao mesmo SSO não há necessidade de decodificar, apenas persistir o token e o session.

1 curtida

não entendi o SSO, quanto ao persistir o token seria gravar em um BD ? como seria para gerenciar esse token quando ele expirasse, de qualquer forma já me deram bastante ideias

Desculpe, o SSO é o conceito de Single Sign On, funciona para autenticação por meio de um LDAP ou AD. No caso de persistir, não digo por um BD, mas como mencionado pelo amigo a cima, pela URL.

ah sim entendi, é porque fiquei pensando quando o usuário recarregar a pagina ele perderia o token kkk,
mas entendi o que quis dizer