Romɑn
нет?
Hog
повторяешься
тебе нужен был подход. вот - чем не подход?
Vasily
Завтра выложу концепт на гитхаб себе скорее всего, который иллюстрирует основной подход
Roman
мне нужен подход)
а в каком виде? Отдельный сервис, которому отправляешь айди юзера и ресурса, а он тебе мапу пермишенов?
Romɑn
RBAC - подход ACL - подход
Roman
кеширувай
это ж потом инвалидировать
Hog
это ж потом инвалидировать
там в жаве есть гуава с десятком стратегий на любой вкус
Vabka
Ну у меня есть прототип на основе выражений. Я хз как можно описать. Короче есть выражение типа * -> registration/perform * -> authentification/perform authenticated -> post/read, create (Псевдокод) и вот подобными выражениями можно регулировать доступ к сущностям. Очень сырое пока оно у меня, по тому пока даже не опубликовал
Вообще пытался сделать что-то типа графа/многомерной матрицы, где по свойствам актора можно было бы сматчить его с входами, а на выходе получить список того что он может, а что не может (опять же чтобы и на том конце можно было матчить) Типа *[not "age">=18 ] -< *[~"18+"]/* (Типа кто угодно, у кого нет свойства возраста со значением >=18 не может ничего делать с любыми сущностями, у которых есть свойство "18+")
Vabka
Чисто мой велосипед
Romɑn
там в жаве есть гуава с десятком стратегий на любой вкус
https://www.wikiwand.com/ru/%D0%98%D0%B7%D0%B1%D0%B8%D1%80%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC
Romɑn
https://www.wikiwand.com/ru/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC_%D0%BD%D0%B0_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5_%D1%80%D0%BE%D0%BB%D0%B5%D0%B9
Romɑn
https://www.wikiwand.com/ru/%D0%9C%D0%B0%D0%BD%D0%B4%D0%B0%D1%82%D0%BD%D0%BE%D0%B5_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC
Romɑn
https://www.wikiwand.com/ru/ACL
Roman
нефтедоллар атакует хрефами
Roman
да нафиг гуаву Я про подход
role based вроде морально устаревшая штука. Пушто ролей не напасешься на хоть сколько-нить богатый домен
Roman
но ето же типа кэп передает, не?
Roman
воооот
так а мы ща подход на каком уровне абстракций выбираем?
Romɑn
так а мы ща подход на каком уровне абстракций выбираем?
пока просто подход Но кейс такой, что в идеале бы управлять записями в БД, и в зависимости от этого бы у пользователя появлялся или исчезал доступ к ресурсу
Ivan
Тем более термобар.
термобары хороши ударной волной, осколков нет, бризантности нет. спрятался в окоп - все прошло сверху. Осколочный град тоже работает только на открытой местности. В целом весьма ситуативное оружие.
Roman
пока просто подход Но кейс такой, что в идеале бы управлять записями в БД, и в зависимости от этого бы у пользователя появлялся или исчезал доступ к ресурсу
если нужна гибкость, то надо делать пермишены на ресурсы, группы ресурсов и тд. Это можно миксовать с ролями, где роли — по сути готовые пресеты пермишенов. Но они расширяемые, в отличие от просто role based.
Vasily
нет?
Нет
Vasily
Ну и задача все же не реактивщину сделать
Roman
Это что-то новое или я изобретаю то что уже существует?
я не знаю, но я глубоко никогда не копал в эту сторону.
Крылатый
ФАБ-500 в помощь)
Диёр
Roman
Или це заведомо хуета?
не, это выглядит как permission based система
Roman
хотя не уверен
Крылатый
а как же химоза
Неуправляема
Крылатый
Можно устроить френдлифаер. Или вообще никого не убить.
Диёр
Неуправляема
ну так с воздуха уронил над бункером и никто не выйдет
Диёр
подождал пару месяцев
Диёр
гг
Крылатый
Romɑn
если нужна гибкость, то надо делать пермишены на ресурсы, группы ресурсов и тд. Это можно миксовать с ролями, где роли — по сути готовые пресеты пермишенов. Но они расширяемые, в отличие от просто role based.
вот такие же мысли Но получается если я сделаю новый функционал к которому нужен доступ, получается надо вносить его в БД и всем сразу дава или не давать на него права
Romɑn
если нужна гибкость, то надо делать пермишены на ресурсы, группы ресурсов и тд. Это можно миксовать с ролями, где роли — по сути готовые пресеты пермишенов. Но они расширяемые, в отличие от просто role based.
Посмотрел на концепции из известных есть CBAS context-based access control но она реализована в основном во всяких TCP\UPD как использовать ее для доступа к ресурсам хз
Vabka
не, это выглядит как permission based система
ещё похоже на https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0_%D0%BD%D0%B0_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5_%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%BE%D0%B2#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B8,_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9_%D0%B2_%D1%80%D0%B0%D0%BC%D0%BA%D0%B0%D1%85_%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%B0_XACML
Vabka
Я хотел сделать систему ролей типа как в дискорде, но чтобы роли и права были динамические и назначались пользователям на основе каких-то свойств
Romɑn
вон, есть еще Attribute based. Но тут, чтобы выбрать, надо понимать твой домен
вот смотри есть пользователь A он сотрудник организации Б, у организации Б есть свои сузщности( например список товаров с ценами) в системе и было бы круто на уровне доступа давать правила, что А может видеть цены Б
Romɑn
но блин это же все айдишники внутри системы надо знать и как-то учитывать
Vasily
LDAP
Vasily
И не ебать мозг
Vasily
Если нет аллергии, то active directory
Диёр
У них фильтрация и запас еды.
фильтров же ненадолго хватает
Vasily
Аххахаа
Vasily
Я говорил, что без стирания сложно сделать хайеркайнды, а со стиранием просто. Т.к. никто не хочет решать в майкоософте сложные задачи для горстки эфшарперов, никогда их там не будет
Romɑn
LDAP
нет там лдапа
Vasily
@omgszer , в копилку
Vasily
нет там лдапа
А что есть?
Vasily
Управление доступами обычно - внешняя система
Ayrat
@omgszer , в копилку
у него есть мысль
Roman
вот смотри есть пользователь A он сотрудник организации Б, у организации Б есть свои сузщности( например список товаров с ценами) в системе и было бы круто на уровне доступа давать правила, что А может видеть цены Б
ну этого недостаточно, пушто данный пример можно разложить легко на разные модели. Тут, например, можно сделать пермишены типа "просматривать цены", "просматривать контент организации Б" и тд. Выдавать их кому-то конкретному или бахнуть роли-пресеты. Либо сделать атрибуты: атрибут "сотрудник А", "бухгалтер" "соверщеннолетний" и тд
Vasily
Обычно делают пресеты
Vasily
На которые вешают списки пермишнов
Vasily
Т.е. условно группы
Vasily
Я так для нспк делал
Vasily
у него есть мысль
Какая? О богоизбранности?
Ayrat
Какая? О богоизбранности?
не, про то что в МС это нахуй не надо поэтому будут делать в последнюю очередь
Vasily
Тут сложно не согласиться
Roman
но чем гранулярней ты делаешь эту систему пермишенов, тем сложнее ее сделать high performant)
Vasily
Есть группы
Vasily
У них права