Мастер-Тур:Веб-сервисы (только для версии 11)
Версия статьи от 30.01.2013.
Статья находится на стадии разработки.
Поддерживается только Мастер-Тур 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 - Запустить 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.