Безопасная передача пользователей между веб-сайтами

Вот сценарий:

  • У вас есть два отдельных сайта, которые существуют в разных средах (разные базы данных IE, разные веб-серверы / домены)
  • Вы имеете полный контроль над кодом для обоих сайтов, но, как указано выше, они не могут напрямую взаимодействовать с базой данных друг друга
  • Вы должны безопасно перевести пользователя с сайта A на сайт B

Каков наилучший способ реализовать это? Простая отправка идентификатора пользователя между сайтами через строку запроса не будет безопасной, даже если она зашифрована, поскольку URL-адрес может получить кто-то другой. Кажется, что стандартное решение состоит в том, чтобы передать идентификатор пользователя вместе с другим временным ключом, который создал веб-сайт A, и веб-сайт B знает о нем. Если это так, как правильно настроить систему с помощью временного ключа?

Спасибо!

4 ответа

Решение

Напишите вызов веб-службы по HTTPS, с обеих сторон, чтобы получить сведения о пользователях, и это работает только для определенной пары входа в систему. Задача решена. Вам нужно сделать одинаковые логины с обоих концов или использовать единый вход для файлов cookie. Подробности в статье Випина Самара: "Единый знак для файлов cookie для веб-приложений".

Они не могут получить URL/ пароли, если не введут код приложения на одном из серверов.

Я делаю что-то вроде этого. Лучшее, о чем я могу подумать сейчас, это передать HASH идентификатора пользователя или, если вас это беспокоит, хеш некоторых других пользовательских данных.

Если вам нужны временные ключи (я мог бы сделать что-то подобное), как насчет настройки веб-службы на A, к которой B может обращаться, чтобы получить идентификатор пользователя на основе временного ключа. Таким образом, это совершенно отдельный вызов, и его можно обеспечить.

Взгляните на " сквозную аутентификацию", это концепция, которая позволяет передавать идентификационные данные пользователя из одной системы в другую.

Кроме того, другая идея, которую вы, возможно, захотите попробовать, - это создать безопасный токен, который не раскрывает информацию пользователя и не передает ее. Однако для этого требуется, чтобы обе системы имели одинаковые данные для проверки токена. Как подсказывает другой ответ, хеши очень полезны для создания неописательных битов о конфиденциальной информации.

Вам необходимо передавать информацию между сайтом A и сайтом B, но вам не нужно делать пользователя каналом передачи этой информации.

Сайт B может иметь веб-сервис, который позволяет сайту A создавать сеанс для пользователя. В этом проекте взаимодействие будет выглядеть следующим образом:

  • Пользователь нажимает кнопку на сайте A
  • Сайт A вызывает веб-сервис на сайте B, который передает временный URL-адрес входа на сайт A
  • Сайт A перенаправляет пользователя на временный URL на сайте B
Другие вопросы по тегам