Garantindo que uma conta d e usuário logue apenas uma vez

18/02/2010

1

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.
Responder

Posts

18/02/2010

Netasper

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
Responder

19/02/2010

Tsy Ltda

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.
Responder

03/10/2018

Ana Silva

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.
Responder
Você não tem como resolver isso com um ID de sessão? Algo assim...

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).

Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira