Отправка конфиденциальной информации в службу REST - PullRequest
5 голосов
/ 09 февраля 2011

В настоящее время у нас есть веб-служба на основе SOAP, которую наши собственные приложения используют для аутентификации пользователей.По сути, они отправляют SOAP-запрос с именем пользователя и паролем.Веб-сервис аутентифицирует свои учетные данные в нашем хранилище данных и возвращает информацию о пользователе, если аутентификация прошла успешно.Веб-сервис защищен с использованием BASIC-аутентификации и SSL.

Нам нужно внести изменения в этот веб-сервис, и я рассматривал возможность переписать его как сервис REST.Службы REST, которые я создал в прошлом, были довольно просты и не нуждались в безопасности.Я никогда не создавал службу REST, которая использовала бы конфиденциальную информацию, поэтому у меня есть пара вопросов / проблем:

Во-первых, существует ли наилучшая практика для безопасной отправки конфиденциальных параметров запроса (учетных данных пользователя) в службу REST?Я все еще могу использовать BASIC-аутентификацию и SSL.

Во-вторых, если я отправляю запрос в службу REST с использованием POST, он все еще считается RESTful или GET требуется для запросов REST?

Ответы [ 3 ]

3 голосов
/ 09 февраля 2011

Вы также можете использовать SSL и обычную аутентификацию с веб-сервисами REST.

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

1 голос
/ 10 февраля 2011

Вместо выполнения аутентификации через REST вы также можете рассмотреть сетевой протокол аутентификации для использования в соединении с веб-сервисами.Такие технологии, как Kerberos и OAuth , были разработаны для таких случаев использования.

Чтобы ответить на ваши вопросы, однако:

  1. REST поощряет вас использоватьHTTP и связанные протоколы, поэтому использование SSL и BASIC-аутентификации вполне уместно.

  2. REST поощряет использование не только GET и POST, но даже других HTTP-глаголов, таких как PUT и DELETE,Используйте GET только для идемпотентных операций без побочных эффектов.

0 голосов
/ 09 февраля 2011

Переход от SOAP к REST - это шаг назад в плане безопасности.

Что касается передового опыта:

  • Не нарушайте собственную безопасность.Используйте framework или существующую библиотеку, которая была рецензирована и протестирована.
  • Не передавайте незашифрованные статические ключи.Если вы используете HTTP Basic и отправляете его по проводам, зашифруйте его.
  • В идеале используйте код аутентификации сообщений на основе хеша (HMAC), поскольку он наиболее защищен.

Почему безопасность REST не существует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...