Pergunta

Aqui está o cenário:

  • Você tem dois sites separados que existem em diferentes ambientes (ou seja, bancos de dados diferentes, diferentes web servidores / domínios)
  • Você tem controle total sobre o código para ambos os sites, mas do ponto acima, eles não podem se comunicar diretamente com banco de dados do outro
  • Você deve transferir usuário do site A para o site B com segurança

O que é a melhor maneira de implementar isso? Basta enviar o identificador do usuário entre os locais via string query não seria seguro, mesmo se estiverem criptografados, já que alguém poderia obter o URL. Parece que a solução padrão é passar o identificador do usuário, juntamente com outra chave temporária que web site A criada e web site B conhece. Se este for o caso, qual é a maneira correta de segurança a configuração do sistema com a chave temporária?

Obrigado!

Foi útil?

Solução

Escrever uma chamada de serviço web através de HTTPS, em ambas as extremidades, para recuperar os detalhes de usuários, e que só funciona para um login de par específico. Problema resolvido. Você precisa fazer o login-id em ambas as extremidades uniforme ou usar single sign on cookies. Mais detalhes no artigo de Vipin Samar: "Single Sign on cookies para aplicativos da web" .

Eles não podem obter a URL / senhas menos que eles vão para o código do aplicativo em um dos servidores.

Outras dicas

Eu estou fazendo algo parecido com isto. A melhor coisa que eu posso pensar agora está passando um hash da ID de usuário, ou se isso faz você se preocupar, o hash de alguns outros dados do usuário.

Se yuo deseja chaves temporárias (eu poderia fazer algo assim também), como sobre a criação de um serviço da Web em um que B pode chamar para obter o ID do usuário com base na chave temporária. Desta forma, é uma chamada totalmente separado, e pode ser assegurada.

Dê uma olhada em " autenticação pass-through", é um conceito que permite que a identidade de um usuário para ser passado de um sistema para outro.

Além disso, uma outra idéia que você pode querer tentar é criar um token seguro que não expõe as informações do usuário e passá-lo. No entanto, isso requer que ambos os sistemas para ter dados semelhantes para verificar o token. Como a outra resposta sugerida, hashes são muito bons usos para criar pedaços não-descritivos sobre informações confidenciais.

Você precisa passar informações entre o Site A e Site B, mas você não precisa fazer o usuário do canal para essa informação.

Site B poderia ter um serviço web que permite Site A para criar uma sessão para o usuário. Neste projeto a interação iria a seguinte:

  • Usuário botão clica no Site A
  • Site A chama web-service no local B que passa uma volta URL login temporário para o site A
  • Site A redireciona usuário para a URL temporária no Site B
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top