AdminPanel
Небольшой сайт с http-сервисом для управления списками баз для пользователей домена (доступна загрузка списка пользователей из каталога AD). Резализует интерфейс сервиса (WebCommonInfoBases), описанный на ИТС. При корректной настройке, пользователь 1С при запуске 1cestart.exe будет получать актуальный список баз. Сайт жестко завязан на службу каталогов, поэтому ручное создание пользователей недоступно. При получении списка баз используется проверка подлинности negotiate, соответственно для доменных пользователей не нужно вводить логин/пароль, для локальных пользователей потребуется вводить логин/пароль пользователя из службы каталогов, к которому привязан какой-либо список.
How to use:
IIS:
- Скачать архив с последней версией релиза по адресу https://github.com/akpaevj/AdminPanel/releases
- Создать папку, в которой будут располагаться файлы сайта (для примера назовем ее AdminPanel) и распаковать скачанный архив в эту папку.
- В панели управления IIS создать новый сайт (для примера назовем его wcib.enterprise.corp, так-же необходимо создать A-записи в DNS и выполнить привязку сайта)
- В физическом пути сайта указываем папку, созданную на шаге 2.
- В настройках проверки подлинности сайта включаем Анонимную проверку подлинности и Проверку подлинности Windows (здесь есть расхождения с инструкцией с ИТС, нет необходимости делать разные сайты и публикации для анонимных и аутентифицированных пользователей)
- В папке сайта находим файл appsettings.json и меняем значения параметров на свои:
- В параметре Default в секции ConnectionStrings указываем строку подключения к базе данных (в качестве базы данных выступает MSSQL). Встроенная проверка пользователя работать не будет при стандартных настройках сайта, меняем Integrated Security на параметры User ID и Password, указываем адрес сервера базы данных. Базу данных создавать вручную не нужно. Пользователь, указанный в настройках, должен иметь права на создание базы данных, она будет создана автоматически
- В параметре AdminGroup секции Security указываем группу домена в формате DOMAIN_NAME\GROUP_NAME, членам которой будет доступна административная панель сайта (эту группу нужно будет создать и включить туда пользователей-администраторов списков ИБ).
- В параметре UserGroup секции Security указываем группу домена в формате DOMAIN_NAME\GROUP_NAME, членам которой будет доступно получение списка баз из http-сервиса
Пример содержимого appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"Default": "Data Source=localhost;Initial Catalog=AdminPanel;User ID=username;Password=12345;"
},
"Security": {
"AdminGroup": "CONTOSO\\Администраторы 1С",
"UserGroup": "CONTOSO\\Пользователи домена"
}
}
Для начала использования http-сервиса WebCommonInfoBases необходимо в файле 1cestart.cfg заполнить параметр InternetService, указав в значении адрес сайта, либо интерактивно добавить сайт в адреса списков общих информационных баз.
Лайфхак для дочитавших до конца. Как было написано выше, сайт реализует службу как http-сервис. На ИТС такой способ задекларирован, но никак не документирован (есть только пример реализации веб-сервиса). При работе через http вызываются одноимённые get методы, где входные и входные/выходные параметры передаются как параметры url (CheckInfoBases?ClientID=...&InfoBaseCheckCode=...), а выходные и входные/выходные параметры и их значения должны быть возвращены в json структуре с корневым элементом под названием root.
Пример ответа на get метод CheckInfoBases:
{
"root": {
"InfoBasesChanged": false,
"URL": ""
}
}