Авторизация служебной ячейки через посланника
Envoy-authz является средним ПОЛОЖЕНИЕМ Посланника, который выполняет внешние RBAC & ABAC авторизации через казино. Этот middleware использует внешний API авторизации через gRPC сервер. Этот прокси будет развернут на любых типах сеток сервисов типа Istio.
Требования
- Посланник 117 +
- Истио или сетка любого типа обслуживания
- зависимости grpc
Зависимости управляются через go.mod
.
Работа с Middleware
- Клиент сделает http запрос.
- Попросите прокси отправить этот запрос на grpc сервер.
- Затем сервер grpc санкционирует запрос на основе политики казино.
- Если запрос будет отправлен через него или иначе, он будет отклонен.
Сервер grpc основан на буфере протокола external_auth.proto от Envoy.
// Общий интерфейс для выполнения проверки авторизации при входящем
// к сетевой службе.
сервис Authorization {
// Проверка авторизации на основе атрибутов, связанных с
// входящий запрос, и возвращает статус `OK` или не `OK`.
Возврат rpc Check(v2.CheckRequest) (v2.CheckResponse);
}
Для этого мы должны использовать службу Check()
в сервере авторизации.
Использование
- Define the Casbin policies under config files by following this guide.
You can verify/test your policies on online casbin-editor.
- Запустите сервер авторизации при запуске:-
$ идите сборку .
$ ./authz
- Загрузить конфигурацию посланника:-
$ envoy -c authz.yaml -l info
Как только посланник начнется, он начнет перехватывать запросы на авторизацию.
Интеграция в Истио
Вам нужно отправить пользовательские заголовки, в которых будут содержаться имена пользователей в токене JWT для работы этого middleware. Вы можете проверить официальный документацию Istio , чтобы получить больше информации об изменении Заголовки Запросов
.