Мастер-Тур:Веб-сервисы (только для версии 11)

Материал из Megatec
Перейти к: навигация, поиск

Версия статьи от 27.05.2014.

Статья находится на стадии разработки.

Поддерживается только Мастер-Тур 11.


Введение

Веб-сервисы MasterTourService предназначены для переноса с Microsoft SQL сервера на IIS ресурсозатратных операций, к которым относятся, напимер, расчет туров, наценок и доплат. Также использование MasterTourService позволяет равномерно распределять нагрузку за счет использования нескольких сервисов, развернутых на разных серверах.

Для повышения безопасности доступ к административным модулям также осуществляется через веб-сервисы.

Аппаратные и программные требования

Минимальные требования к серверу приложений, компьютеру, на котором будут развернуты веб-сервисы MasterTourService:

  • Windows Server 2008 R2
  • Microsoft .NET Framework 4
  • IIS 7.0

Подготовка к установке

Веб-сервисы MasterTourService работают с Мастер-Туром и Microsoft SQL сервером по протоколу net.tcp, поэтому перед их непосредственной установкой необходимо выполнить несколько подготовительных шагов.

Включение служб Net.Tcp

Необходимо запустить службы, обеспечивающие работу по протоколу net.tcp.

  1. Убедиться, что включен компонент Windows Communication Foundation Non-HTTP Activation.
    Для этого нужно перейти: Панель управления → Программы → Включение или отключение компонентов Windows → Microsoft .NET Framework 3.5.1
  2. После включения компонента может понадобиться перезагрузка компьютера.
    
  3. Если установка производиться на среду с .NET Framework 4.5, то убедиться, что включены компоненты Активация по HTTP и Активация по TCP.
    Для этого нужно перейти: Панель управления → Программы → Включение или отключение компонентов Windows → Дополнительные службы .NET Framework 4.5 → Службы WCF
  4. После включения компонентов может понадобиться перезагрузка компьютера.
    
  5. Запустить 2 службы (services.msc в меню Пуск):
    • Служба общего доступа к портам Net.Tcp (Net.Tcp Port Sharing Service, NetTcpPortSharing)
    • Адаптер прослушивателя Net.Tcp (Net.Tcp Listener Adapter, NetTcpActivator)

Создание сайта на IIS

Рекомендуется создать на серверном IIS новый сайт с отдельным пулом для последующей установки MasterTourService — это упростит работу и обслуживание веб-сервисов.

  1. Запуск диспетчера служб IIS

    • Набрать inetmgr в меню Пуск
      Или перейти: Панель управления\Система и безопасность\Администрирование\Диспетчер служб IIS

    Диспетчер служб IIS

  2. Добавление сайта

    • Перейти: сайты → Действия → Добавить веб-сайт…
      Добавить веб-сайт…

    • Указать желаемые каталог, имя и порт http в окне «Добавление веб-сайта». Автоматически будет создан отдельный пул с именем сайта.
      Добавление веб-сайта

    • Проверить, что версия среды .NET Framework у созданного пула v4.0 или выше.
      Пул веб-сервисов

  3. Настройка протокола net.tcp

    • Выбрав нужный сайт, перейти: Действия → Привязки
      Привязки

      В окне «Привязки сайта» нажать «Добавить».
      Привязки сайта

      В открывшемся окне «Добавление привязки сайта» выбрать тип привязки — net.tcp, прописать произвольный порт, например, 4465:* и нажать «ОК».
      Добавление привязки сайта

    • При успешном добавлении у иконки сайта появляется знак вопроса, отображается предупреждение о множественных привязках, а также информация о привязке выводится в соответствующие колонки.
      Сайт с привязкой net.tcp

    • У сайта может быть только одна привязка для протокола net.tcp.
      
    • Выбрав нужный сайт, перейти: Действия → Дополнительные параметры…
      Дополнительные параметры…

      В окне «Дополнительные параметры» добавить через запятую net.tcp в поле «Активные протоколы» и нажать «ОК».
      Активные протоколы

Открытие порта Net.Tcp

В брандмауэре Windows необходимо открыть порт TCP, выбранный для привязки net.tcp у созданного сайта, для входящих и исходящих подключений на сервере и всех клиентских машинах.

Настройка доменной аутентификации NT trusted

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

  1. Настройка SPN
    • Параметры для настройки SPN будут уточнены позже. В данный момент настройка производится сотрудниками компании Мегатек.
  2. Настройка пула
    • Пул приложения MasterTourService в IIS должен быть запущен из-под доменного пользователя.
      Выбрав пул, перейти: Действия → Дополнительные параметры…, выбрать Удостоверение → Особая учетная запись и ввести учетную запись, для которой был настроен SPN.

Импорт сборок в базу данных

На базе данных, на которую будут настроены веб-сервисы MasterTourService, необходимо выполнить 2 скрипта:

Скрипты нужно выполнять под пользователем, который является владельцем базы данных.
  1. Import_Standart_Assembly.sql — импорт стандартных сборок .NET Framework, обеспечивающих поддержку протокола net.tcp.
    • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\System.Web.dll
    • C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMDiagnostics.dll
    • C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\System.Runtime.Serialization.dll
    • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.0\System.IdentityModel.dll
    • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.0\System.IdentityModel.Selectors.dll
    • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\System.Messaging.dll
    • C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\Microsoft.Transactions.Bridge.dll
  2. Create_Assembly_Function.sql — импорт Megatec.SQLCLRClient.dll для работы с триггерами, а также создание специальных функций.
    Перед выполнением в скрипте нужно указать путь к сборке:
  3. create assembly [Megatec.SQLCLRClient]
    from 'D:\MasterTour\Megatec.SQLCLRClient.dll'
    with permission_set = unsafe
    go
    


Установка

Автоматическая установка

Генерация файлов

Инсталлятор Мастер-Тура

Ручная установка

Установка сертификатов

Доступ к сертификатам

Веб-сервисы MasterTourService

Таблица с описаниями функций MasterTourService и примерами их вызова из бд.


Сервис аутентификации (AuthService)

Основные функции

Сервис предоставляет пользователю следующие возможности:

  • Проверяет наличие пользователя в системе с указанной комбинацией логин/пароль;
  • Проверяет наличие прав пользователя на вход в ПК «Мастер-Web»;
  • В случае положительного результата проверки прав доступа в систему передает токен, позволяющий использовать методы сервисов, требующие авторизации, и основную информацию о пользователе в стороннее приложение;
  • Время жизни токена должно настраивается на стороне сервиса.

Метод GetOnlineUserInfo

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

Описание принимаемых методом параметров
  • Login – строковое значение. Логин пользователя в системе.
  • Password – строковое значение. Пароль пользователя, передается в открытом виде.
Возвращаемые значения
  • ErrorCode – целочисленное значение. Может содержать следующие значения:
    • 0 – проверка прошла без ошибок;
    • 1 – внутренняя ошибка метода;
    • 2 – пользователь с парой логин/пароль не найден в базе;
    • 3 – пользователь не имеет прав на вход в ПК «Мастер-Web».
  • OnlineUserInfo – структура, содержащая информацию о пользователе:
    • Token – строковое значение. Предназначен для передачи информации о пользователе в методы, требующие аутентификации;
    • FullName – строковое значение. Содержит Фамилию, Имя, Отчество пользователя;
    • PartnerName – строковое значение. Содержит краткое название агентства, к которому принадлежит пользователь;
    • LeadManager – структура, содержащая информацию о кураторе агентства:
      • ID – целочисленное значение. Содержит ключ записи из таблицы пользователей ПК «Мастер-Тур»;
      • Surname – строковое значение. Содержит фамилию куратора;
      • FirstName – строковое значение. Содержит имя куратора;
      • SecondName – строковое значение. Содержит отчество куратора.
Настройки сервиса

Определяются настройки из файла Web.config, раздела appSettings.

  • TokenExpireTime – целочисленное значение. Определяет TTL токена в минутах. Если настройка не установлена, TTL считается бесконечным. В целях безопасности рекомендуется задавать значение не более 60.