Garantindo que uma conta d e usuário logue apenas uma vez
Prezados,
Atualmente em minha empresa passamos por uma transação no que tange à segurança, sendo que em nosso sistema (web), devemos garantir que uma conta de usuário faça logon apenas uma única vez. Para tanto, utilizamos um token, sendo que para validar no sistema, o usuário deve fornecer usuário, senha, e conectar este token à sua porta USB.
Entretanto, estamos estudando tecnologias que possam ser compatíveis com nossa necessidade de modo que não sejamos refens deste token, uma vez que para o cliente utilizá-lo ele deve executar um instalador e realizar algumas configurações no Active X.
Caso alguem saiba uma maneira de realizar isso, por favor esponha, pois todas as que eu pesquisei até agora não atenderam as necessidades.
até agora, já verifiquei outros tipos de Token como o OTP e verifiquei a utilização de Membership, mas este último trabalha em conjunto com Active x.
Tsy Ltda
Curtidas 0
Respostas
Netasper
18/02/2010
crie um flag no banco de dados no registro do cliente, e no star dos aplications no global asax vc altera este flag para logado ou nao, e faz a verificação se o user ja se encontra logado nas outras paginas...
[]s
GOSTEI 0
Tsy Ltda
18/02/2010
Olá NetAsper,
Antes de tudo gostaria de agradecer pela atenção desprendida.
A sua solução se parece muito com o que eu tinha pensado, e talvez seja a única até o presente momento que possa me ajudar. O problema é que terei que verificar constantemente se ele está logado, e parece que temos atualmente mais de 400 usuários, e isso poderia comprometer a performace do sistema.
Eu cheguei a olhar o esquema de Membership, mas ele parece trabalhar apenas com o Active Directory. Se alguem souber como posso personalizar o Membership ou algum link, eu agradeço.
GOSTEI 0
Ana Silva
18/02/2010
Olá! Talvez valha a pena olhar alguns provedores de OTP que tem experiência no mercado e testá-los. Conheço a Twillio, Infobip e RingCaptcha. A RingCaptcha tem um sistema que testa diversas rotas de envio da mensagem para verificação do usuário e a maneira de implementação é bastante simples.
GOSTEI 0
Emerson Nascimento
18/02/2010
Você não tem como resolver isso com um ID de sessão? Algo assim...
Ao fazer login:
Depois do login efetuado, ao enviar qualquer solicitação ao servidor:
Ao efetuar logoff
Acredito que desta forma você consiga manter o usuário logado apenas uma vez no sistema. Até seria possível um usuário entrar duas vezes, mas assim que a segunda instância entrar, o acesso da primeira torna-se inválido (cada novo login invalida o anterior).
Ao fazer login:
+--------------------------------+ | usuário faz o login | | (o sistema recebe também o ip) | +---------------+----------------+ | | \\|/ +-------+--------+ SIM --------+ usuário logado +---------- NAO | +-------+--------+ | | | \\|/ | +-----------+-----------+ \\|/ | avisa o usuário e | +-------------+--------------+ | questiona se continua | | obtém informações de login | | a fazer o login | \\| e gera uma contrasenha, | | (ao continuar o login +-- continua --+ que será enviada ao client | | o anterior será | /|(usuario e contrasenha serão| | cancelado) | | gravados no servidor) | +-----------+-----------+ +----------------------------+ | | não continua | | \\|/ +---------+---------+ | faz nada | +-------------------+
Depois do login efetuado, ao enviar qualquer solicitação ao servidor:
+-------------------------------+ | em todas as solcitações ao | | servidor deverá ser enviado o | | usuário e a contrasenha | +---------------+---------------+ | \\|/ +------------+--------------+ | servidor pesquisa na base | ENCONTROU -------+ de dados se há login +-------- NAO ENCONTROU LOGIN | ativo para o usuário | LOGIN | +---------------------------+ | | | \\|/ | +-----------+----------+ | | verifica se a | \\|/ | contrasenha recebida | A CONTRASENHA \\+----------+----------+ | é aquela gravada no +---------- ESTÁ ERRADA ---------+ avisa que a sessão | | servidor | /| está expirada | +-----------+----------+ +---------------------+ | | A CONTRASENHA ESTA CORRETA | | \\|/ +----------+-----------+ | atende à solicitação | | do usuário | +----------------------+
Ao efetuar logoff
+-----------------------------+ | solicita o logoff, enviando | | usuário e a contrasenha | +--------------+--------------+ | \\|/ +------------+--------------+ | servidor pesquisa na base | ENCONTROU -------+ de dados se há login +-------- NAO ENCONTROU LOGIN | ativo para o usuário | LOGIN | +---------------------------+ | | | \\|/ | +-----------+----------+ | | verifica se a | \\|/ | contrasenha recebida | A CONTRASENHA \\+----------+----------+ | é aquela gravada no +---------- ESTÁ ERRADA ---------+ avisa que a sessão | | servidor | /| está expirada | +-----------+----------+ +---------------------+ | | A CONTRASENHA ESTA CORRETA | | \\|/ +----------+-----------+ | apaga o registro | | de login do usuário | | e finaliza o acesso | +----------------------+
Acredito que desta forma você consiga manter o usuário logado apenas uma vez no sistema. Até seria possível um usuário entrar duas vezes, mas assim que a segunda instância entrar, o acesso da primeira torna-se inválido (cada novo login invalida o anterior).
GOSTEI 0