Мы выбрали keycloak для аутентификации и авторизации для сервисов весенней загрузки.Мы успешно внедрили RBAC
usecase.Но мы хотим перейти на ABAC
, где это дает нам много контроля.Мы посмотрели на CIP (пункт информации о претензиях) и протестировали его, выдвинув претензию из app.properties и проверив ее в политике js.Но наше требование состоит в том, чтобы получить тип метода http и проверить, является ли он GET / POST / PUT / DELETE и т. Д., А затем решить, разрешать или нет по роли.Мы достигли его, бросив ниже config в application.properties
keycloak.policy-enforcer-config.paths[0].path=/*
keycloak.policy-enforcer-config.paths[0].claimInformationPointConfig.claims[claim-from-method]={request.method}
И проверив это в политике js, как показано ниже
var context = $evaluation.context;
var attributes = context.attributes;
if (attributes.containsValue('some-claim', 'claim-value')) {
$evaluation.grant();
}
Но я видел, что есть HttpClaimInformationPointProvider
и , поэтомухочет выяснить, есть ли способ проверить это непосредственно в js-policy, не выталкивая его из app.properties.