Jump to content

Archived

This topic is now archived and is closed to further replies.

bernado_pampa

Login em 2 ou mais sistemas

Recommended Posts

Olá, tenho o seguinte cenário:

Dois sistemas rodando em PHP+MySQL, em servidores diferentes, logo, em bancos diferentes, os dois tem a mesma senha, no script que cria e edita os usuários, já estão as duas conexões dos bancos. Vamos assumir os exemplos abaixo para explicar minha dúvida:

Sistema 1
http://sistema1.com/index.php (página de acesso pedindo as credenciais)
http://sistema1.com/logado.php (página depois do usuário ter se logado)

sistema 2
http://sistema2.com/index.php (página de acesso pedindo as credenciais)
http://sistema2.com/logado.php (página depois do usuário ter se logado)

Gostaria que dentro da página (http://sistema1.com/logado.php), estivesse um link para a página(http://sistema2.com/logado.php), e que não pedisse senha, pois já estaria logado no sistema1, já tentei diversas formas, mas não obtive sucesso, tentei usar o cURL também, mas não consegui. Alguém sabe como fazer isso?

Share this post


Link to post
Share on other sites

Acho que seria basicamente voce criar um link pra quem estiver logado em um dos sistemas acessar, sendo que quando fosse acessar o link o sistema faria um verificação se o usuário está logado ou autorizado(sem informar a senha ou usuario pois já teria informado antes) a acessar através do usuário e senha informado anteriormente.

 

Ob:O usuário e senha no caso estaria armazenado em session.

 

Abraço.

Share this post


Link to post
Share on other sites

Acho que seria basicamente voce criar um link pra quem estiver logado em um dos sistemas acessar, sendo que quando fosse acessar o link o sistema faria um verificação se o usuário está logado ou autorizado(sem informar a senha ou usuario pois já teria informado antes) a acessar através do usuário e senha informado anteriormente.

 

Ob:O usuário e senha no caso estaria armazenado em session.

 

Abraço.

Obrigado pela resposta Santos, mas pode me ajudar a entender como fazer isso?

 

No código, tem algo como

" if user = pass loga"

 

Como fazer com que fique o login dos 2 jeitos, exemplo se o login foi feito pelo sistema 2, e o usuario queira entrar no sistema 1, ou vice-versa.

 

Pensei que no próprio link eu poderia embutir o usuario e a senha do usuario, isso não é possível??

Share this post


Link to post
Share on other sites

Obrigado pela resposta Santos, mas pode me ajudar a entender como fazer isso?

 

No código, tem algo como

" if user = pass loga"

 

Como fazer com que fique o login dos 2 jeitos, exemplo se o login foi feito pelo sistema 2, e o usuario queira entrar no sistema 1, ou vice-versa.

 

Pensei que no próprio link eu poderia embutir o usuario e a senha do usuario, isso não é possível??

 

Obrigado pela resposta Santos, mas pode me ajudar a entender como fazer isso?

 

No código, tem algo como

" if user = pass loga"

 

Como fazer com que fique o login dos 2 jeitos, exemplo se o login foi feito pelo sistema 2, e o usuario queira entrar no sistema 1, ou vice-versa.

 

Pensei que no próprio link eu poderia embutir o usuario e a senha do usuario, isso não é possível??

O que voce já tem feito?

 

Quando o usuário logar em qualquer um dos sistemas voce armazena o login em sessões, a partir disso quando o usuário for acessar o outro sistema voce faz uma verificação se o login está gravado na sessão, se estiver gravado ele tem acesso liberado, se não é redirecionado para fazer login.

 

Abraço.

Share this post


Link to post
Share on other sites
Não utilizaria session, pois teria alguns problemas com a segurança do projeto. Logo que ao logar em um dos sistemas, passaria dados da sessions através de patch ou outro meio para o outro servidor recuperar a session ativa, e quando fosse destruir a mesma em um servidor, continuaria ativa no outro. (A não ser que eu esteja falando asneiras e não saiba que existe algum método que possa interligar os dois servidores sem dor de cabeça através de sessions).
Bom, se eu estivesse diante dessa situação, resolveria assim:
Criaria uma tabela "AUTH" em ambos servidores, com as colunas:
ID | USER | PASS | TOKEN | TIME
AUTENTICAÇÃO:
Toda vez que logar em um dos servidores - como os bancos já estão ligados no processo de inserção e modificação dos dados - criaria um novo valor em AUTH, como:
id auto-increment | admin | teste123 | (hash 32bit) | 2014-08-04 21:23:50
Desse modo, teria disponível o usuário logado, senha do mesmo, uma hash de 32 bit, podendo ser codificada com md5 - Melhor ainda seria criar uma encriptação pessoal interna no scrpit com mais hash, ou criar uma de 128 bit, e depois encriptar a mesma para md5 (o próprio PHPMYADMIN usa esse método de segurança)..
O time seria usado para expirar esse token, deletando o mesmo do banco de dados depois de 5 ou 10 min de inatividade..
EXEMPLO
AUMENTAR SEGURANÇA
Poderia integrar esse token, com as sessions, evitando que terceiros acessem no mesmo momento que o usuário com o mesmo token. A session bloquearia esse acesso.
Abraço

Share this post


Link to post
Share on other sites

 

Não utilizaria session, pois teria alguns problemas com a segurança do projeto. Logo que ao logar em um dos sistemas, passaria dados da sessions através de patch ou outro meio para o outro servidor recuperar a session ativa, e quando fosse destruir a mesma em um servidor, continuaria ativa no outro. (A não ser que eu esteja falando asneiras e não saiba que existe algum método que possa interligar os dois servidores sem dor de cabeça através de sessions).
Bom, se eu estivesse diante dessa situação, resolveria assim:
Criaria uma tabela "AUTH" em ambos servidores, com as colunas:
ID | USER | PASS | TOKEN | TIME
AUTENTICAÇÃO:

Toda vez que logar em um dos servidores - como os bancos já estão ligados no processo de inserção e modificação dos dados - criaria um novo valor em AUTH, como:
id auto-increment | admin | teste123 | (hash 32bit) | 2014-08-04 21:23:50
Desse modo, teria disponível o usuário logado, senha do mesmo, uma hash de 32 bit, podendo ser codificada com md5 - Melhor ainda seria criar uma encriptação pessoal interna no scrpit com mais hash, ou criar uma de 128 bit, e depois encriptar a mesma para md5 (o próprio PHPMYADMIN usa esse método de segurança)..
O time seria usado para expirar esse token, deletando o mesmo do banco de dados depois de 5 ou 10 min de inatividade..
EXEMPLO
AUMENTAR SEGURANÇA
Poderia integrar esse token, com as sessions, evitando que terceiros acessem no mesmo momento que o usuário com o mesmo token. A session bloquearia esse acesso.
Abraço

 

 

Obrigado pela ajuda leomarriel, mas do seu jeito eu teria que alterar o código para procurar pelo token, se eu entendi bem rs, e achei mais complicado.

 

 

 

O que voce já tem feito?

 

Quando o usuário logar em qualquer um dos sistemas voce armazena o login em sessões, a partir disso quando o usuário for acessar o outro sistema voce faz uma verificação se o login está gravado na sessão, se estiver gravado ele tem acesso liberado, se não é redirecionado para fazer login.

 

Abraço.

 

Santos, eu entendi o que disse, e tentei fazer com o código abaixo:

 

 

<form action="http://sistema2.com" method="post" name="formlogin">

<input title="usuario" type="hidden" name="Usuario" id="Usuario" maxlength="150" value="<?php print $_SESSNION['login_usuario'] ?>" />
<input title="Senha" type="hidden" name="Senha" id="Senha" value="<?php print $_POST['senha_usuario'] ?>" />
<button type="submit" value="Sistema2</button>
</form>

 

Assim os dados que são armazenados ($_SESSION e $_POST), já estão prontos para usar nesse form que só é visível em um botão, eu testei e está OK, porém gostaria de saber se do modo que estou fazendo é correto e seguro.

 

Obrigado!

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.