Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # Настройки HTTP сервера
- #
- Server = {
- #
- # Настройки Endpoint-a
- # задаются в формате Endpoints.<EndpointName> = { ... }
- # Основные параметры
- # Url - Прослушиваемый Url
- # Certificate - Конфигурация серверного сертификата. Только для https
- # Path - путь к файлу сертификата в формате PKCS#12. Если путь не задан то сертификат ищется в хранилище согласно настройкам
- # Password - пароль
- # Store - Хранилище сертификатов для поиска. Возможные значения (LocalMachine или CurrentUser)
- # Location - Расположение сертификатов для поиска. Возможные значения (TrustedPublisher, AddressBook, AuthRoot, CertificateAuthority, Disallowed, My, Root, TrustedPeople)
- # AllowInvalid - Разрешить сертификаты с невалидной подписью
- #
- Endpoints.MainHttp.Url = "http://localhost:3828"
- Endpoints.BackupHttp = {
- Url = "http://localhost:3829"
- # Certificate = {
- # Path = "testCert.pfx"
- # Password = "testPassword"
- # }
- },
- # Endpoints.SecuredHttp = {
- # Url = "https://localhost:3840"
- # Certificate = {
- # Store = "My"
- # Location = "CurrentUser"
- # Subject = "Subject"
- # Password = "testPassword"
- # AllowInvalid = false
- # }
- # }
- }
- #
- # Настройки логирования
- #
- Logging = {
- LogLevel = {
- #
- # Минимальный "уровень" сообщений которые записываются в лог
- # Возможные значения Trace, Debug, Information, Warning, Error, Critical, None
- #
- Default = "Information"
- }
- }
- #
- # Настройки безопасности. Время кеширования списка разрешенных операций в разрезе пользователя и продукта
- #
- #Security.AllowedOperationsCacheTimeout = "00:02:00"
- #
- # Настройка подключения к базе данных
- #
- Database.ConnectionString = "User ID=datahub;Password=123;Initial Catalog=trade_vtb24;Data Source=sql.eftr.lan; App=EFTR.Gate.Keeper"
- #
- # Настройка сборки и публикации метрик
- #
- Metrics = {
- #
- # Сборка и публикация метрик включена
- #
- Enabled = true
- #
- # URI для сбора метрик Prometheus
- # В случае если параметр не задан, сборка и публикация метрик производиться не будет
- #
- Addr = "http://localhost:3830"
- #
- # Счетчик обработанных запросов включен
- #
- RequestCountEnabled = true
- #
- # Сбор сводной информации о времени обработанных запросов включен
- #
- RequestSummaryEnabled = true
- }
- #
- # Настройки аутентификации
- #
- Authentification = {
- #
- # Строка подключения к БД
- #
- DB.ConnectionString = "Password=123;Persist Security Info=True;User ID=datahub;Initial Catalog=trade_vtb24;Data Source=sql.eftr.local;App=EFTR.Gate.Keeper; Max Pool Size=1000",
- #
- # Заголовки запроса с дополнительными параметрами запроса
- #
- InputHeaders = {
- #
- # Наименование продукта
- #
- Product = "X-EFTR-Product-Id"
- }
- #
- # Заголовки ответа, в которые помещаются результат
- #
- OutputHeaders = {
- #
- # Заголовок куда помещается идентификатор пользователя
- #
- UserId = "X-EFTR-UserId"
- #
- # Заголовок куда помещается идентификатор сессии
- #
- SessionId = "X-EFTR-SessionId"
- }
- #
- # Правила для проверки запроса.
- # $Type - Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
- #
- Rules: [
- {
- #
- # Провайдер аутентификации для которого актуально данное правило
- #
- Provider = "EFTR2"
- #
- # Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
- #
- "$Type": "EFTR",
- #
- # Режим перeдачи токена (параметр является флагом, значения можно комбинировать)
- # Возможные значения
- # 1 - "QueryString" передача через url запроса
- # 2 - "Cookie" передача через куки "token"
- # 4 - "Header" передача в заголовке Authorization с типом Bearer
- #
- TransferMode = 1
- #
- # Заголовок в котором передается токен. Опционально. Если не задан то токен берется из заголовка Authorization
- #
- TokenHeaderName = "Authorization"
- #
- # Префикс перед токеном в значении заголовка указанного в параметре TokenHeaderName.
- # Если значение не задано используется значение по умолчанию 'Bearer ' (пробел в конце обязателен, тк идет сравнение типа StartWith)
- #
- TokenHeaderPrefix = "Bearer "
- #
- # Ключ для валидации токена в формате HEX string
- #
- ValidationKey = "8ABAEC9AF66BDCBAE5E8CC84AB8E9E0FE0B168851E5A803CE768D7D3F750033B332C77C902F16B2FF4C1432D3BF7EEC9873D48773FE35E38942B28589DE351AD"
- },
- {
- #
- # Провайдер аутентификации для которого актуально данное правило
- #
- Provider = "VTB"
- #
- # Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
- #
- "$Type": "JWT",
- #
- # Режим перeдачи токена (параметр является флагом, значения можно комбинировать)
- # Возможные значения
- # 1 - "QueryString" передача через url запроса
- # 2 - "Cookie" передача через куки "token"
- # 4 - "Header" передача в заголовке Authorization с типом Bearer
- #
- TransferMode = 1
- #
- # Открывать новую сессию, в случае если при проверке запроса не найдена соответствующая сессия
- # В случае если параметр установлен будет открыта новая сессия с параметрами, соответствующими параметрам запроса
- #
- NeedCreateNewSession = true
- #
- # Заголовок в котором передается токен. Опционально. Если не задан то токен берется из заголовка Authorization
- #
- TokenHeaderName = "Authorization"
- #
- # Префикс перед токеном в значении заголовка указанного в параметре TokenHeaderName.
- # Если значение не задано используется значение по умолчанию 'Bearer ' (пробел в конце обязателен, тк идет сравнение типа StartWith)
- #
- TokenHeaderPrefix = "Bearer "
- #
- # Поле токена, значение которого будет использоваться в качестве идентификатора пользователя
- #
- UserIdPayloadKey = ClientId
- #
- # Валидировать время экспирации
- #
- ValidateExpirationTime = "true",
- #
- # Валидировать Audiences
- #
- ValidateAudience = "true",
- #
- # Валидировать эмитента, выпускающего токен
- #
- ValidateIssuer = "false",
- #
- # Валидировать время жизни токена
- #
- ValidateLifetime = "false",
- #
- # Валидировать подпись
- #
- ValidateIssuerSigningKey = "true",
- #
- # Валидные Audiences. Необходимо заполнить если указан ValidateAudience
- #
- ValidAudiences = ["eftr-auth"],
- #
- # Валидные эмитенты. Необходимо заполнить если указан ValidateIssuer
- #
- ValidIssuers = ["http=#b7edee63.ngrok.io/auth/realms/master"],
- #
- # Проверять наличие подписи
- #
- RequireSign = true
- #
- # Ключи для проверки подписи. Необходимо заполнить если указан ValidateIssuerSigningKey
- #
- IssuerSigningKeys = [
- {
- # Тип ключа. Список поддерживаемых типов=
- # HS256, HS384, HS512 - читается вложенный тег "Raw" (должен быть в формате base64) и используется в качестве секрета
- # RS256, RS384, RS512 - читается вложенный тег "Raw" и используется в качестве сертификата в PEM формате
- "Type" = "HS256",
- #
- # Содержимое ключа, интерпретацию см в описании поля Type
- #
- "Raw" = "QG1FQ1E9TWMrKz1KO0UpfVhnX0ozXVRjamRwWz5bKV1l"
- #
- # Уникальный идентификатор ключа. Используется для поиска ключа по значению kid поля jwt токена. Опционльно
- #
- KeyId = "fa7df822-ce3f-497b-b75e-1942a36c3548"
- }
- ]
- },
- {
- #
- # Провайдер аутентификации для которого актуально данное правило
- #
- Provider = "X509Certfificate"
- #
- # Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
- #
- "$Type": "X509ClientCertificate",
- # Режим валидации сертификата. Представляет из себя список режимов через разделитель ","
- # Полный список значений и их описание https://docs.microsoft.com/ru-ru/dotnet/api/system.security.cryptography.x509certificates.x509verificationflags?redirectedfrom=MSDN&view=netframework-4.5.2
- Mode = "IgnoreInvalidBasicConstraints"
- # Параметр сертификата, значение которого будет использовано в качестве идентификатора пользователя при выполнении аутентификации
- UserIdPropertyName = "SubjectName"
- # Проверять значение подписанта
- ValidateIssuer = true
- #
- # Режим перeдачи токена (параметр является флагом, значения можно комбинировать)
- # Возможные значения
- # 1 - "QueryString" передача через url запроса
- # 2 - "Cookie" передача через куки "token"
- # 4 - "Header" передача в заголовке Authorization с типом Bearer
- #
- TransferMode = 15
- #
- # Открывать новую сессию, в случае если при проверке запроса не найдена соответствующая сессия
- # В случае если параметр установлен будет открыта новая сессия с параметрами, соответствующими параметрам запроса
- #
- NeedCreateNewSession = true
- #
- # Заголовок в котором передается токен. Опционально. Если не задан то токен берется из заголовка Authorization
- #
- TokenHeaderName = "Authorization"
- #
- # Префикс перед токеном в значении заголовка указанного в параметре TokenHeaderName.
- # Если значение не задано используется значение по умолчанию 'Bearer ' (пробел в конце обязателен, тк идет сравнение типа StartWith)
- #
- TokenHeaderPrefix = "Bearer "
- #
- # Хранилище для поиска сертификатов. Задаётся как строка с префиксом
- # Возможные значения префикса
- # store:// - Только для Windows. Поиск проивзодится по хранилищу сертификатов.
- # Если после префикса задано значение LOCAL_MACHINE то поиск будет производится в хранилище для текущей машины.
- # Иначе поиск производится в хранилище для текущего пользователя
- # file:/// - сертификат ищется в файле в формате PKCS#12. В случае если путь задается с ~ то считается что это относительный путь
- #
- Store = [
- "store://LOCAL_MACHINE"
- # "file:///~/App_Data/1.pfx"
- ]
- # Список идентификаторов oid политик (policy) EKU, которые должен поддерживать сертификат. Опционально
- ApplicationPolicy = [
- "1.3.6.1.5.5.7.3.3"
- ]
- # Список идентификаторов oid политик (policy) которые должен поддерживать сертификат. Опционально
- CertificatePolicy = [
- ]
- #
- # Валидировать подписанта
- #
- ValidateIssuer="true"
- #
- # Список валидных подписантов для провайдера, в случае если установлен параметр ValidateIssuer
- #
- ValidIssuers = ["CN=serverName, OU=unit, O=company, L=City, S=33Reg, C=RU", "CN=testF, OU=UnitName, O=company, L=vld, S=state, C=AU"]
- #
- # Режим проверки сертификата. Список значений и описание https://docs.microsoft.com/ru-ru/dotnet/api/system.security.cryptography.x509certificates.x509verificationflags?view=netframework-4.8
- #
- Mode="IgnoreInvalidBasicConstraints"
- #
- # Поле сертификата, значение которого используется в качетсве идентификатора пользователя
- #
- UserIdPropertyName="SubjectName"
- },
- {
- #
- # Провайдер аутентификации для которого актуально данное правило
- #
- Provider = "VTBTrustedAuth",
- #
- # Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
- #
- "$Type": "Trusted",
- #
- # Режим перeдачи токена (параметр является флагом, значения можно комбинировать)
- # Возможные значения
- # 1 - "QueryString" передача через url запроса
- # 2 - "Cookie" передача через куки "token"
- # 4 - "Header" передача в заголовке Authorization с типом Bearer
- #
- TransferMode = 1
- #
- # Открывать новую сессию, в случае если при проверке запроса не найдена соответствующая сессия
- # В случае если параметр установлен будет открыта новая сессия с параметрами, соответствующими параметрам запроса
- #
- NeedCreateNewSession = true
- #
- # Использование внешнего идентификатора сессии
- # В целях оптимизации количества проверок доверенная сторона может открывать свои сесии.
- # При включении данного параметра сохраняется связка внешней сессии доверенной стороны и сессии DataHub
- #
- UseExternalSessionId = true
- # Наименование заголовка с идентификатором внешней сессии, если установлен параметр UseExternalSessionId
- ExternalSessionIdHeaderName = "X-Session-Id"
- # Наименование заголовка в котором передается "секрет" с доверенной стороны. Это необходимо для защиты DataHub-а от вызовов, провизведенных в обход доверенной стороны
- SecretHeaderName = "X-EFTRAuth-Secret"
- # Список валидных значений "секрета" для провайдера
- ValidSecrets = ["OGVmNGNjN2U4NjBiYmEwZWY4NmQxMTBj"]
- }
- ]
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement