Управление секретами в приложении
«1С:Шина» позволяет вам безопасно хранить в приложении секреты — пароли, токены доступа, ключи и другие конфиденциальные данные.
Для работы с секретами используется абстрактный базовый тип Секрет. Данный тип предоставляет возможность хранить значение в зашифрованном виде. От него наследуются все поддерживаемые виды секретов, в частности секрет приложения, который может использоваться для доступа к другим сервисам, базам данных и т. п.
Секрет приложения
Вы можете создать секрет, уникальный для приложения, с помощью конструктора типа СекретПриложения. Максимальный размер шифруемого значения — 1000 символов.
знч СекретДемоПриложения = новый СекретПриложения("ЗначениеСекрета")
Значение секрета приложения хранится на сервере в зашифрованном виде. Если вы хотите посмотреть открытое значение секрета, вызовите метод Раскрыть().
знч ОткрытоеЗначение = СекретДемоПриложения.Раскрыть()
При использовании этого метода следует учитывать следующие особенности:
- На клиенте можно раскрыть только секрет, созданный в клиентском окружении. Если секрет создан на сервере, то раскрыть его значение можно только на сервере, в противном случае выбрасывается
ИсключениеДоступаКСекрету. - Если ключ шифрования секрета отсутствует, то выбрасывается
ИсключениеДоступаКСекрету.
Тип СекретПриложения может использоваться в реквизитах элемента проекта. Это атомарное значение реквизита, которое хранится как структура в таблице сущности.
Использование секрета во встроенном языке
Экземпляры типов, унаследованных от типа Секрет, могут передаваться в методы встроенного языка в качестве значения параметра Пароль, например:
@НаСервере
метод ЗаписатьСШифрованием(ПутьКАрхиву: Строка, Пароль: Секрет)
пер Архив = новый ФайлZip(ПутьКАрхиву, Пароль)
// Добавление папки с файлами в архив
Архив.Добавить(Файлы.ПолучитьДомашнийКаталогПользователя().Путь + "/ПапкаСФайламиДляСжатия",
УровеньСжатия = УровеньСжатияZip.Максимальный, МетодШифрования = МетодШифрованияZip.Aes256)
;