Разработка ABAC политик авторизации
Авторизация запросов в API выполняется при обработке запроса на Spirit IAP (Oathkeeper), в который встроен авторизатор Open Policy Agent (OPA).
Язык для разработки политик авторизации — Rego. В статье рассмотрены примеры прав ил для MtRBAC-модели Spirit IAM.
Политики хранятся децентрализованно, подключаются к конкретному инстансу защищаемого бэкенда.
Политики авторизации следует писать только для API конкретного защищаемого бэкенда.
Актуальная версия Spirit IAP предоставляет работу с Rego v0 и Rego v1. Чтобы включить Rego v1, в конфигурационном файле для opa-builtin присвойте параметру rego_v1_enabled значение true.
Пример конфига opa-builtin
rego_v1_enabled: true
query: data.http.authz
paths_to_policies:
- /etc/opa-config/policies
- /etc/opa-config/data
integrated_systems_fetcher:
enabled: false
Пример фрагмента конфига IAP с указанием конфига opa-builtin
opa_builtin:
config: /etc/opa-builtin/opa-builtin.yaml
При загрузке политики, пути до которых передаются через параметр конфига paths_to_policies, должны относиться к одной версии Rego.
При разработке политики можно использовать следующие данные:
- Контекст запроса (URI, метод, тело запроса, query-параметры, заголовки запроса).
- Контекст пользователя (данные аутентификации).
- (Опционально) Данные из внешних источников, которые могут представлять собой:
- статические данные, подключаемые вместе с набором политик.