1с сохранить пароль в тонком клиенте
Безопасное хранение паролей
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1. При разработке подсистем, взаимодействующих с различными внешними ресурсами (электронной почтой, веб-сервисами, FTP-ресурсами и т.п.) возникает необходимость запрашивать и передавать данные аутентификации к этим ресурсам: логин и пароль.
2. Для сведения к минимуму возможности перехвата пароля злоумышленниками не следует хранить пароли и другую конфиденциальную информацию в информационной базе. При этом минимальный уровень защищенности – в файловых информационных базах, в которых файл базы может быть скопирован целиком любым пользователем информационной базы. В клиент-серверной информационной базе доступ к базе данных, как правило, имеется только у администраторов СУБД.
Таким образом, следует запрашивать логин и пароль у пользователя и передавать их сразу, не сохраняя в информационной базе.
3. В ряде случаев такая схема работы доставляет объективные неудобства или принципиально невозможна:
- интерактивный запрос логина и пароля на каждую операцию может создавать значительный дискомфорт от работы, а временного сохранения на стороне клиента недостаточно;
- взаимодействие с различными внешними ресурсами должно выполняться на сервере, не зависимо от интенсивности работы пользователей с программой.
В таких случаях допустимо организовать хранение паролей и другой конфиденциальной информации в информационной базе, предупредив пользователей о последствиях. Следует помнить, что подобное хранение паролей не решает всех проблем безопасности, а лишь усложняет задачу для злоумышленника.
3.1. При этом не следует хранить пароли и другую конфиденциальную информацию в реквизитах тех же объектов метаданных, с которыми ведется повседневная работа. Для хранения такой информации следует использовать отдельный объект метаданных (например, регистр сведений), организовав к нему безопасный доступ на уровне системы прав доступа 1С:Предприятия.
3.2. При использовании Библиотеки стандартных подсистем (БСП) следует использовать безопасное хранилище паролей, которое решает ряд задач:
- Имея доступ к объекту метаданных, пользователь может прочитать содержимое реквизита с паролем, что невозможно при использовании безопасного хранилища. Для исключения случаев несанкционированного доступа к безопасному хранилищу получение и запись данных (паролей) возможна только в привилегированном режиме.
- Данные в безопасном хранилище хранятся в закрытом виде и тем самым исключаются случаи непредумышленной «засветки» паролей.
- Безопасное хранилище исключено из планов обмена, что предотвращает утечку паролей из информационной базы при обмене данными.
Для работы с безопасным хранилищем паролей предназначены процедуры и функции общего модуля ОбщегоНазначения : ЗаписатьДанныеВБезопасноеХранилище , ПрочитатьДанныеИзБезопасногоХранилища и УдалитьДанныеИзБезопасногоХранилища . Подробнее см. комментарии к этим функциям в БСП и раздел «3.4. Базовая функциональность - Использование при разработке конфигурации - Безопасное хранилище паролей» документации БСП.
3.3. Не следует хранить пароли в реквизитах формы, их следует извлекать только на стороне сервера и непосредственно перед их использованием. В противном случае, при открытии формы с маскированным вводом (или просмотром) пароля, пароль передается с сервера на клиент в открытом виде, что делает возможным его перехват. Установка привилегированного режима производится непосредственно перед вызовом функций, а не внутри них, что бы исключить получение или запись любых паролей в сеансе с любыми правами. Безопасность вызова должен обеспечивать вызывающий код, который обращается к конкретным паролям.
Для маскировки пароля на форме в обработчике событии формы ПриСозданииНаСервере необходимо разместить следующий код:
УстановитьПривилегированныйРежим(Истина);
Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка, "Пароль, ПарольSMTP"); // Пароль, ПарольSMTP – ключи соответствия данных в безопасном хранилище
УстановитьПривилегированныйРежим(Ложь);
Пароль = ?(ЗначениеЗаполнено(Пароли.Пароль), ЭтотОбъект.УникальныйИдентификатор, "");
ПарольSMTP = ?(ЗначениеЗаполнено(Пароли.ПарольSMTP), ЭтотОбъект.УникальныйИдентификатор, "");
В обработчике события формы ПриЗаписиНаСервере :
Если ПарольИзменен Тогда
УстановитьПривилегированныйРежим(Истина);
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Пароль);
УстановитьПривилегированныйРежим(Ложь);
Пароль = ?(ЗначениеЗаполнено(Пароль), ЭтотОбъект.УникальныйИдентификатор, "");
КонецЕсли;
Если ПарольSMTPИзменен Тогда
УстановитьПривилегированныйРежим(Истина);
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, ПарольSMTP, "ПарольSMTP");
УстановитьПривилегированныйРежим(Ложь);
ПарольSMTP = ?(ЗначениеЗаполнено(ПарольSMTP), ЭтотОбъект.УникальныйИдентификатор, "");
КонецЕсли;
где Пароль и ПарольSMTP - реквизиты формы. Если пароль ранее был сохранен в программе, то следует присвоить соответствующему реквизиту уникальный идентификатор формы, эмулирующий наличие пароля. При записи объекта в форме, если был введен новый пароль, то записываем его в объект, а реквизит формы вновь затираем уникальным идентификатором.
В настоящей статье описаны несколько различных вариантов настройки параметров запуска информационной базы 1С:Предприятие для входа в программу без указания логина и пароля для разных режимов и сценариев использования. Многие из вариантов можно использовать как в локальной версии, установленной на компьютере пользователя, так и при работе с онлайн-версиями программ 1С в облачной сервисе 1С:Фреш.
Похожие статьи:
Иногда у пользователей возникает необходимость ускорить запуск информационных баз 1С:Предприятие, чтобы программа 1С запускалась автоматически без выбора пользователя и ввода пароля.
- Вариант 1. Запуск с выбором информационной базы
- Вариант 2. Запуск баз выбора информационной базы из списка баз
Вариант 1. Запуск с выбором информационной базы
Данный вариант настройки параметров запуска информационной базы 1С:Предприятие для входа в программу без указания логина и пароля можно использовать как в локальной версии, установленной на компьютере пользователя, так и при работе с онлайн-версиями программ 1С в облачной сервисе 1С:Фреш.
Данный вариант особенно интересен в случае, если бухгалтер ведет учет нескольких предприятий и для входа в каждую базу используется свой логин и пароль. Подобную настройку программы легко может сделать для себя любой пользователь программы 1С без помощи программиста и запуска конфигуратора.Для этого необходимо будет настроить запуск информационной базы сразу с нужным пользователем и паролем, используя дополнительные параметры запуска информационной базы 1С.
- Имя пользователя: Иванов И.И.
- Пароль: 123456789
Для задания имени пользователя (логина) и пароля используются параметры /N <имя> и /P <пароль>.
/N <имя> - имя пользователя, параметр должен быть указан точно так же, как и в списке пользователей в Конфигураторе;
/P <пароль> - пароль пользователя, имя которого указано в параметре /N (если у данного пользователя нет пароля, то этот параметр можно не указывать).
Для того, чтобы начать работу через тонкий клиент, Вам необходимо:
1. Опубликовать в WEB базу данных 1С:
Ссылку на базу можно получить, скопировав ее по кнопке «Копировать» в меню базы.
Для работы в браузере необходимо выбрать в меню «Открыть в браузере».
2. Установить «тонкий клиент» на Ваш компьютер:
скачать дистрибутив программы для Windows™. (Текущая используемая платформа 8.3.17.2231)
Для получения дистрибутива для Mac или Linux нужно обратиться в техническую поддержку
распаковать архив и запустить установочный файл.
В появившемся окне программы установки нажмите кнопку «Далее».
На следующей странице выберите необходимые для установки языки.
Затем выберите язык интерфейса (по умолчанию будет установлен язык, выбранный в операционной системе) и нажмите «Далее».
Нажмите «Установить» для запуска процесса установки.
После завершения установки, нажмите «Готово».
Примечание: платформа запуска 1С: Предприятие в облаке централизовано обновляется с некоторой периодичностью. Версии тонкого клиента и платформы, установленной на сервере, должны совпадать, следовательно, тонкий клиент требуется обновлять. Эта операция может проходить автоматически, для этого необходимо установить галку «Запуск от имени администратора» в свойствах ярлыка.
Перед запуском 1C Тонкий клиент требуется настроить запуск от имени администратора.
Для этого нажмите на ярлыке запуска правой кнопкой мыши и выберите «Свойства»
В открывшемся окне, во вкладке «Ярлык» нажмите кнопку «Дополнительно»
В следующем окне нужно установить галку «Запуск от имени администратора» и «ОК» и сохранить изменения.
3. Добавить базы в тонкий клиент
При первом запуске Тонкого клиента появится запрос на добавление информационной базы, следует ответить «Да»
В следующем окне следует выбрать «Добавление в список существующей информационной базы» и «Далее».
На следующем этапе необходимо:
- указать имя базы данных (данное имя будет отображаться в перечне баз данных при запуске 1С),
- выбрать вариант подключения к информационной базе «На Веб-сервере»,
- вставить в данное поле ссылку на базу (данную ссылку мы получили в ЛК на 1 шаге инструкции) нажать «Далее».
И в последнем окне нажать кнопку «Готово».
После этого, появиться окно с перечнем информационных баз. Для входа в информационную базу необходимо выбрать нужную базу и нажать «1С:Предприятие»
В окне «Доступ к веб-серверу» необходимо указать учетные данные, полученные при регистрации.
Если на следующем шаге появится запрос учетных данных для входа в 1С, Необходимо в поле «Пользователь» выбрать нужного Вам пользователя 1С: Предприятие, ввести его пароль (при наличии) и нажать и нажать «ОK».
4. Настроить дополнительные параметры
Как сделать так, чтобы пароль от облака или базы не запрашивался?
Для этого следует выбрать интересующую Вас базу из списка, нажать "Изменить". В открывшемся окне параметров нажать «Далее».
Вам нужна строка "Дополнительные параметры запуска", где через пробел можно указывать следующие параметры:
- /WSN - имя пользователя веб-сервиса (в данном случае логин аккаунта Сервисклауд)
- /WSP - пароль пользователя веб-сервиса
- /N - имя пользователя базы
- /P - пароль пользователя базы
К примеру, строчка "/WSN scXXXXX /WSP Pa$$W0RD /N НатальяР /P 2014Склауд"
В этом варианте работы пользователь, в общем случае, взаимодействует с информационной базой по следующей схеме:
На одном из компьютеров локальной сети расположен кластер серверов «1С:Предприятия 8». На другом компьютере расположена система управления базами данных, в которой хранится клиент-серверная информационная база.
Пользователь запускает тонкого клиента. На компьютере пользователя исполняется код на встроенном языке в контексте клиента. На компьютере кластера серверов исполняется код в контексте сервера.
Развертывание, запуск и отладка
-
, содержащую кластер серверов; , поддерживаемую платформой.
-
новую клиент-серверную базу; ее конфигурацию в новый проект; в проект нужные вам объекты конфигурации и алгоритмы; тонкого клиента, имитируя работу пользователя.
Для отладки в этом варианте работы требуется дополнительная настройка (подробнее).
Когда конфигурация готова, вы можете создать CF-файл конфигурации, DT-файл информационной базы, собрать их в комплект поставки и создать дистрибутив (подробнее).
Установка платформы «1С:Предприятие 8»
Для разных операционных систем минимальный набор компонентов следующий:
- 1С:Предприятие (содержит конфигуратор и тонкого клиента);
- Сервер 1С:Предприятия 8 .
- common ;
- client ;
- server (т. к. client зависит от server ).
- Подробнее в документации «1С:Предприятие 8.3. Клиент-серверный вариант. Руководство администратора»;
При запуске 1C:EDT самостоятельно находит и добавляет в свои настройки все версии платформы, которые установлены на компьютере. Если этого не произошло или если вы устанавливали платформу в то время, когда 1C:EDT была запущена, вы можете самостоятельно добавить новую версию платформы в параметрах 1C:EDT .
Для администрирования кластера (в любой операционной системе) начиная с версии платформы 8.3.15 вы можете использовать стандартную функцию Управление серверами . Она доступна в любом прикладном решении в режиме 1С:Предприятие — Главное меню > Все функции > Стандартные > Управление серверами . Возможная проблема: Если команда Все функции отсутствует, включите ее видимость — Главное меню > Настройки > Параметры. > Отображать команду «Все функции» .В платформе 8.3.14 такая стандартная функция отсутствует, но вы можете использовать аналогичную универсальную обработку Управление серверами . Эту обработку можно запустить в любом прикладном решении.
Про администрирование кластера в более ранних версиях платформы вы можете прочитать в документации 1С:Предприятие 8.3. Клиент-серверный вариант. Руководство администратора.
Установка системы управления базами данных
Вам нужно будет установить одну из СУБД, работу с которыми поддерживает платформа «1С:Предприятие 8». Подробнее вы можете прочитать в документации «1С:Предприятие 8.3. Клиент-серверный вариант. Руководство администратора».
Другие варианты развертывания
Если в вашей локальной сети установлена подходящая СУБД, вы можете установить на своем компьютере только кластер серверов и не устанавливать СУБД. Информационную базу вы создадите в имеющейся СУБД.
В этом случае предметы отладки ( Тонкий клиент , Сервер ) будут исполняться на вашем компьютере.
Если в вашей локальной сети установлен кластер серверов «1С:Предприятия 8», вы можете не устанавливать на своем компьютере кластер и СУБД. Информационную базу вы создадите в имеющемся кластере.
В этом случае Тонкий клиент будет исполняться на вашем компьютере, а Сервер будет исполняться на том компьютере, на котором работает кластер серверов.
Читайте также: