Мастер-Тур:Веб-сервисы (только для версии 11)
Версия статьи от 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.
- Убедиться, что включен компонент Windows Communication Foundation Non-HTTP Activation.
Для этого нужно перейти: Панель управления → Программы → Включение или отключение компонентов Windows → Microsoft .NET Framework 3.5.1 - Если установка производиться на среду с .NET Framework 4.5, то убедиться, что включены компоненты Активация HTTP и Активация TCP..
Для этого нужно перейти: Панель управления → Программы → Включение или отключение компонентов Windows → Дополнительные службы .NET Framework 4.5 → Службы WCF - Запустить 2 службы (services.msc в меню Пуск):
- Служба общего доступа к портам Net.Tcp (Net.Tcp Port Sharing Service, NetTcpPortSharing)
- Адаптер прослушивателя Net.Tcp (Net.Tcp Listener Adapter, NetTcpActivator)
После включения компонента может понадобиться перезагрузка компьютера.
После включения компонентов может понадобиться перезагрузка компьютера.
Создание сайта на IIS
Рекомендуется создать на серверном IIS новый сайт с отдельным пулом для последующей установки MasterTourService — это упростит работу и обслуживание веб-сервисов.
- Запуск диспетчера служб IIS
- Набрать inetmgr в меню Пуск
Или перейти: Панель управления\Система и безопасность\Администрирование\Диспетчер служб IIS
- Набрать inetmgr в меню Пуск
- Добавление сайта
- Настройка протокола net.tcp
- Выбрав нужный сайт, перейти: Действия → Привязки
В окне «Привязки сайта» нажать «Добавить».
В открывшемся окне «Добавление привязки сайта» выбрать тип привязки — net.tcp, прописать произвольный порт, например, 4465:* и нажать «ОК».
- При успешном добавлении у иконки сайта появляется знак вопроса, отображается предупреждение о множественных привязках, а также информация о привязке выводится в соответствующие колонки.
У сайта может быть только одна привязка для протокола net.tcp.
- Выбрав нужный сайт, перейти: Действия → Привязки
- Выбрав нужный сайт, перейти: Действия → Дополнительные параметры…
В окне «Дополнительные параметры» добавить через запятую net.tcp в поле «Активные протоколы» и нажать «ОК».
Открытие порта Net.Tcp
В брандмауэре Windows необходимо открыть порт TCP, выбранный для привязки net.tcp у созданного сайта, для входящих и исходящих подключений на сервере и всех клиентских машинах.
Настройка доменной аутентификации NT trusted
Данный пункт предварительной настройки нужно выполнить, если предполагается использование доменной аутентификации.
- Настройка SPN
- Параметры для настройки SPN будут уточнены позже. В данный момент настройка производится сотрудниками компании Мегатек.
- Настройка пула
- Пул приложения MasterTourService в IIS должен быть запущен из-под доменного пользователя.
Выбрав пул, перейти: Действия → Дополнительные параметры…, выбрать Удостоверение → Особая учетная запись и ввести учетную запись, для которой был настроен SPN.
- Пул приложения MasterTourService в IIS должен быть запущен из-под доменного пользователя.
Импорт сборок в базу данных
На базе данных, на которую будут настроены веб-сервисы MasterTourService, необходимо выполнить 2 скрипта:
Скрипты нужно выполнять под пользователем, который является владельцем базы данных.
- 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
- Create_Assembly_Function.sql — импорт Megatec.SQLCLRClient.dll для работы с триггерами, а также создание специальных функций.
Перед выполнением в скрипте нужно указать путь к сборке:
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.