Настройка Blitz Keeper#

Настройка шлюза безопасности Blitz Keeper осуществляется путем редактирования конфигурационного файла blitz-keeper.conf, расположенного в каталоге /etc/blitz-keeper. Пример конфигурационного файла:

{
  "authenticators": {
    "prod-auth": {
      "type": "token-exchange",
      "te": "https://blitz-host/blitz/oauth/te",
    },
  },
  "services" : {
    "api-1":{
      "display-name" : "secured services",
      "host": "service-host.com",
      "locations": {
        "/api/service1/**": {
          "methods" : ["GET","POST"],
          "authenticator": "prod-auth",
          "required-scopes": ["scope1","scope2"]
        },
        "/path/api/user/*/getdata/**": {
          "methods" : ["GET","PUT"],
          "authenticator": "prod-auth",
          "required-scopes": ["scope3"]
        }
      }
    }
  }
}

В блоке authenticators нужно зарегистрировать все используемые сервисы авторизации blitz-idp. Обычно достаточно использовать один единственный сервис авторизации для защиты сервисов, и тогда нужно заполнить только один блок как в примере (в примере зарегистрирован один сервис авторизации с именем prod-auth). Если в системе используется несколько раздельных установок Blitz Identity Provider (например, ПРОД- и ТЕСТ-среда или внутренний контур для сотрудников и внешний контур для клиентов), то можно использовать общий шлюз безопасности, который будет взаимодействовать с несколькими разными сервисами авторизации – тогда нужно в блоке authenticators задать настройки нескольких сервисов авторизации. Для каждого сервиса авторизации задается имя (в примере использован prod-auth, но можно задать любое имя). В блоке настроек сервиса авторизации задается тип взаимодействия (type) в значении token-exchange (пока это единственный поддерживаемый тип взаимодействия) и адрес (te) вызова обработчика Token Endpoint сервиса авторизации. Если blitz-keeper развернут на отдельных серверах, то рекомендуется задать адрес обработчика с https и доменным именем. Если приложение blitz keeper развернуто на том же сервере что сервис авторизации blitz-idp, то рекомендуется задать в te локальное имя, например, http://localhost:9000/blitz/oauth/te.

В блоке services нужно зарегистрировать защищаемые сервисы. Для всех защищаемых сервисов можно создать общий блок настроек или несколько отдельных блоков. Каждый блок имеет имя (в примере, api-1). Внутри блока задаются настройки:

  • display-name – текстовое описание сервиса (любой комментарий или описание);

  • host – адрес сервера защищаемого сервиса;

  • locations – допустимые пути и операции вызова сервиса.

В блоке locations указываются настройки всех путей сервиса и разрешенных методов. В качестве имени каждого вложенного блока указывается адрес сервиса. Допустимо в адресе использовать звездочку (*), чтобы указать на пропуск отдельного компонента в адресе пути сервиса и допустимо использовать двойную звездочку (**), чтобы указать, что вся оставшаяся часть пути сервиса может быть любая. Внутри вложенного блока с адресом сервиса можно опционально перечислить разрешенные методы сервиса (настройка methods), указать имя используемого сервиса авторизации (настройка authenticator) и перечень разрешений (настройка required-scopes) для целевого маркера доступа, которые будут включены в маркер доступа, передаваемый в защищаемый сервис.

После изменения настроек в blitz-keeper.conf необходимо перезапустить шлюз безопасности.