SHARE
TWEET

Untitled

a guest Feb 27th, 2020 101 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #
  2. # Настройки HTTP сервера
  3. #
  4. Server = {
  5.   #
  6.   # Настройки Endpoint-a
  7.   # задаются в формате Endpoints.<EndpointName> = { ... }
  8.   # Основные параметры
  9.   # Url - Прослушиваемый Url
  10.   # Certificate - Конфигурация серверного сертификата. Только для https
  11.   #   Path - путь к файлу сертификата в формате PKCS#12. Если путь не задан то сертификат ищется в хранилище согласно настройкам
  12.   #   Password - пароль
  13.   #   Store - Хранилище сертификатов для поиска. Возможные значения (LocalMachine или CurrentUser)
  14.   #   Location - Расположение сертификатов для поиска. Возможные значения (TrustedPublisher, AddressBook, AuthRoot, CertificateAuthority, Disallowed, My, Root, TrustedPeople)
  15.   #   AllowInvalid - Разрешить сертификаты с невалидной подписью
  16.   #
  17.   Endpoints.MainHttp.Url = "http://localhost:3828"
  18.   Endpoints.BackupHttp = {
  19.     Url = "http://localhost:3829"
  20.   #     Certificate = {
  21.   #     Path = "testCert.pfx"
  22.   #     Password =  "testPassword"
  23.   # }
  24.   },
  25. # Endpoints.SecuredHttp = {
  26. #   Url = "https://localhost:3840"
  27. #       Certificate = {
  28. #       Store = "My"
  29. #       Location = "CurrentUser"
  30. #       Subject = "Subject"
  31. #       Password =  "testPassword"
  32. #       AllowInvalid = false
  33. #   }
  34. # }
  35. }
  36.  
  37. #
  38. # Настройки логирования
  39. #
  40. Logging = {
  41.   LogLevel = {
  42.     #
  43.     # Минимальный "уровень" сообщений которые записываются в лог
  44.     # Возможные значения Trace, Debug, Information, Warning, Error, Critical, None
  45.     #
  46.     Default = "Information"
  47.   }
  48. }
  49.  
  50. #
  51. # Настройки безопасности. Время кеширования списка разрешенных операций в разрезе пользователя и продукта
  52. #
  53. #Security.AllowedOperationsCacheTimeout = "00:02:00"
  54.  
  55. #
  56. # Настройка подключения к базе данных
  57. #
  58. Database.ConnectionString = "User ID=datahub;Password=123;Initial Catalog=trade_vtb24;Data Source=sql.eftr.lan; App=EFTR.Gate.Keeper"
  59.  
  60. #
  61. # Настройка сборки и публикации метрик
  62. #
  63. Metrics = {
  64.  
  65.   #
  66.   # Сборка и публикация метрик включена
  67.   #
  68.   Enabled = true
  69.  
  70.   #
  71.   # URI для сбора метрик Prometheus
  72.   # В случае если параметр не задан, сборка и публикация метрик производиться не будет
  73.   #
  74.   Addr = "http://localhost:3830"
  75.  
  76.   #
  77.   # Счетчик обработанных запросов включен
  78.   #
  79.   RequestCountEnabled = true
  80.  
  81.   #
  82.   # Сбор сводной информации о времени обработанных запросов включен
  83.   #
  84.   RequestSummaryEnabled = true
  85. }
  86.  
  87. #
  88. # Настройки аутентификации
  89. #
  90. Authentification = {
  91.  
  92.   #
  93.   # Строка подключения к БД
  94.   #
  95.   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",
  96.    
  97.   #
  98.   # Заголовки запроса с дополнительными параметрами запроса
  99.   #
  100.   InputHeaders = {
  101.     #
  102.     # Наименование продукта
  103.     #
  104.     Product = "X-EFTR-Product-Id"
  105.   }
  106.  
  107.   #
  108.   # Заголовки ответа, в которые помещаются результат
  109.   #
  110.   OutputHeaders = {
  111.    
  112.     #
  113.     # Заголовок куда помещается идентификатор пользователя
  114.     #
  115.     UserId = "X-EFTR-UserId"
  116.  
  117.     #
  118.     # Заголовок куда помещается идентификатор сессии
  119.     #
  120.     SessionId = "X-EFTR-SessionId"
  121.   }
  122.  
  123.   #
  124.   # Правила для проверки запроса.
  125.   # $Type - Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
  126.   #
  127.   Rules: [
  128.     {    
  129.       #
  130.       # Провайдер аутентификации для которого актуально данное правило
  131.       #
  132.       Provider = "EFTR2"
  133.  
  134.       #
  135.       # Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
  136.       #
  137.       "$Type": "EFTR",      
  138.      
  139.       #
  140.       # Режим перeдачи токена (параметр является флагом, значения можно комбинировать)
  141.       # Возможные значения
  142.       # 1 - "QueryString" передача через url запроса
  143.       # 2 - "Cookie" передача через куки "token"
  144.       # 4 - "Header" передача в заголовке Authorization с типом Bearer
  145.       #
  146.       TransferMode = 1
  147.  
  148.       #
  149.       # Заголовок в котором передается токен. Опционально. Если не задан то токен берется из заголовка Authorization
  150.       #
  151.       TokenHeaderName = "Authorization"
  152.  
  153.       #
  154.       # Префикс перед токеном в значении заголовка указанного в параметре TokenHeaderName.
  155.       # Если значение не задано используется значение по умолчанию 'Bearer ' (пробел в конце обязателен, тк идет сравнение типа StartWith)
  156.       #
  157.       TokenHeaderPrefix = "Bearer "
  158.      
  159.       #
  160.       # Ключ для валидации токена в формате HEX string
  161.       #
  162.       ValidationKey = "8ABAEC9AF66BDCBAE5E8CC84AB8E9E0FE0B168851E5A803CE768D7D3F750033B332C77C902F16B2FF4C1432D3BF7EEC9873D48773FE35E38942B28589DE351AD"
  163.     },    
  164.     {
  165.       #
  166.       # Провайдер аутентификации для которого актуально данное правило
  167.       #
  168.       Provider = "VTB"
  169.  
  170.       #
  171.       # Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
  172.       #
  173.       "$Type": "JWT",
  174.      
  175.       #
  176.       # Режим перeдачи токена (параметр является флагом, значения можно комбинировать)
  177.       # Возможные значения
  178.       # 1 - "QueryString" передача через url запроса
  179.       # 2 - "Cookie" передача через куки "token"
  180.       # 4 - "Header" передача в заголовке Authorization с типом Bearer
  181.       #
  182.       TransferMode = 1
  183.  
  184.       #
  185.       # Открывать новую сессию, в случае если при проверке запроса не найдена соответствующая сессия
  186.       # В случае если параметр установлен будет открыта новая сессия с параметрами, соответствующими параметрам запроса
  187.       #
  188.       NeedCreateNewSession = true
  189.  
  190.       #
  191.       # Заголовок в котором передается токен. Опционально. Если не задан то токен берется из заголовка Authorization
  192.       #
  193.       TokenHeaderName = "Authorization"
  194.  
  195.       #
  196.       # Префикс перед токеном в значении заголовка указанного в параметре TokenHeaderName.
  197.       # Если значение не задано используется значение по умолчанию 'Bearer ' (пробел в конце обязателен, тк идет сравнение типа StartWith)
  198.       #
  199.  
  200.       TokenHeaderPrefix = "Bearer "    
  201.  
  202.       #
  203.       # Поле токена, значение которого будет использоваться в качестве идентификатора пользователя
  204.       #
  205.       UserIdPayloadKey = ClientId
  206.    
  207.       #
  208.       # Валидировать время экспирации
  209.       #
  210.       ValidateExpirationTime = "true",
  211.      
  212.       #
  213.       # Валидировать Audiences
  214.       #
  215.       ValidateAudience = "true",
  216.      
  217.       #
  218.       # Валидировать эмитента, выпускающего токен
  219.       #
  220.       ValidateIssuer = "false",
  221.      
  222.       #
  223.       # Валидировать время жизни токена
  224.       #
  225.       ValidateLifetime = "false",
  226.      
  227.       #
  228.       # Валидировать подпись
  229.       #
  230.       ValidateIssuerSigningKey = "true",
  231.      
  232.       #
  233.       # Валидные Audiences. Необходимо заполнить если указан ValidateAudience
  234.       #
  235.       ValidAudiences = ["eftr-auth"],
  236.      
  237.       #
  238.       # Валидные эмитенты. Необходимо заполнить если указан ValidateIssuer
  239.       #
  240.       ValidIssuers = ["http=#b7edee63.ngrok.io/auth/realms/master"],
  241.      
  242.       #
  243.       # Проверять наличие подписи
  244.       #
  245.       RequireSign = true
  246.  
  247.       #
  248.       # Ключи для проверки подписи. Необходимо заполнить если указан ValidateIssuerSigningKey
  249.       #
  250.       IssuerSigningKeys = [
  251.         {
  252.           # Тип ключа. Список поддерживаемых типов=
  253.           # HS256, HS384, HS512 - читается вложенный тег "Raw" (должен быть в формате base64) и используется в качестве секрета
  254.           # RS256, RS384, RS512 - читается вложенный тег "Raw" и используется в качестве сертификата в PEM формате
  255.           "Type" = "HS256",
  256.          
  257.           #
  258.           # Содержимое ключа, интерпретацию см в описании поля Type
  259.           #
  260.           "Raw" = "QG1FQ1E9TWMrKz1KO0UpfVhnX0ozXVRjamRwWz5bKV1l"
  261.          
  262.           #
  263.           # Уникальный идентификатор ключа. Используется для поиска ключа по значению kid поля jwt токена. Опционльно
  264.           #
  265.           KeyId = "fa7df822-ce3f-497b-b75e-1942a36c3548"
  266.         }      
  267.       ]
  268.     },    
  269.     {
  270.       #
  271.       # Провайдер аутентификации для которого актуально данное правило
  272.       #
  273.       Provider = "X509Certfificate"
  274.  
  275.       #
  276.       # Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
  277.       #
  278.       "$Type": "X509ClientCertificate",  
  279.      
  280.       # Режим валидации сертификата. Представляет из себя список режимов через разделитель ","
  281.       # Полный список значений и их описание  https://docs.microsoft.com/ru-ru/dotnet/api/system.security.cryptography.x509certificates.x509verificationflags?redirectedfrom=MSDN&view=netframework-4.5.2        
  282.       Mode = "IgnoreInvalidBasicConstraints"
  283.       # Параметр сертификата, значение которого будет использовано в качестве идентификатора пользователя при выполнении аутентификации          
  284.       UserIdPropertyName = "SubjectName"
  285.       # Проверять значение подписанта
  286.       ValidateIssuer = true
  287.      
  288.       #
  289.       # Режим перeдачи токена (параметр является флагом, значения можно комбинировать)
  290.       # Возможные значения
  291.       # 1 - "QueryString" передача через url запроса
  292.       # 2 - "Cookie" передача через куки "token"
  293.       # 4 - "Header" передача в заголовке Authorization с типом Bearer
  294.       #
  295.       TransferMode = 15
  296.  
  297.       #
  298.       # Открывать новую сессию, в случае если при проверке запроса не найдена соответствующая сессия
  299.       # В случае если параметр установлен будет открыта новая сессия с параметрами, соответствующими параметрам запроса
  300.       #
  301.       NeedCreateNewSession = true
  302.  
  303.       #
  304.       # Заголовок в котором передается токен. Опционально. Если не задан то токен берется из заголовка Authorization
  305.       #
  306.       TokenHeaderName = "Authorization"
  307.  
  308.       #
  309.       # Префикс перед токеном в значении заголовка указанного в параметре TokenHeaderName.
  310.       # Если значение не задано используется значение по умолчанию 'Bearer ' (пробел в конце обязателен, тк идет сравнение типа StartWith)
  311.       #
  312.       TokenHeaderPrefix = "Bearer "    
  313.  
  314.       #
  315.       # Хранилище для поиска сертификатов. Задаётся как строка с префиксом
  316.       # Возможные значения префикса
  317.       #     store:// - Только для Windows. Поиск проивзодится по хранилищу сертификатов.
  318.       #                Если после префикса задано значение LOCAL_MACHINE то поиск будет производится в хранилище для текущей машины.
  319.       #                Иначе поиск производится в хранилище для текущего пользователя
  320.       #     file:/// - сертификат ищется в файле в формате PKCS#12. В случае если путь задается с ~ то считается что это относительный путь              
  321.       #
  322.       Store = [
  323.       "store://LOCAL_MACHINE"
  324.       # "file:///~/App_Data/1.pfx"
  325.       ]
  326.      
  327.       # Список идентификаторов oid политик (policy) EKU, которые должен поддерживать сертификат. Опционально
  328.       ApplicationPolicy = [
  329.        "1.3.6.1.5.5.7.3.3"
  330.       ]
  331.      
  332.       # Список идентификаторов oid политик (policy) которые должен поддерживать сертификат. Опционально
  333.       CertificatePolicy = [
  334.      
  335.       ]
  336.  
  337.       #
  338.       # Валидировать подписанта
  339.       #
  340.       ValidateIssuer="true"
  341.  
  342.       #
  343.       # Список валидных подписантов для провайдера, в случае если установлен параметр ValidateIssuer
  344.       #
  345.       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"]
  346.  
  347.       #
  348.       # Режим проверки сертификата. Список значений и описание https://docs.microsoft.com/ru-ru/dotnet/api/system.security.cryptography.x509certificates.x509verificationflags?view=netframework-4.8
  349.       #
  350.       Mode="IgnoreInvalidBasicConstraints"
  351.      
  352.       #
  353.       # Поле сертификата, значение которого используется в качетсве идентификатора пользователя
  354.       #
  355.       UserIdPropertyName="SubjectName"    
  356.     },
  357.    
  358.     {
  359.       #
  360.       # Провайдер аутентификации для которого актуально данное правило
  361.       #
  362.       Provider = "VTBTrustedAuth",
  363.  
  364.       #
  365.       # Тип правила для проверки. Допустимые значения EFTR, JWT, X509ClientCertificate, Trusted
  366.       #
  367.       "$Type": "Trusted",
  368.  
  369.       #
  370.       # Режим перeдачи токена (параметр является флагом, значения можно комбинировать)
  371.       # Возможные значения
  372.       # 1 - "QueryString" передача через url запроса
  373.       # 2 - "Cookie" передача через куки "token"
  374.       # 4 - "Header" передача в заголовке Authorization с типом Bearer
  375.       #
  376.       TransferMode = 1
  377.  
  378.       #
  379.       # Открывать новую сессию, в случае если при проверке запроса не найдена соответствующая сессия
  380.       # В случае если параметр установлен будет открыта новая сессия с параметрами, соответствующими параметрам запроса
  381.       #
  382.       NeedCreateNewSession = true
  383.  
  384.       #
  385.       # Использование внешнего идентификатора сессии
  386.       # В целях оптимизации количества проверок доверенная сторона может открывать свои сесии.
  387.       # При включении данного параметра сохраняется связка внешней сессии доверенной стороны и сессии DataHub
  388.       #
  389.       UseExternalSessionId = true
  390.      
  391.       # Наименование заголовка  с идентификатором внешней сессии, если установлен параметр UseExternalSessionId
  392.       ExternalSessionIdHeaderName = "X-Session-Id"
  393.      
  394.       # Наименование заголовка в котором передается "секрет" с доверенной стороны. Это необходимо для защиты DataHub-а от вызовов, провизведенных в обход доверенной стороны
  395.       SecretHeaderName = "X-EFTRAuth-Secret"
  396.        
  397.       # Список валидных значений "секрета" для провайдера
  398.       ValidSecrets = ["OGVmNGNjN2U4NjBiYmEwZWY4NmQxMTBj"]        
  399.     }
  400.   ]
  401. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top