| 
 | 
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Здравствуйте! Только что дописал и выложил конструктор прав доступа. Хочется верить, что результат моего труда кому-то поможет в разработке ИС и тд) Конструктор "оперирует" 2-мя основными объектами: правами и пакетами прав. Из пакетов можно составлять композицию, и выгружать ее в SQL. Также конструктор принимает на вход данные в формате JSON. Конструктор никоим образом не является полноценной заменой управления доступом в вашем приложении! Просто на его основе, точнее на основе его выгрузки (которая имеет настройки), можно сделать некий "скелет прав" и от него уже отталкиваться. Вот ссылка: http://myrbac.com/ Буду рад вашим отзывам! С уважением, Сергей. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.07.2017, 05:55 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78, что значит сделать некий "скелет прав"? У Вас там просто таблица из двух колонок возможных операций. А политики, правила, специальные условия? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.07.2017, 08:48 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA, спасибо за вопрос. Таблиц всего 2 - права и пакеты. Таблица прав предельно простая - ID, name и title. (где колонки ID, title можно не выгружать). Таблица пакетов чуть-чуть посложнее - те же колонки, что и в правах, плюс возможность добавлять колонки отношений. То есть, если к примеру, мы хотим выгрузить все пакеты и чтобы в них через запятую были перечислены имена включенных прав (или ID) - нам нужно просто добавить колонку с нужным типом, нажать "экспортировать" и все будет выгружено. Насчет политик, спец условий и всего прочего - это уже на плечах разработчика. Я вижу использование этого конструктора так: чтобы не заморачиваться с написанием управлением групп и тд, можно самому накликать эти группы и права, выгрузить их и записать в свою БД. Далее - к примеру в приложении есть таблица юзеров, их прав и тп. В правах можно указать ID пакета и, к примеру, какие именно права для этого пользователя разрешены и запрещены. И там же можно указывать политики и прочее. В общем конструктор носит исключительно вспомогательный характер . ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.07.2017, 12:43 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78skyANA, спасибо за вопрос. Таблиц всего 2 - права и пакеты. Таблица прав предельно простая - ID, name и title. (где колонки ID, title можно не выгружать). Таблица пакетов чуть-чуть посложнее - те же колонки, что и в правах, плюс возможность добавлять колонки отношений. То есть, если к примеру, мы хотим выгрузить все пакеты и чтобы в них через запятую были перечислены имена включенных прав (или ID) - нам нужно просто добавить колонку с нужным типом, нажать "экспортировать" и все будет выгружено. Насчет политик, спец условий и всего прочего - это уже на плечах разработчика. Я вижу использование этого конструктора так: чтобы не заморачиваться с написанием управлением групп и тд, можно самому накликать эти группы и права, выгрузить их и записать в свою БД. Далее - к примеру в приложении есть таблица юзеров, их прав и тп. В правах можно указать ID пакета и, к примеру, какие именно права для этого пользователя разрешены и запрещены. И там же можно указывать политики и прочее. В общем конструктор носит исключительно вспомогательный характер . Вот я ничего не понял.... Вот у меня в оракле или db2 Создаю роль operator и admin Код: plsql 1. 2. 3. 4. Вася и Люда только читают таюлицу фирм. А КрутойОкер имеет полный контроль... У Вас какая аналогия? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.07.2017, 13:19 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78skyANA, спасибо за вопрос. Таблиц всего 2 - права и пакеты. Таблица прав предельно простая - ID, name и title. (где колонки ID, title можно не выгружать). Таблица пакетов чуть-чуть посложнее - те же колонки, что и в правах, плюс возможность добавлять колонки отношений. То есть, если к примеру, мы хотим выгрузить все пакеты и чтобы в них через запятую были перечислены имена включенных прав (или ID) - нам нужно просто добавить колонку с нужным типом, нажать "экспортировать" и все будет выгружено. Насчет политик, спец условий и всего прочего - это уже на плечах разработчика. Я вижу использование этого конструктора так: чтобы не заморачиваться с написанием управлением групп и тд, можно самому накликать эти группы и права, выгрузить их и записать в свою БД. Далее - к примеру в приложении есть таблица юзеров, их прав и тп. В правах можно указать ID пакета и, к примеру, какие именно права для этого пользователя разрешены и запрещены. И там же можно указывать политики и прочее. В общем конструктор носит исключительно вспомогательный характер . Ну хорошо назовём это группами и правами, а не ролями и действиями. Покажите реальный пример использования. К примеру есть у нас набор ресурсов (таблицы, индексы, коллекции) и есть набор дествий, что мы можем выполнять с данными ресурсами (читать, добавлять, изменять, смотреть статистику, вычислять контрольную сумму). И надо нам завести роль read only пользователь, что может только читать, смотреть статистику и вычислять контрольную сумму, и чтобы в итоге это реально работало. Чем тут Ваш конструктор поможет? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 09.07.2017, 14:01 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Сама суть работы: Вот, например, есть такой JSON Код: javascript 1. Из него мы можем иметь следующую выгрузку Код: sql 1. 2. 3. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 00:18 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78, так, хорошо создали Вы в БД таблицу packages, а дальше? Покажите вот это: "Далее - к примеру в приложении есть таблица юзеров, их прав и тп. В правах можно указать ID пакета и, к примеру, какие именно права для этого пользователя разрешены и запрещены. И там же можно указывать политики и прочее." Вообщем хочется увидеть реальный пример использования: чтобы зашёл в приложение и права проверялись. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 08:57 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA, пока работающего примера, к сожалению, нет, но могу объяснить на словах. Вот мы выгрузили таблицу packages. То, что в ней нет ID - не беда, их можно добавить при выгрузке. Также с правами. Вместо имен прав можно выгружать ID прав, просто я сделал такую выгрузку для наглядности. Создаем табличку users. В ней есть колонка packages, где через запятую, или массивом postgresql, или сериализацией указаны id/name пакетов (кому как удобнее), далее могут быть колонки disabled_rights, enabled_rights. Если обе колонки пустые, значит берем права пакетов без изменений. Если что-то изменено в правах users, то учитываем эти изменения. Главное, что мы не будем при каждой проверке прав высчитывать права пакетов, они нам уже известны: и включенные, и выключенные. Также можно пакеты выгружать и без выгрузки всех прав, только одни "прямые" права и все. В таком случае, чтобы узнать все права пакета нужно просто завести колонку с перечислением подпакетов. В общем, выгрузку можно настроить кому-как пожелается. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 10:23 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78skyANA, пока работающего примера, к сожалению, нет, но могу объяснить на словах. Вот мы выгрузили таблицу packages. То, что в ней нет ID - не беда, их можно добавить при выгрузке. Также с правами. Вместо имен прав можно выгружать ID прав, просто я сделал такую выгрузку для наглядности. Создаем табличку users. В ней есть колонка packages, где через запятую, или массивом postgresql, или сериализацией указаны id/name пакетов (кому как удобнее), далее могут быть колонки disabled_rights, enabled_rights. Если обе колонки пустые, значит берем права пакетов без изменений. Если что-то изменено в правах users, то учитываем эти изменения. Главное, что мы не будем при каждой проверке прав высчитывать права пакетов, они нам уже известны: и включенные, и выключенные. Также можно пакеты выгружать и без выгрузки всех прав, только одни "прямые" права и все. В таком случае, чтобы узнать все права пакета нужно просто завести колонку с перечислением подпакетов. В общем, выгрузку можно настроить кому-как пожелается. Извините, микроскопом тоже можно гвозди заколачивать :) Хотелось бы, чтобы Вы сами для начала применили свой конструктор на практике и показали нам работающее приложение с разграничением прав. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 10:37 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA, спасибо за проявленный интерес) Просто работающее приложение с правами? Hello world с логином, разлогином и баном подойдет? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 10:53 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Не вижу идеи применения. Хоть какого-то. По сути: - Давайте создадим "права". Запишем в таблицу. - А зачем? Как использовать? - Ну, этого пока не придумал. А с этого начинать надо. И ссылка на "неполноценную замену управления" неуместна. Зачем использовать "неполноценную", если все равно делать полноценную? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 11:00 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Adx, полноценную все равно сделать вряд ли получится, так как у всех свои требования (а вот тут надо то, а вот тут хочу это, а вот это лишнее) и тд и тп Если говорить совсем по простому: само управление правами в самом простом случае состоит из 3 таблиц: права, группы и пользователи. Конструктор берет на себя права и группы: можно создавать различные композиции групп, включать и выключать в них права. И выгружать все это в базу. С таблицей пользователей уже занимается сам разработчик. (включение - выключение персональных прав, добавление - удаление из групп). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 11:11 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78Если говорить совсем по простому: само управление правами в самом простом случае состоит из 3 таблиц: права, группы и пользователи. Конструктор берет на себя права и группы: можно создавать различные композиции групп, включать и выключать в них права. И выгружать все это в базу. С таблицей пользователей уже занимается сам разработчик. (включение - выключение персональных прав, добавление - удаление из групп). Еще раз. Зачем писать информацию в базу, если мы ее не используем? Записывать - это не проблема, проблема считать и применить. Без механизма использования этот конструктор не нужен от слова "совсем". Т.е. это не годится даже как учебная задача. Увы. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 12:45 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Adx, почему не используем? Мы на нее ссылаемся в пользователях, типа этот пользователь прикреплен к такому-то пакету, вот его id. Далее идем по id пакета, а там все права уже разложены и ничего не нужно высчитывать. Забота о прикреплении пользователей к пакетам лежит на плечах разработчика. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 12:57 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78, Напоминает любимое произведение и тему "Круговорот говна в природе" ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 16:01 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Хорошая штука. На уровне лабараторной задачи. Как пример для самообучения. На практике никому не надо. С уважением, ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 16:16 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78skyANA, спасибо за проявленный интерес) Просто работающее приложение с правами? Hello world с логином, разлогином и баном подойдет? Просто логин, разлогин не подойдёт. Добавьте что-ли таблицу заметок и одному пользователю дайте полные права на работу с ней, другому только на чтение, третьему на чтение и изменение (добавление и удаление запретите). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 19:42 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78Adx, полноценную все равно сделать вряд ли получится, так как у всех свои требования (а вот тут надо то, а вот тут хочу это, а вот это лишнее) и тд и тп Если говорить совсем по простому: само управление правами в самом простом случае состоит из 3 таблиц: права, группы и пользователи. Конструктор берет на себя права и группы: можно создавать различные композиции групп, включать и выключать в них права. И выгружать все это в базу. С таблицей пользователей уже занимается сам разработчик. (включение - выключение персональных прав, добавление - удаление из групп). ИМХО подход не верен. Я бы предложил попробовать написать микросервис, куда можно заливать набор ресурсов, действий, ролей, и пользователей, которые выполняют определённые роли. А не в микросервисе создавать какие-то типа права и группы, а потом их выгружать в целевые приложения. Тогда приложение тупо спрашивает сервис: а разрешено Васе регистрировать новых пользователей? А сервис отвечает либо да, либо нет. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.07.2017, 19:48 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA, как понимаю, Вам будет интересно посмотреть на взаимодействие с таблицей на уровне кода приложения? Насчет микросервиса, думаю, идея заранее обречена на провал. Очень много рисков. Никто не даст гарантии, что доступ к сервису будет постоянным. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.07.2017, 16:30 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78skyANA, как понимаю, Вам будет интересно посмотреть на взаимодействие с таблицей на уровне кода приложения? Насчет микросервиса, думаю, идея заранее обречена на провал. Очень много рисков. Никто не даст гарантии, что доступ к сервису будет постоянным. Мне интересно посмотреть законченный пример проверки прав пользователя. Сможете его реализовать? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 12.07.2017, 10:06 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78, а насчёт обречённости микросервиса... Я понимаю, что у Вас нет опыта в их написании и Вы судите по ринципу "пальцем в небо", но могли бы просто посмотреть по сторонам и увидеть множество сервисов с доступностью 99,99% времени. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 12.07.2017, 10:24 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA, Смогу, а насчет пальца в небо и 99 процентов. К примеру в компании есть биллинг, который используется денно и нощно, а проверка прав идет на стороннем сервере. И тут незадача: микросервис упал и остановилась работа биллинга, а клиенты звонят, заявки и прочее нужно заполнять. Да, кстати, микросервис не поднять, ибо доступа к нему нет. И как назло нет дублирующей системы проверки прав. Как быть? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 12.07.2017, 10:41 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78skyANA, Смогу, а насчет пальца в небо и 99 процентов. К примеру в компании есть биллинг, который используется денно и нощно, а проверка прав идет на стороннем сервере. И тут незадача: микросервис упал и остановилась работа биллинга, а клиенты звонят, заявки и прочее нужно заполнять. Да, кстати, микросервис не поднять, ибо доступа к нему нет. И как назло нет дублирующей системы проверки прав. Как быть? Биллинг с проверкой прав - это что-то новенькое. Пользователи ручками что-ли это делают? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 12.07.2017, 11:18 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _ST_78, как часто Вы логинились куда-то, используя OAuth (Open Authorization) и что-то падало? Я вот ни одного такого случая не припоминаю. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 12.07.2017, 11:21 | 
  
  
  
   | 
||
| 
 
Конструктор прав доступа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  _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. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 12.07.2017, 11:31 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=33&fpage=7&tid=1547281]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    40ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    65ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 223ms | 
| total: | 374ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.