Как защитить веб-сервис в .NET?

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

Похоже, что обсуждается возможность показать / скрыть API, но он еще не реализован: https://github.com/OAI/OpenAPI-Specification/issues/433 [110 ]

13
задан Aardvark 18 January 2013 в 15:29
поделиться

4 ответа

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

. См. раздел 14.8 в следующем URL

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

9
ответ дан 2 December 2019 в 01:11
поделиться

К сожалению, у вас не так много вариантов, так как вы использовали старую технологию веб-службы ASMX. Единственные способы аутентификации кого-либо с помощью веб-сервисов ASMX через Интернет, по сути, сводятся к тому, чтобы «сделать это самостоятельно».

Если бы мне пришлось это сделать, я бы использовал WCF и дал бы себе несколько вариантов. Если бы я не мог использовать WCF, я бы создал собственный HTTP-заголовок для передачи имени пользователя и пароля (через SSL!) И аутентификации на сервере. С другой стороны, я бы использовал сертификаты на клиенте и потребовал бы их отправки на сервер. IIS может даже превратить клиентские сертификаты в удостоверения Windows на сервере.

1
ответ дан 2 December 2019 в 01:11
поделиться

Обычно для защиты веб-служб .NET до WCF использовались Microsoft Расширения веб-служб (WSE) , теперь версия 3.0. Я успешно использовал его в коммерчески доступном продукте, и он довольно хорош, поскольку основан на стандартах W3C ws- *. Можно успешно взаимодействовать с этим из клиентов .NET (очевидно), но также из клиентов Java, если вы используете Apache Axis. Скачать по адресу:

http://www.microsoft.com/downloads/details.aspx?FamilyID=018a09fd-3a74-43c5-8ec1-8d789091255d&displaylang=en

1
ответ дан 2 December 2019 в 01:11
поделиться

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

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

0
ответ дан 2 December 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: