Перейти к основному контенту

Авторизация служебной ячейки через посланника

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() в сервере авторизации.

Использование

  • Определите политику Casbin под конфигурационными файлами, следуя руководству.

You can verify/test your policies on online casbin-editor.

  • Запустите сервер авторизации при запуске:-
$ go build .
$ ./authz
  • Загрузить конфигурацию посланника:-
$  envoy -c authz.yaml -l info

Как только посланник начнется, он начнет перехватывать запросы на авторизацию.

Интеграция в Истио

Вам нужно отправить пользовательские заголовки, в которых будут содержаться имена пользователей в токене JWT для работы этого middleware. Вы можете проверить официальный документацию Istio , чтобы получить больше информации об изменении Заголовки Запросов.