Настройка 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
необходимо перезапустить шлюз безопасности.