powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / ABAC
25 сообщений из 60, страница 1 из 3
ABAC
    #40073982
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Подскажите был ли у кого опыт построения ABAC на java
Какой подход использовали,какие либы или фреймворки - интересен лично ваш опыт или ваших знакомых
...
Рейтинг: 0 / 0
ABAC
    #40074088
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас, тебе для чего все это? собираешься делать PEP и PIP, или вообще все? оно вообще не особо распространено ввиду сложности из-за гибкости (ну плюс в XACML не особо-то и удобный xml), вот есть такие ссылки по теме:
https://en.wikipedia.org/wiki/XACML
https://habr.com/ru/company/custis/blog/258861/
https://github.com/CUSTIS-public/EasyABAC
https://github.com/authzforce/core

я делал нечто подобное "по мотивам", т.е. чтобы было похоже на то, как компоненты взаимодействуют друг с другом, но без XML, администрирования и обязательств.
...
Рейтинг: 0 / 0
ABAC
    #40074111
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Стас, тебе для чего все это? собираешься делать PEP и PIP, или вообще все? оно вообще не особо распространено ввиду сложности из-за гибкости (ну плюс в XACML не особо-то и удобный xml), вот есть такие ссылки по теме:
https://en.wikipedia.org/wiki/XACML
https://habr.com/ru/company/custis/blog/258861/
https://github.com/CUSTIS-public/EasyABAC
https://github.com/authzforce/core

я делал нечто подобное "по мотивам", т.е. чтобы было похоже на то, как компоненты взаимодействуют друг с другом, но без XML, администрирования и обязательств.

Привет.Есть задача шарить ресурсы по ролям ,поэтому рбак нам не подходит
XACML я смотрел ,но как ты заметил это xml и не очень удобный

пс.а что можешь сказать про изиАБАК?
...
Рейтинг: 0 / 0
ABAC
    #40074119
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Есть задача шарить ресурсы по ролям ,поэтому рбак нам не подходит
XACML я смотрел ,но как ты заметил это xml и не очень удобный


С таким рассказом шансов на реализацию у тебя крайне мало...

вот есть схема взаимодействия компонент:



на этой схеме:
- PEP - это то, что защищает какой-то ресурс/метод и пр., т.е. в приложении в большинстве случаев - это какой-то сервис, через/перед который производятся обращения к данным, он кидает запрос в PDP и оттуда получает в первом приближении ответ да/нет/неприменимо
- PDP - в общем случае оно может жить даже не в приложении, а где-то во вне, делает такое: обогащает запрос, пришедший от PEP, данными (т.е. обращается каким-то образом к PIP), если нужно, прогоняет его через реестр политик, в результате чего формируется ответ для PEP
- PAP - оно всю эту историю администрирует

с большой долей вероятности тебе ABAC не нужен, от слова совсем, потому что цели у него отличаются от "шарить ресурсы по ролям", основная цель у него - получение единой точки управления ИБ в инфраструктуре предприятия, и скорее всего тебе нужно в каком-нить @PreAuthorize "расширить" евойные возможности как-то так:
- можно сделать свой PermissionEvaluator и трактовать hasPermission() так как тебе хочется
- можно расширить SecurityExpressionRoot в DefaultMethodSecurityExpressionHandler#createSecurityExpressionRoot и реализовать свои собственные выражения
...
Рейтинг: 0 / 0
ABAC
    #40074144
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Вы не потянете сабж.
Запустите хоть раз Spring Security. Он как раз шарит ресурсы по ролям.
Уж это надо знать то.
Вы и токены ни разу не пробовали по спецификации кодировать.
...
Рейтинг: 0 / 0
ABAC
    #40074148
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов


с большой долей вероятности тебе ABAC не нужен, от слова совсем, потому что цели у него отличаются от "шарить ресурсы по ролям", основная цель у него - получение единой точки управления ИБ в инфраструктуре предприятия, и скорее всего тебе нужно в каком-нить @PreAuthorize "расширить" евойные возможности как-то так:
- можно сделать свой PermissionEvaluator и трактовать hasPermission() так как тебе хочется
- можно расширить SecurityExpressionRoot в DefaultMethodSecurityExpressionHandler#createSecurityExpressionRoot и реализовать свои собственные выражения


Я просто плохо объяснил ,что мы хотим построить
Мы вводим систему ролей и тарифов, наш сервис предоставляет N-количество услуг
нужно
1 разграничить доступ к этим услугам потарифно- вот это можно сделать с RBAC
2 Но есть услуги ,которые подразделяются внутри себя на типы и вот тут уже проблема
тариф А улуга 1 - тип 1,тип 8 ,тип 12
Тариф Б услуга 1 - типы 2,14 и тд
тоесть клиент с соотвествующим типом тарифа должен зайти на страницу получения услуги 1 и увидеть только те типы,которые ему allowed,соотвественно сама услуга представляет из себя слой достаточно сложной логики( у каждого типа своя логика) ,а также запись/чтение в бд - где так же соотвественно свои представления для каждого подтипа
и тут уже RBAC не подходит,не конечно можно сделать 10 этажные expression ,но как потом это все поддерживать и масштабировать
другое дело ABAC есть набор политик для каждого тарифа - пользователь зашел на страницу услуги 1,чекер ( это из изиАБАС я подсмотрел) проверил пермиты и выдал ресурсы согласно политики
Чем это удобно ,все это не хардкодится а выводится в yaml конфиги ,где можно описать все политики( опять же из изиАБАС если я правильно там все понял) и моментально что то изменить/добавить/расширить даже без пересборки
...
Рейтинг: 0 / 0
ABAC
    #40074150
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
автортариф А улуга 1 - тип 1,тип 8 ,тип 12
Тариф Б услуга 1 - типы 2,14 и тд
Слово не тариф, тип, услуга а РОЛЬ нужно за вас писать.
Вы любите когда за вас делают вашу работу?
...
Рейтинг: 0 / 0
ABAC
    #40074151
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Ну и напомню, что RBAC это роли бизнеса.
А тариф и услуга это ресурс.
А то вы начнете вводить роль тариф)))
...
Рейтинг: 0 / 0
ABAC
    #40074155
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,
Ну и напомню, что RBAC это роли бизнеса.
А тариф и услуга это ресурс.
А то вы начнете вводить роль тариф)))

ну вообще да, смысл такой - потарифно разграничить доступ к ресурсам
...
Рейтинг: 0 / 0
ABAC
    #40074156
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,
Ну и напомню, что RBAC это роли бизнеса.

роли у нас реализованы на ss и тут нет ни вопросов ,ни проблем
нужно так чтобы клиент ,который купил у нас соотвествующий тариф получал только то,что ему положено и ничего лишнего- тоесть арибутная модель
...
Рейтинг: 0 / 0
ABAC
    #40074159
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
asv79,
Ну и напомню, что RBAC это роли бизнеса.

роли у нас реализованы на ss и тут нет ни вопросов ,ни проблем
нужно так чтобы клиент ,который купил у нас соотвествующий тариф получал только то,что ему положено и ничего лишнего- тоесть арибутная модель
нет конкретики.
Это звучит как "Мир во всем мире".
Ты очень часто усложняешь проблему в своих вопросах.
КОНКРЕТНЕЕ И С РОЛЯМИ.
...
Рейтинг: 0 / 0
ABAC
    #40074161
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
asv79,
Ну и напомню, что RBAC это роли бизнеса.
А тариф и услуга это ресурс.
А то вы начнете вводить роль тариф)))

ну вообще да, смысл такой - потарифно разграничить доступ к ресурсам

Ужас. Не потарифно надо, а по ролям))
Входит 10 юзверей с одной ролью Карл!
...
Рейтинг: 0 / 0
ABAC
    #40074174
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
атрибутная модель


ты слово "атрибут" неправильно понимаешь: в ABAC "атрибут" - это нечто, существующее в рамках контекста, используемого для принятия решения, и к бизнес-логике он имеет отношение постольку-поскольку.
...
Рейтинг: 0 / 0
ABAC
    #40074205
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79
атрибутная модель


ты слово "атрибут" неправильно понимаешь: в ABAC "атрибут" - это нечто, существующее в рамках контекста, используемого для принятия решения, и к бизнес-логике он имеет отношение постольку-поскольку.

может и так,по факту нужно сделать доступ к ресурсам согласно тарифа
...
Рейтинг: 0 / 0
ABAC
    #40075011
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кто то сказать по опыту с easyAbac фреймоврком- насколько сложно его прикрутить к уже существующему проекту,в том числе где реализован RBAC на сприг секурити.
В проекте есть такое понятие как шаринг неких бизнес объектов ,которые состоят из неких подтипов( вот эти подтипы как раз должны проверяться политиками доступа)
грубо говоря я купил тариф ДОРОГО-БОГАТО и мне доступно собрать бизнес объект на типах А и Б
второй клиент купил тариф Дешево-сердито и ему доступно лишь сборка объекта на типе А
при попытке расшарить мой бизнес объект на типах А и Б этому клиенту должен быть deny ,так как его тариф не включает в себя доступ к типам Б


сделать такое на спринг секьюрити скоей всего просто невозможно
...
Рейтинг: 0 / 0
ABAC
    #40075022
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

>сделать такое на спринг секьюрити скоей всего просто невозможно
== что за манера бла бла
99,9 проектов работают на ролях и вполне успешно.
Покажи реально что именно не работает.
REST или нет.
Писал хоть строчку кода или нет.
Так все вопросы ранее про токены у тебя были велосипедищи и "не могу рассказывать"
...
Рейтинг: 0 / 0
ABAC
    #40075029
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,

>сделать такое на спринг секьюрити скоей всего просто невозможно
== что за манера бла бла
99,9 проектов работают на ролях и вполне успешно.
Покажи реально что именно не работает.
REST или нет.
Писал хоть строчку кода или нет.
Так все вопросы ранее про токены у тебя были велосипедищи и "не могу рассказывать"

да все на рестпоинтах
Например как пример у меня есть ресурс( который состоит из подресурсов) и человек не должен его получать если какие то из подресурсов не входят в его тариф - как я выше уже написал
в джава коде это будет объект например с коллекцией <? extentds Foo> так вот у этого фоо есть наследники - которые грубо говоря и входят в тариф
и нужно вот так если от юзера на тарифе а поступbл запрос на получение объекта со списком extents Foo и в этом списке есть те типы фоо,которые не входят в его тариф то доступа у него не должно быть к этому объекту
ну как то так ,объяснил как смог)
...
Рейтинг: 0 / 0
ABAC
    #40075044
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
>этом списке есть те типы фоо,
= на входе список полиморфных объектов.
То есть в списке как базовый класс, так и Разного типа наследники. Так?
Модель в бд какая?
Тариф - Услуга - Тип.
Или услуга это просто страничка на экране?
...
Рейтинг: 0 / 0
ABAC
    #40075051
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь по рест:
Вариант1 это в лоб
/res/tarifs/{tarifid}/types
Страничка услуга.html по этому адресу.
Так?
...
Рейтинг: 0 / 0
ABAC
    #40075054
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно как должен действовать контроллер в этом случае. Поциент запросил объект к которому не имел прав.
Что ему выдать. HTTP-403? Или контроллер должен каким-то образом делать фильтрацию и преобразование ответа
с учотом ролей?
...
Рейтинг: 0 / 0
ABAC
    #40075066
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далее про Spring security
Он имеет около 25 филтров при прохождении запроса.
Он имеет механизм голосования основанный на ролях
Он имеет настройку AccessDecissionManager в котором ВСЯ инфа о запросе, учетке, конфиге и системе.
Что еще надо то, программист?
...
Рейтинг: 0 / 0
ABAC
    #40075068
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Первый уровень везде это защита по урл.
А урл как построите рест.
А если урл пускает то вторая линия смотрит дальше.
Это везде так.
Если урл закрыт до контроллера не дойдет вообще.
...
Рейтинг: 0 / 0
ABAC
    #40075070
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут нет ответа на вопрос. Что-же хочет бизнес? Показывать частично усеченный объект?
...
Рейтинг: 0 / 0
ABAC
    #40075072
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ну, если гадать на кофе и моя догадка верна.
То у него модель
авторМодель в бд какая?
Тариф - Услуга - Тип.
Тариф - > Тип один ко многим.
Тогда чел НИКОГДА не получит типы не свои при данном тарифе))))))
...
Рейтинг: 0 / 0
ABAC
    #40075073
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Всё всегда надо начинать с Модели (с)
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / ABAC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]