Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Отладка серверных компонентов






Способ отладки компонентов зависит от их типа и типа COM-сервера.

Тип компонента/сервера Способ отладки
COM+-компонент Запустить под отладку dllhost.exe, указав в качестве командной строки “/ProcessID: {ApplicationID}”.
In-process COM Необходимо подключить отладчик к процессу dllhost.exe, в который загружается in-process сервер. Чтобы найти нужную копию dllhost.exe, можно использовать утилиты, показывающие какие модули использует каждый процесс, например, TLIST, входящую в состав Support Tools W2K.
Out-of-process COM Запустить процесс на отладку.

Если на сервере выбран ASP как тип SOAP Listener’а, можно добавить в ASP-страницу ведение лога входящих запросов.

Настройка безопасности (security)

Пожалуй, большая часть проблем при создании и отладке SOAP-приложений связана с безопасностью (это, впрочем, верно и для DCOM-приложений). Как правило, передаваемая информация является конфиденциальной, и анонимный доступ к SOAP-серверам возможен только в редких случаях. SOAP Toolkit поддерживает различные методы аутентификации при доступе к защищенным ресурсам.

Настройка аутентификации на сервере осуществляется обычным для IIS-приложений образом – с помощью “Internet Information Services Snap-in”. Для виртуального каталога могут быть установлены следующие методы аутентификации:

  • Basic – имя и пароль передаются открытым текстом по HTTP.
  • Integrated – используется текущая учетная запись.
  • SSL и клиентские сертификаты – по протоколу HTTPS.
  • Basic по протоколу HTTPS.
  • Digest – только на контроллерах доменов.

В случае, когда клиент пытается осуществить доступ к защищенному ресурсу и не предоставляет информации для аутентификации, выдается ошибка – “Connection failure.: No matching authorization scheme enable on connector.”

Способ передачи информации о клиенте на сервер зависит от используемого “коннектора”. Коннектором называется компонент, используемый клиентом для передачи запросов на сервер и получения откликов. Коннектор по умолчанию требует указания необходимой информации через свойства.

Свойство ConnectorProperty Значение
AuthUser Имя пользователя
AuthPassword Пароль
ProxyServer Имя Proxy-сервера, допускаются следующие значения: пустая строка, имя сервера [: порт], < LOCAL_MACHINE> - настройки Proxy берутся из ветки реестра HKEY_LOCAL_MACHINE, < CURRENT_USER> - настройки Proxy берутся из Internet Explorer’а.
EnableAutoProxy Настройки Proxy определяются автоматически, если в свойстве ProxyServer указано < CURRENT_USER>.
ProxyUser Имя пользователя для Proxy.
ProxyPassword Пароль для Proxy.
SSLClientCertificateName Сертификат пользователя.
UseSSL True означает, что SSL будет использоваться независимо от того, указан в URL протокол http или https.
WinHTTPAuthScheme Можно указать приемлемые способы аутентификации. 0x1 – basic, 0x2 – integrated, 0x8 – digest, 0x10 – выбирается совместно с сервером. Значения допустимо объединять по or.

Рассмотрим, как модифицировать код клиента для доступа к защищенному ресурсу. Для этого необходимо запретить анонимный доступ к виртуальному каталогу, в котором находятся файлы серверной части, и установить basic-аутентификацию.

Вот измененный код клиента:

Dim o As MSSOAPLib30.SoapClient30 Set o = New MSSOAPLib30.SoapClient30 o.MSSoapInit " D: ProjectsSOAPSample1IISSample1.WSDL" o.ConnectorProperty(" AuthUser") = " Administrator" o.ConnectorProperty(" AuthPassword") = " admin" o.ConnectorProperty(" WinHTTPAuthScheme") = 1 Dim l As Long l = o.Add(2, 2)
ПРЕДУПРЕЖДЕНИЕ В данном примере мы явно указали, что подходит только Basic-аутентификация. По умолчанию значение WinHTTPAuthScheme – 0x12, не позволяющее использовать Basic-аутентификацию. Если для виртуального каталога IIS одновременно указаны и Basic-, и Integrated-аутентификация, то при подключении с Basic-аутентификацией могут возникнуть проблемы, если значение WinHTTPAuthScheme допускает Integrated-аутентификацию, и при этом явно указаны имя пользователя и пароль. Суть проблемы будет заключаться в том, что клиент не сможет договориться с сервером об используемой схеме аутентификации и все закончится ошибкой “Access Denied”, несмотря на то, что указаны правильные имя и пароль. Скорее всего, это ошибка в реализации коннектора (эта ошибка наблюдалась и в SOAP Toolkit 2.0).

Если мы хотим использовать защищенное SSL-соединение, необходимо поменять URL, хранящийся в WSDL-файле. Протокол http должен быть заменен на https, иначе подключиться не получится. Кроме того, при подключении с использованием SSL необходимо обратить внимание на имя серверного сертификата для IIS. Этот сертификат задается с помощью средств администрирования IIS и предназначен для подтверждения подлинности Web-сервера (если не задать сертификат для Web-сервера, не получится “включить” поддержку защищенного HTTPS-протокола для виртуальных каталогов).

Если имя серверного сертификата не совпадает с именем Web-сервера, подключение также будет неудачным (Internet Explorer в такой ситуации показывает предупреждение).

СОВЕТ Будьте внимательны при подключении с использованием SSL. Например, подключиться к https://localhost/ не выйдет, за исключением случая, когда серверный сертификат называется “localhost”

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


Рисунок 2. Пример стандартного UI для запроса имени пользователя и пароля

Однако стандартный коннектор, входящий в состав SOAP Toolkit 3.0, не позволяет сделать этого. Единственный способ указать информацию для аутентификации – передать ее явно через свойства коннектора. В следующих разделах мы рассмотрим альтернативную реализацию коннектора, которая сможет помочь в решении и этой проблемы.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.