powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Конструктор прав доступа
25 сообщений из 30, страница 1 из 2
Конструктор прав доступа
    #39485237
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Только что дописал и выложил конструктор прав доступа.

Хочется верить, что результат моего труда кому-то поможет в разработке ИС и тд)

Конструктор "оперирует" 2-мя основными объектами: правами и пакетами прав. Из пакетов можно составлять композицию, и выгружать ее в SQL. Также конструктор принимает на вход данные в формате JSON.

Конструктор никоим образом не является полноценной заменой управления доступом в вашем приложении! Просто на его основе, точнее на основе его выгрузки (которая имеет настройки), можно сделать некий "скелет прав" и от него уже отталкиваться.

Вот ссылка: http://myrbac.com/

Буду рад вашим отзывам!
С уважением, Сергей.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485243
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78,

что значит сделать некий "скелет прав"? У Вас там просто таблица из двух колонок возможных операций.
А политики, правила, специальные условия?
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485290
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

спасибо за вопрос.
Таблиц всего 2 - права и пакеты. Таблица прав предельно простая - ID, name и title. (где колонки ID, title можно не выгружать). Таблица пакетов чуть-чуть посложнее - те же колонки, что и в правах, плюс возможность добавлять колонки отношений. То есть, если к примеру, мы хотим выгрузить все пакеты и чтобы в них через запятую были перечислены имена включенных прав (или ID) - нам нужно просто добавить колонку с нужным типом, нажать "экспортировать" и все будет выгружено.
Насчет политик, спец условий и всего прочего - это уже на плечах разработчика.

Я вижу использование этого конструктора так: чтобы не заморачиваться с написанием управлением групп и тд, можно самому накликать эти группы и права, выгрузить их и записать в свою БД. Далее - к примеру в приложении есть таблица юзеров, их прав и тп. В правах можно указать ID пакета и, к примеру, какие именно права для этого пользователя разрешены и запрещены. И там же можно указывать политики и прочее.

В общем конструктор носит исключительно вспомогательный характер .
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485301
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78skyANA,

спасибо за вопрос.
Таблиц всего 2 - права и пакеты. Таблица прав предельно простая - ID, name и title. (где колонки ID, title можно не выгружать). Таблица пакетов чуть-чуть посложнее - те же колонки, что и в правах, плюс возможность добавлять колонки отношений. То есть, если к примеру, мы хотим выгрузить все пакеты и чтобы в них через запятую были перечислены имена включенных прав (или ID) - нам нужно просто добавить колонку с нужным типом, нажать "экспортировать" и все будет выгружено.
Насчет политик, спец условий и всего прочего - это уже на плечах разработчика.

Я вижу использование этого конструктора так: чтобы не заморачиваться с написанием управлением групп и тд, можно самому накликать эти группы и права, выгрузить их и записать в свою БД. Далее - к примеру в приложении есть таблица юзеров, их прав и тп. В правах можно указать ID пакета и, к примеру, какие именно права для этого пользователя разрешены и запрещены. И там же можно указывать политики и прочее.

В общем конструктор носит исключительно вспомогательный характер .
Вот я ничего не понял....
Вот у меня в оракле или db2
Создаю роль operator и admin
Код: plsql
1.
2.
3.
4.
grant operator to Вася Люда(Вася и Люда ) операторы
grant admin to КрутойОкер ; (КрутойОкер Админ)
grant select on "Таблица фирм" to operator
grant select,insert,delete,update on "Таблица фирм" to админ


Вася и Люда только читают таюлицу фирм.
А КрутойОкер имеет полный контроль...
У Вас какая аналогия?
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485312
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78skyANA,

спасибо за вопрос.
Таблиц всего 2 - права и пакеты. Таблица прав предельно простая - ID, name и title. (где колонки ID, title можно не выгружать). Таблица пакетов чуть-чуть посложнее - те же колонки, что и в правах, плюс возможность добавлять колонки отношений. То есть, если к примеру, мы хотим выгрузить все пакеты и чтобы в них через запятую были перечислены имена включенных прав (или ID) - нам нужно просто добавить колонку с нужным типом, нажать "экспортировать" и все будет выгружено.
Насчет политик, спец условий и всего прочего - это уже на плечах разработчика.

Я вижу использование этого конструктора так: чтобы не заморачиваться с написанием управлением групп и тд, можно самому накликать эти группы и права, выгрузить их и записать в свою БД. Далее - к примеру в приложении есть таблица юзеров, их прав и тп. В правах можно указать ID пакета и, к примеру, какие именно права для этого пользователя разрешены и запрещены. И там же можно указывать политики и прочее.

В общем конструктор носит исключительно вспомогательный характер .
Ну хорошо назовём это группами и правами, а не ролями и действиями.

Покажите реальный пример использования.
К примеру есть у нас набор ресурсов (таблицы, индексы, коллекции) и есть набор дествий, что мы можем выполнять с данными ресурсами (читать, добавлять, изменять, смотреть статистику, вычислять контрольную сумму).
И надо нам завести роль read only пользователь, что может только читать, смотреть статистику и вычислять контрольную сумму, и чтобы в итоге это реально работало.

Чем тут Ваш конструктор поможет?
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485419
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сама суть работы:

Вот, например, есть такой JSON

Код: javascript
1.
{"p":[{"t":"Новости","r":["1|read_news|Чтение новостей","2|edit_news|Редактирование новостей","3|add_news|Добавление новостей","4|remove_news|Удаление новостей"],"v":[{"i":"1|guests|Гости","e":[1],"d":[],"_":[],"p":[]},{"i":"2|moderators|Модераторы","e":[2,3],"d":[],"_":[],"p":[1]},{"i":"3|administrators|Администраторы","e":[4],"d":[],"_":[],"p":[1,2]}],"c":{"r":{},"v":{"a":"packages","_":"id","t":"title","n":"name","r":["32|2|e_rights"]}}}]}



Из него мы можем иметь следующую выгрузку

Код: sql
1.
2.
3.
UPDATE `packages` SET `name` = 'guests', `e_rights` = 'read_news' WHERE `name` = 'guests';
UPDATE `packages` SET `name` = 'moderators', `e_rights` = 'read_news,edit_news,add_news' WHERE `name` = 'moderators';
UPDATE `packages` SET `name` = 'administrators', `e_rights` = 'read_news,edit_news,add_news,remove_news' WHERE `name` = 'administrators';
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485474
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78,

так, хорошо создали Вы в БД таблицу packages, а дальше?

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

Вообщем хочется увидеть реальный пример использования: чтобы зашёл в приложение и права проверялись.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485533
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

пока работающего примера, к сожалению, нет, но могу объяснить на словах.

Вот мы выгрузили таблицу packages. То, что в ней нет ID - не беда, их можно добавить при выгрузке. Также с правами. Вместо имен прав можно выгружать ID прав, просто я сделал такую выгрузку для наглядности. Создаем табличку users. В ней есть колонка packages, где через запятую, или массивом postgresql, или сериализацией указаны id/name пакетов (кому как удобнее), далее могут быть колонки disabled_rights, enabled_rights. Если обе колонки пустые, значит берем права пакетов без изменений. Если что-то изменено в правах users, то учитываем эти изменения.

Главное, что мы не будем при каждой проверке прав высчитывать права пакетов, они нам уже известны: и включенные, и выключенные.

Также можно пакеты выгружать и без выгрузки всех прав, только одни "прямые" права и все. В таком случае, чтобы узнать все права пакета нужно просто завести колонку с перечислением подпакетов. В общем, выгрузку можно настроить кому-как пожелается.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485544
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78skyANA,

пока работающего примера, к сожалению, нет, но могу объяснить на словах.

Вот мы выгрузили таблицу packages. То, что в ней нет ID - не беда, их можно добавить при выгрузке. Также с правами. Вместо имен прав можно выгружать ID прав, просто я сделал такую выгрузку для наглядности. Создаем табличку users. В ней есть колонка packages, где через запятую, или массивом postgresql, или сериализацией указаны id/name пакетов (кому как удобнее), далее могут быть колонки disabled_rights, enabled_rights. Если обе колонки пустые, значит берем права пакетов без изменений. Если что-то изменено в правах users, то учитываем эти изменения.

Главное, что мы не будем при каждой проверке прав высчитывать права пакетов, они нам уже известны: и включенные, и выключенные.

Также можно пакеты выгружать и без выгрузки всех прав, только одни "прямые" права и все. В таком случае, чтобы узнать все права пакета нужно просто завести колонку с перечислением подпакетов. В общем, выгрузку можно настроить кому-как пожелается.
Извините, микроскопом тоже можно гвозди заколачивать :)

Хотелось бы, чтобы Вы сами для начала применили свой конструктор на практике и показали нам работающее приложение с разграничением прав.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485560
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

спасибо за проявленный интерес)

Просто работающее приложение с правами? Hello world с логином, разлогином и баном подойдет?
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485568
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Не вижу идеи применения.
Хоть какого-то. По сути:
- Давайте создадим "права". Запишем в таблицу.
- А зачем? Как использовать?
- Ну, этого пока не придумал.
А с этого начинать надо.
И ссылка на "неполноценную замену управления" неуместна. Зачем использовать "неполноценную", если все равно делать полноценную?
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485577
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adx,

полноценную все равно сделать вряд ли получится, так как у всех свои требования (а вот тут надо то, а вот тут хочу это, а вот это лишнее) и тд и тп

Если говорить совсем по простому: само управление правами в самом простом случае состоит из 3 таблиц: права, группы и пользователи. Конструктор берет на себя права и группы: можно создавать различные композиции групп, включать и выключать в них права. И выгружать все это в базу. С таблицей пользователей уже занимается сам разработчик. (включение - выключение персональных прав, добавление - удаление из групп).
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485681
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
_ST_78Если говорить совсем по простому: само управление правами в самом простом случае состоит из 3 таблиц: права, группы и пользователи. Конструктор берет на себя права и группы: можно создавать различные композиции групп, включать и выключать в них права. И выгружать все это в базу. С таблицей пользователей уже занимается сам разработчик. (включение - выключение персональных прав, добавление - удаление из групп).

Еще раз. Зачем писать информацию в базу, если мы ее не используем?
Записывать - это не проблема, проблема считать и применить.
Без механизма использования этот конструктор не нужен от слова "совсем".
Т.е. это не годится даже как учебная задача. Увы.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485693
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adx,

почему не используем? Мы на нее ссылаемся в пользователях, типа этот пользователь прикреплен к такому-то пакету, вот его id. Далее идем по id пакета, а там все права уже разложены и ничего не нужно высчитывать. Забота о прикреплении пользователей к пакетам лежит на плечах разработчика.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485852
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78,

Напоминает любимое произведение и тему "Круговорот говна в природе"
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39485877
babken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошая штука.
На уровне лабараторной задачи. Как пример для самообучения.
На практике никому не надо.

С уважением,
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39486069
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78skyANA,

спасибо за проявленный интерес)

Просто работающее приложение с правами? Hello world с логином, разлогином и баном подойдет?
Просто логин, разлогин не подойдёт.
Добавьте что-ли таблицу заметок и одному пользователю дайте полные права на работу с ней, другому только на чтение, третьему на чтение и изменение (добавление и удаление запретите).
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39486073
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78Adx,

полноценную все равно сделать вряд ли получится, так как у всех свои требования (а вот тут надо то, а вот тут хочу это, а вот это лишнее) и тд и тп

Если говорить совсем по простому: само управление правами в самом простом случае состоит из 3 таблиц: права, группы и пользователи. Конструктор берет на себя права и группы: можно создавать различные композиции групп, включать и выключать в них права. И выгружать все это в базу. С таблицей пользователей уже занимается сам разработчик. (включение - выключение персональных прав, добавление - удаление из групп).
ИМХО подход не верен.

Я бы предложил попробовать написать микросервис, куда можно заливать набор ресурсов, действий, ролей, и пользователей, которые выполняют определённые роли.
А не в микросервисе создавать какие-то типа права и группы, а потом их выгружать в целевые приложения.

Тогда приложение тупо спрашивает сервис: а разрешено Васе регистрировать новых пользователей?
А сервис отвечает либо да, либо нет.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39486755
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

как понимаю, Вам будет интересно посмотреть на взаимодействие с таблицей на уровне кода приложения?

Насчет микросервиса, думаю, идея заранее обречена на провал. Очень много рисков. Никто не даст гарантии, что доступ к сервису будет постоянным.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39487206
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78skyANA,

как понимаю, Вам будет интересно посмотреть на взаимодействие с таблицей на уровне кода приложения?

Насчет микросервиса, думаю, идея заранее обречена на провал. Очень много рисков. Никто не даст гарантии, что доступ к сервису будет постоянным.
Мне интересно посмотреть законченный пример проверки прав пользователя. Сможете его реализовать?
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39487233
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78, а насчёт обречённости микросервиса...

Я понимаю, что у Вас нет опыта в их написании и Вы судите по ринципу "пальцем в небо", но могли бы просто посмотреть по сторонам и увидеть множество сервисов с доступностью 99,99% времени.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39487257
_ST_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

Смогу, а насчет пальца в небо и 99 процентов. К примеру в компании есть биллинг, который используется денно и нощно, а проверка прав идет на стороннем сервере. И тут незадача: микросервис упал и остановилась работа биллинга, а клиенты звонят, заявки и прочее нужно заполнять. Да, кстати, микросервис не поднять, ибо доступа к нему нет. И как назло нет дублирующей системы проверки прав. Как быть?
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39487300
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78skyANA,

Смогу, а насчет пальца в небо и 99 процентов. К примеру в компании есть биллинг, который используется денно и нощно, а проверка прав идет на стороннем сервере. И тут незадача: микросервис упал и остановилась работа биллинга, а клиенты звонят, заявки и прочее нужно заполнять. Да, кстати, микросервис не поднять, ибо доступа к нему нет. И как назло нет дублирующей системы проверки прав. Как быть?
Биллинг с проверкой прав - это что-то новенькое. Пользователи ручками что-ли это делают?
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39487305
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78,

как часто Вы логинились куда-то, используя OAuth (Open Authorization) и что-то падало? Я вот ни одного такого случая не припоминаю.
...
Рейтинг: 0 / 0
Конструктор прав доступа
    #39487318
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ST_78, кстати, раз уж мы затронули тему биллинга...

Я так полагаю что вы сами себе payment processor, а не используете какой-нибудь PayPal, верно?

A payment processor is a company (often a third party) appointed by a merchant to handle transactions from various channels such as credit cards and debit cards for merchant acquiring banks.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Конструктор прав доступа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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