Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
product:settings:system:vault [20.09.2024 12:46] ekaterina.menkhuzinaproduct:settings:system:vault [19.11.2024 10:23] (текущий) – [Примеры фрагментов из конфигурационного файла] ekaterina.menkhuzina
Строка 1: Строка 1:
 ====== Настройка хранения строк подключения в Hashicorp Vault ====== ====== Настройка хранения строк подключения в Hashicorp Vault ======
-''Начиная с версии системы 3.29'', чтобы повысить безопасность хранения секретов (паролей, токенов/маркеров-доступа, API-ключей, закрытых криптографических ключей и т.п.) можно настроить подключение системы ADVANTA к СУБДили сервису **Active Directory** через сервис хранения секретов HashiCorp Vault.+''Начиная с версии системы 3.30'', чтобы повысить безопасность хранения секретов (паролей, токенов/маркеров-доступа, API-ключей, закрытых криптографических ключей и т.п.) можно настроить подключение системы ADVANTA к СУБД или сервису [[product:settings:system:active_directory|Active Directory]] через сервис хранения секретов HashiCorp Vault.
  
 В этом случае в системе или файлах конфигурации не будут храниться пароли к сервисам и службам компании. В этом случае в системе или файлах конфигурации не будут храниться пароли к сервисам и службам компании.
Строка 7: Строка 7:
   - Добавить раздел с указанием использования сервиса хранения секретов.    - Добавить раздел с указанием использования сервиса хранения секретов. 
   - Добавить раздел с перечнем ключей, получаемых из сервиса хранения секретов для строк соединения с СУБД.   - Добавить раздел с перечнем ключей, получаемых из сервиса хранения секретов для строк соединения с СУБД.
-  - Добавить раздел для получения секрета для сервисов **Active Directory** (если используется).+  - Добавить раздел для получения секрета для сервисов [[product:settings:system:active_directory|Active Directory]] (если используется). 
 +  - После получения секретов, добавить алгоритм замены паролей - выполняется получение всех секретов и их перечень интерпретируется как набор именованных ключей, после чего, выполняется подстановка значений найденных ключей на их значение. 
 +===== Изменения в конфигурационном файле ===== 
 +Необходимые изменения в конфигурационном файле ''client.config'' для запуска системы через получение паролей из сервиса хранения секретов HashiCorp Vault: 
 +  - В разделе ''<configSections>'' добавить обработку наличия секции ''<section name= ″hashiCorpVault″ type=″Config.HashiCorpVaultConfigurationSection, SL.App.Config″/>'', которая будет использоваться как индикатор необходимости использовать Hashicorp Vault. 
 +  - В разделе ''<configuration>'' добавить проверку и обработку секций: ''<hashiCorpVault address=″″ roleId=″″ secretId=″″ version=″″ mountPoint=″″ path=″″/>''
 + 
 +Секция ''hashiCorpVault'' содержит обязательные атрибуты: 
 +  ''address'' – адрес сервера Vault, обязательный; 
 +  ''roleId'' – идентификатор (GUID) роли, обязательный; 
 +  * ''secretId'' – идентификатор (GUID) секрета, обязательный; 
 +  * ''version'' – обязательный параметр, версия контейнера. Возможные варианты: V1, V2. 
 +  * ''mountPoint'' – обязательный параметр, точка монтирования контейнера секретов; 
 +  * ''path'' - обязательный параметр, путь к секретам. 
 +===== Примеры фрагментов из конфигурационного файла ===== 
 +В конфигурационном файле ''client.config'' выполняется поиск ключей вида ''{$key$}'' и замена их на значения ''keyValue'', полученные из ''Vault''
 + 
 +При наличии в секции ''<configuration>'' секции ''<hashiCorpVault address=″″ roleId=″″ secretId=″″ version=″″ mountPoint=″″ path=″″/>'', пароли будут считаны из хранилища секретов как названия ключей и их значений (пары ''key'', ''keyValue''), для последующей замены.  
 + 
 +<callout type="info" icon="true"> Названия ключей в хранилище секретов должны соответствовать всем ''{$key$}'' в заменяемых фрагментах.</callout> 
 + 
 +Проверяются на наличие строк шаблона разделы файла конфигурации: 
 +  * настройки приложения - секция ''<appSettings>'', атрибут ''value''; 
 +  * настройки [[product:settings:system:active_directory|Active Directory]] - секция ''<adDomains>''/''<domains>'', атрибуты: ''login'', ''password'', ''ldappath''; 
 +  * настройки [[product:settings:system:open_id|openIdConnect]] - секция ''<openIdConnect>''/''<providers>'', атрибут ''clientSecret''.  
 + 
 +Пример фрагмента из ''client.config'': 
 +<code csharp> 
 +<configuration> 
 +  <hashiCorpVault address="https://vault.yourcompany.ru:8200" roleId="roleId" secretId="secretId" version="V2" mountPoint="kv-v2" path="dbPasswords"/> 
 +………….   
 +</configuration> 
 + 
 +………….. 
 +  <connectionStrings> 
 + <add name="db" providerName="System.Data.SqlClient" connectionString="Server=localhost;Database=b-stable;User ID=SL_APP;Password={$db$};Pooling=true;Max Pool Size=4000; TrustServerCertificate=True" /> 
 + <add name="dbCubes" providerName="System.Data.SqlClient" connectionString="Server=localhost;Database=b-stable;User ID={$busDB$};Password={$dbCubes$};Pooling=true;Max Pool Size=4000; TrustServerCertificate=True" /> 
 +  </connectionStrings> 
 +</code> 
 + 
 +<callout type="info" icon="true"> В примере для двух ''connectionString'' name=''″db″'' и ''″dbCubes″'', размещены ключи: ''{$db$}'', ''{$busDB$}'', ''{$dbCubes$}'' - они будут заменены на их значения из хранилища секретов.</callout>