Как проверить связь с веб-сервисом - PullRequest
3 голосов
/ 01 июня 2009

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

У меня вопрос, есть ли лучший способ аутентификации вызывающих абонентов, улучшающий эту систему

Ответы [ 2 ]

3 голосов
/ 01 июня 2009

Что это за услуга? В наши дни я пишу это как WCF и использую любую из обычных моделей идентификации для аутентификации (я обычно использую TransportWithMessageCredential - то есть SSL с именем пользователя / паролем в теле). Тогда вы можете просто проверить личность через Principal (Thread.CurrentPrincipal.Identity.Name).

Для служб SOAP вы можете использовать заголовки SOAP для аутентификации или включить информацию об идентификаторе в качестве аргументов метода - либо пару имя пользователя / пароль, либо отдельный токен, который вы можете проанализировать для получения идентификатора. В любом случае вы должны передавать идентификационную информацию только «как есть» через безопасный транспорт, такой как SSL. Существуют другие методы, которые не требуют передачи пароля, но они более сложны (особенно если задействованы несколько доменов и т. Д.); Kerberos или федеративная безопасность - варианты. Лично я держу это простым, поскольку не все клиенты могут использовать федерацию и т. Д. - но большинство клиентов могут передавать пару имя пользователя / пароль по SSL.

0 голосов
/ 01 июня 2009

Если у вас есть контроль над кодом веб-службы, вы можете изменить его, чтобы потребовать аутентификацию или, возможно, создать его через прокси.

Пожалуйста, прочитайте эту статью .

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