Revalidação de senhas de usuários de chat acionado a partir de área restrita de sites institucionais

Vou fazer uma integração do chat com um site institucional e pretendo confirmar o par user/senha para garantir que não houve interceptação na chamada do bot.

Ou seja:
Quero pegar o par user / senha e reenviar a empresa que para revalide, chamando uma API que retorna OK se o par for validado, ou NOK caso contrario.

Como posso obter o password enviada em ‘userPassword’? O conteúdo passado fica armazenado em alguma variável de contact? Qual?

var builder = new BlipChat()
  .withAppKey("YOUR-APP-KEY")
  .withButton({ color: "#2CC3D5" })
  .withAuth({
       authType: BlipChat.DEV_AUTH,
       userIdentity: '1234567',
       userPassword: 'MTIzNDU2',
  })
  .withAccount({
       fullName: 'John Doe',
       email:'johndoe@gmail.com',
       phoneNumber: '+15055034455',
       city: 'Decatur',
  });
builder.build()

Você pode salvar essas suas informações na sua aplicação, independente do BLiP.

Posso, mas não teria o resultado (aspecto de segurança de informação) que pretendo.

O que pretendo é demonstrar que não houve uma interceptação entre o site institucional e o acesso ao Bot; ou seja, quero garantir que o Bot foi efetivamente chamado pelo site institucional (ninguém copiou esse código e colocou um HTML qq e o acionou. Sei que tem o bloqueio do domínio na configuração do Bot ajuda, mas a equipe de segurança da informação do cliente não considerou que é suficiente).

Foi combinado com a equipe de segurança do cliente que não será a password do site e sim um token criptografado. A empresa envia, o bot devolve pedindo para validar. Se validado então continua o fluxo. Caso contrário aborta.

A questão é:
Como faço para acessar esses parâmetros enviados na chamada do bot.
São criados atributos na estrutura de contatos?
Como faço para criar um atributo na estrutura de contato.

Olá Cesar, tudo bem?

As senhas usadas para login no BLiP chat não ficam disponíveis nas informações do contato. Como são informações muito sensíveis, você não pode obter o id e senha de nenhum usuário. Por questões de segurança, essas informações ficam armazenadas em um lugar separado do contato e são criptografadas.

Uma sugestão de como você pode realizar sua validação:

  1. Crie um contato no seu site institucional, com uma senha que você conhece (você pode utilizar um bot de testes para não criar riscos de segurança no bot definitivo).

  2. Em um site seguro, que você garante que não há interceptação, faça login com o mesmo contato para o mesmo bot. Com a senha correta o login deve se efetivar e a conversa será carregada. Com a senha errada um log de erro aparecerá no console do seu browser e o chat não irá carregar.
    Caso não apareça nada em seu console, nas ferramentas de desenvolvedor do browser, abra a aba network e observe as conexões websocket. Uma conexão com final 0mni.io estará presente, e lá uma mensagem de falha na autenticação aparecerá. Pode ser necessário dar refresh na página para a conexão websocket aparecer na aba network.

Para criar um atributo no contato de um bot, você pode usar o campo “extras”. Esse campo é um objeto de chave valor. Lá você pode adicionar qualquer tipo de informação textual.

Eu não recomendo de maneira alguma que você salve a senha nos atributos do contato. Essas informações são armazenadas como texto puro e estarão visíveis para qualquer pessoa com acesso aos contatos do bot no portal. Seguir por este caminho pode gerar grandes problemas de segurança.

1 Curtida

Obrigado pela orientação