|
ABAC
|
|||
---|---|---|---|
#18+
Всем привет! Подскажите был ли у кого опыт построения ABAC на java Какой подход использовали,какие либы или фреймворки - интересен лично ваш опыт или ваших знакомых ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 23:09 |
|
ABAC
|
|||
---|---|---|---|
#18+
Стас, тебе для чего все это? собираешься делать 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, администрирования и обязательств. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2021, 20:21 |
|
ABAC
|
|||
---|---|---|---|
#18+
Андрей Панфилов Стас, тебе для чего все это? собираешься делать 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 и не очень удобный пс.а что можешь сказать про изиАБАК? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2021, 23:27 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79 Есть задача шарить ресурсы по ролям ,поэтому рбак нам не подходит XACML я смотрел ,но как ты заметил это xml и не очень удобный С таким рассказом шансов на реализацию у тебя крайне мало... вот есть схема взаимодействия компонент: на этой схеме: - PEP - это то, что защищает какой-то ресурс/метод и пр., т.е. в приложении в большинстве случаев - это какой-то сервис, через/перед который производятся обращения к данным, он кидает запрос в PDP и оттуда получает в первом приближении ответ да/нет/неприменимо - PDP - в общем случае оно может жить даже не в приложении, а где-то во вне, делает такое: обогащает запрос, пришедший от PEP, данными (т.е. обращается каким-то образом к PIP), если нужно, прогоняет его через реестр политик, в результате чего формируется ответ для PEP - PAP - оно всю эту историю администрирует с большой долей вероятности тебе ABAC не нужен, от слова совсем, потому что цели у него отличаются от "шарить ресурсы по ролям", основная цель у него - получение единой точки управления ИБ в инфраструктуре предприятия, и скорее всего тебе нужно в каком-нить @PreAuthorize "расширить" евойные возможности как-то так: - можно сделать свой PermissionEvaluator и трактовать hasPermission() так как тебе хочется - можно расширить SecurityExpressionRoot в DefaultMethodSecurityExpressionHandler#createSecurityExpressionRoot и реализовать свои собственные выражения ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 00:21 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79, Вы не потянете сабж. Запустите хоть раз Spring Security. Он как раз шарит ресурсы по ролям. Уж это надо знать то. Вы и токены ни разу не пробовали по спецификации кодировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 10:41 |
|
ABAC
|
|||
---|---|---|---|
#18+
Андрей Панфилов с большой долей вероятности тебе 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 конфиги ,где можно описать все политики( опять же из изиАБАС если я правильно там все понял) и моментально что то изменить/добавить/расширить даже без пересборки ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 11:35 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79, автортариф А улуга 1 - тип 1,тип 8 ,тип 12 Тариф Б услуга 1 - типы 2,14 и тд Слово не тариф, тип, услуга а РОЛЬ нужно за вас писать. Вы любите когда за вас делают вашу работу? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 11:51 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79, Ну и напомню, что RBAC это роли бизнеса. А тариф и услуга это ресурс. А то вы начнете вводить роль тариф))) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 11:53 |
|
ABAC
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79, Ну и напомню, что RBAC это роли бизнеса. А тариф и услуга это ресурс. А то вы начнете вводить роль тариф))) ну вообще да, смысл такой - потарифно разграничить доступ к ресурсам ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 12:54 |
|
ABAC
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79, Ну и напомню, что RBAC это роли бизнеса. роли у нас реализованы на ss и тут нет ни вопросов ,ни проблем нужно так чтобы клиент ,который купил у нас соотвествующий тариф получал только то,что ему положено и ничего лишнего- тоесть арибутная модель ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 12:57 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79 PetroNotC Sharp asv79, Ну и напомню, что RBAC это роли бизнеса. роли у нас реализованы на ss и тут нет ни вопросов ,ни проблем нужно так чтобы клиент ,который купил у нас соотвествующий тариф получал только то,что ему положено и ничего лишнего- тоесть арибутная модель Это звучит как "Мир во всем мире". Ты очень часто усложняешь проблему в своих вопросах. КОНКРЕТНЕЕ И С РОЛЯМИ. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 13:07 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79 PetroNotC Sharp asv79, Ну и напомню, что RBAC это роли бизнеса. А тариф и услуга это ресурс. А то вы начнете вводить роль тариф))) ну вообще да, смысл такой - потарифно разграничить доступ к ресурсам Ужас. Не потарифно надо, а по ролям)) Входит 10 юзверей с одной ролью Карл! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 13:10 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79 атрибутная модель ты слово "атрибут" неправильно понимаешь: в ABAC "атрибут" - это нечто, существующее в рамках контекста, используемого для принятия решения, и к бизнес-логике он имеет отношение постольку-поскольку. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 14:57 |
|
ABAC
|
|||
---|---|---|---|
#18+
Андрей Панфилов asv79 атрибутная модель ты слово "атрибут" неправильно понимаешь: в ABAC "атрибут" - это нечто, существующее в рамках контекста, используемого для принятия решения, и к бизнес-логике он имеет отношение постольку-поскольку. может и так,по факту нужно сделать доступ к ресурсам согласно тарифа ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2021, 22:26 |
|
ABAC
|
|||
---|---|---|---|
#18+
Может кто то сказать по опыту с easyAbac фреймоврком- насколько сложно его прикрутить к уже существующему проекту,в том числе где реализован RBAC на сприг секурити. В проекте есть такое понятие как шаринг неких бизнес объектов ,которые состоят из неких подтипов( вот эти подтипы как раз должны проверяться политиками доступа) грубо говоря я купил тариф ДОРОГО-БОГАТО и мне доступно собрать бизнес объект на типах А и Б второй клиент купил тариф Дешево-сердито и ему доступно лишь сборка объекта на типе А при попытке расшарить мой бизнес объект на типах А и Б этому клиенту должен быть deny ,так как его тариф не включает в себя доступ к типам Б сделать такое на спринг секьюрити скоей всего просто невозможно ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 12:59 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79, >сделать такое на спринг секьюрити скоей всего просто невозможно == что за манера бла бла 99,9 проектов работают на ролях и вполне успешно. Покажи реально что именно не работает. REST или нет. Писал хоть строчку кода или нет. Так все вопросы ранее про токены у тебя были велосипедищи и "не могу рассказывать" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 13:26 |
|
ABAC
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79, >сделать такое на спринг секьюрити скоей всего просто невозможно == что за манера бла бла 99,9 проектов работают на ролях и вполне успешно. Покажи реально что именно не работает. REST или нет. Писал хоть строчку кода или нет. Так все вопросы ранее про токены у тебя были велосипедищи и "не могу рассказывать" да все на рестпоинтах Например как пример у меня есть ресурс( который состоит из подресурсов) и человек не должен его получать если какие то из подресурсов не входят в его тариф - как я выше уже написал в джава коде это будет объект например с коллекцией <? extentds Foo> так вот у этого фоо есть наследники - которые грубо говоря и входят в тариф и нужно вот так если от юзера на тарифе а поступbл запрос на получение объекта со списком extents Foo и в этом списке есть те типы фоо,которые не входят в его тариф то доступа у него не должно быть к этому объекту ну как то так ,объяснил как смог) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 13:41 |
|
ABAC
|
|||
---|---|---|---|
#18+
asv79, >этом списке есть те типы фоо, = на входе список полиморфных объектов. То есть в списке как базовый класс, так и Разного типа наследники. Так? Модель в бд какая? Тариф - Услуга - Тип. Или услуга это просто страничка на экране? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 14:18 |
|
ABAC
|
|||
---|---|---|---|
#18+
Теперь по рест: Вариант1 это в лоб /res/tarifs/{tarifid}/types Страничка услуга.html по этому адресу. Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 14:24 |
|
ABAC
|
|||
---|---|---|---|
#18+
Непонятно как должен действовать контроллер в этом случае. Поциент запросил объект к которому не имел прав. Что ему выдать. HTTP-403? Или контроллер должен каким-то образом делать фильтрацию и преобразование ответа с учотом ролей? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 14:28 |
|
ABAC
|
|||
---|---|---|---|
#18+
Далее про Spring security Он имеет около 25 филтров при прохождении запроса. Он имеет механизм голосования основанный на ролях Он имеет настройку AccessDecissionManager в котором ВСЯ инфа о запросе, учетке, конфиге и системе. Что еще надо то, программист? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 14:40 |
|
ABAC
|
|||
---|---|---|---|
#18+
mayton, Первый уровень везде это защита по урл. А урл как построите рест. А если урл пускает то вторая линия смотрит дальше. Это везде так. Если урл закрыт до контроллера не дойдет вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 14:44 |
|
ABAC
|
|||
---|---|---|---|
#18+
Тут нет ответа на вопрос. Что-же хочет бизнес? Показывать частично усеченный объект? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 14:46 |
|
ABAC
|
|||
---|---|---|---|
#18+
mayton, Ну, если гадать на кофе и моя догадка верна. То у него модель авторМодель в бд какая? Тариф - Услуга - Тип. Тариф - > Тип один ко многим. Тогда чел НИКОГДА не получит типы не свои при данном тарифе)))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 14:52 |
|
|
start [/forum/topic.php?fid=59&msg=40074205&tid=2120430]: |
0ms |
get settings: |
19ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
448ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 560ms |
0 / 0 |