Группа против роли (Есть ли реальная разница?)

Кто-нибудь может сказать мне, в чем на самом деле разница между группой и ролью? Я уже некоторое время пытаюсь понять это, и чем больше информации я читаю, тем больше у меня возникает ощущение, что это поднято только для того, чтобы сбить с толку людей, и реальной разницы нет. Оба могут делать работу друг друга. Я всегда использовал группу для управления пользователями и их правами доступа.

Недавно мне попалась программа для администрирования, в которой много пользователей. Каждому пользователю может быть назначен модуль (вся система разделена на несколько частей, называемых модулями, т. Е. Модуль администрирования, модуль опроса, модуль заказов, модуль клиента). Кроме того, у каждого модуля есть список функций, которые могут быть разрешены или запрещены для каждого пользователя. Допустим, пользователь Джон Смит имеет доступ к модулю Заказы и может редактировать любой заказ, но не имеет права удалять ни один из них.

Если бы было больше пользователей с такой же компетенцией, я бы использовал группу для управления этим. Я бы объединил таких пользователей в одну группу и назначил группе права доступа к модулям и их функциям. Все пользователи в одной группе будут иметь одинаковые права доступа.

Зачем называть это группой, а не ролевой? Я не знаю, я просто так это чувствую. Мне кажется, что это просто не имеет значения:] Но я все же хотел бы знать настоящую разницу.

Есть предложения, почему это лучше называть ролевой, чем групповой или наоборот?


person Ondrej    schedule 14.10.2011    source источник
comment
возможный дубликат В чем разница между группами и ролями?   -  person Steve Chambers    schedule 01.07.2014
comment
СМОТРЕТЬ ДУБЛИКАТ, упомянутый выше. два верхних коротких ответа лучше, чем любой из приведенных здесь. (+ технически группы и роли работают так же, как они используются)   -  person FastAl    schedule 23.05.2019
comment
Я не согласен с @FastAl, я нашел ответы на этот вопрос лучше, чем у дубликата.   -  person Alex Oliveira    schedule 06.11.2019


Ответы (9)


Google - ваш друг :)

В любом случае, разделение на роль и группу исходит из концепций компьютерной безопасности (в отличие от простого управления ресурсами). Профессор Рави Сандху подробно описывает семантическую разницу между ролями и группами.

http://profsandhu.com/workshop/role-group.pdf

Группа - это совокупность пользователей с заданным набором разрешений, назначенных группе (и, транзитивно, пользователям). Роль - это набор разрешений, и пользователь фактически наследует эти разрешения, когда действует под этой ролью.

Обычно ваше членство в группе остается на время вашего входа в систему. С другой стороны, роль может быть активирована в соответствии с определенными условиями. Если ваша текущая роль - «медицинский персонал», вы можете просмотреть некоторые медицинские записи конкретного пациента. Если, однако, ваша роль также является «врачом», вы можете увидеть дополнительную медицинскую информацию, выходящую за рамки того, что может видеть человек, выполняющий только роль «медицинского персонала».

Роли можно активировать по времени суток, месту доступа. Роли также могут быть расширены / связаны с атрибутами. Вы можете действовать как «врач», но если у вас нет атрибута «первичный врач» или отношения со мной (пользователь с ролью «пациент»), тогда вы не сможете увидеть всю мою историю болезни.

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

Во многих случаях, когда используется совместная классификация вещей (и ничего более), группы и роли функционируют одинаково. Однако группы основаны на идентичности, тогда как роли предназначены для разграничения деятельности. К сожалению, операционные системы имеют тенденцию стирать различия, рассматривая роли как группы.

Вы видите гораздо более четкое различие между ролями на уровне приложения или системы - они несут семантику, специфичную для приложения или системы (например, в Роли Oracle) - в отличие от «ролей», реализованных на уровне ОС (которые обычно являются синонимами групп).

Могут быть ограничения для ролей и моделей управления доступом на основе ролей (как и все, конечно):

http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx

Около десяти лет назад я видел некоторые исследования управления доступом на основе атрибутов и отношений, которые обеспечивают гораздо лучшую степень детализации, чем управление доступом на основе ролей. К сожалению, я не наблюдал большой активности в этой сфере уже много лет.

Наиболее важное различие между ролями и группами заключается в том, что роли обычно реализуют механизм обязательного контроля доступа (MAC). Вы не можете назначать себя (или других) по ролям. Это делает администратор роли или инженер по ролям.

Это внешне похоже на группы UNIX, где пользователь может / может иметь возможность назначить себя в группу (конечно, с помощью sudo). Однако, когда группы назначаются в соответствии с процессом разработки безопасности, различие немного размывается.

Другой важной характеристикой является то, что настоящие модели RBAC могут предоставлять концепцию взаимоисключающих ролей. Напротив, группы на основе идентичности являются аддитивными - идентичность участника - это сумма (или соединение) групп.

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

С другой стороны, в рамках модели дискреционного контроля доступа (DAC) (модель по умолчанию в Unix) вы не можете получить такой тип гарантии только с группами. Кстати, это не ограничение групп или Unix, а ограничение моделей DAC, основанных на идентичности (и транзитивно, с группами на основе идентичности).

Надеюсь, это поможет.

=======================

Добавил еще немного после того, как увидел хорошо поставленный ответ Саймона. Роли помогают управлять разрешениями. Группы помогают управлять объектами и предметами. Более того, можно думать о ролях как о «контекстах». Роль «X» может описывать контекст безопасности, который определяет, как субъект Y получает доступ (или не получает доступ) к объекту Z.

Еще одно важное различие (или идеальное) состоит в том, что существует специалист по ролям, человек, который разрабатывает роли, контексты, которые необходимы и / или очевидны в приложении, системе или ОС. Ролевой инженер обычно (но не обязательно) также является администратором роли (или системным администратором). Более того, настоящая роль (без каламбура) ролевого инженера - это разработка системы безопасности, а не администрирование.

Это новая группа, формализованная RBAC (даже если она редко используется), которая, как правило, не присутствовала в системах с поддержкой групп.

person luis.espinal    schedule 14.10.2011
comment
По сути, вы говорите следующее: если вы получаете список разрешений группы, вы смотрите на роль, а если вы получаете список пользователей ролей, вы смотрите на группу. - person Natim; 07.05.2015
comment
Нет. Происходит то, что многие системы реализуют роли как группы (или, что еще хуже, роли групп вызова). Когда это происходит, вы видите эквивалентность, которую только что описали. Позвольте мне посмотреть, смогу ли я лучше объяснить это с помощью последующего ответа. - person luis.espinal; 12.08.2015
comment
Одно из основных отличий состоит в том, что членство в группе остается независимо от вашего сеанса (сеанса регистрации). Ваше членство в группе изменяется только тогда, когда кто-то (ваш или кто-то с достаточными привилегиями) меняет его. - person luis.espinal; 12.08.2015
comment
Роль, а не понятие группы, продаваемое как роль, а настоящая роль, эта роль связывается с принципалом (также известной как активная роль), когда принципал запускает сеанс (сеанс входа в систему или сеанс для конкретного приложения) под эту роль. - person luis.espinal; 12.08.2015
comment
Например (реалистичный пример), я работаю в клинике в Южной Флориде, которая является частью сети клиник. Мой unix id принадлежит группе, скажем, fl-clinic, которая дает мне доступ к различным ресурсам в сети, поддерживающей эту клинику. Независимо от того, вошел я в систему или нет, я являюсь членом этой группы, пока кто-то с достаточными привилегиями не изменит это. - person luis.espinal; 12.08.2015
comment
Теперь я работаю не только в этой клинике, но и врач. Поэтому, когда я вхожу в медицинские системы этого учреждения, я автоматически оказываюсь в роли врача. Но так уж получилось, что у меня также есть доступ в качестве менеджера или руководителя других врачей или медсестер, поэтому я могу 1) выйти из системы, тем самым деактивировав свою роль врача, и 2) снова войти в систему как администратор приложения. - person luis.espinal; 12.08.2015
comment
Моя роль в качестве любого из них реализуется только тогда, когда я вошел в систему, независимо от моего членства в группе fl-clinic. - person luis.espinal; 12.08.2015
comment
Более того, в отличие от групп, настоящие роли могут наследовать от других (например, администратор приложения наследует возможности, присутствующие в роли врача, таким образом, активируя первую, автоматически активирует более позднюю). Или они могут быть взаимоисключающими (при любом данном сеансе входа в систему, Я могу быть тем или другим, но не обоими одновременно.) - person luis.espinal; 12.08.2015
comment
У групп, напротив, таких понятий нет. Членство в вашей группе - это соединение (объединение) всех групп, к которым вы принадлежите. Любое понятие наследования или взаимного исключения должно обрабатываться вручную кем-то, у кого достаточно прав для управления членством в группе. Надеюсь, это лучше объясняет. - person luis.espinal; 12.08.2015
comment
По аналогии, можем ли мы сказать, что группы подобны дереву, а роли - тегам? - person ton; 29.07.2020
comment
@ton - интересная аналогия, и я никогда не думал об этом так. Я должен сесть и подумать об этом. Спасибо за наводящий на размышления комментарий! - person luis.espinal; 29.07.2020

Группа - это средство организации пользователей, тогда как роль обычно является средством организации прав.

Это может быть полезно по-разному. Например, набор разрешений, сгруппированных в роль, может быть назначен набору групп или набору пользователей независимо от их группы.

Например, CMS может иметь некоторые разрешения, такие как Чтение сообщения, Создание сообщения, Редактирование сообщения. Роль редактора может иметь право читать и редактировать, но не может создавать (не знаю почему!). Сообщение может иметь возможность создавать и читать и т. Д. Группа менеджеров может иметь роль редактора, в то время как пользователь в ИТ, который не входит в группу менеджеров, может также иметь роль редактора, даже если остальные его или ее группа нет.

Таким образом, хотя в простой системе группы и роли часто тесно связаны, это не всегда так.

person Simon Elliston Ball    schedule 14.10.2011
comment
Итак, если я правильно понимаю, вы не можете назначать пользователей по ролям, но можете назначать пользователей по группам. После этого вы можете назначать роли группе пользователей. - person Ondrej; 14.10.2011
comment
Не обязательно Ондрей. Приложение, система или ОС могут реализовать механизм для назначения пользователю роли (хотя это может очень быстро стать проблемным). Ответ Саймона точно касается ролей как средства управления разрешениями (в отличие от групп как средства управления субъектами и объектами). - person luis.espinal; 14.10.2011
comment
Спасибо, ребята, теперь мне стало намного понятнее. Я только что заметил, что в описанной выше системе есть еще один механизм, позволяющий различать пользователей. Каждый пользователь, назначенный любому модулю, может быть более выделен своей компетенцией в качестве ПОЛЬЗОВАТЕЛЯ, НАБЛЮДАТЕЛЯ и АДМИНИСТРАТОРА, что, я думаю, это РОЛЬ-система:] Итак, еще раз спасибо вам обоим! ;) - person Ondrej; 14.10.2011
comment
Мне нравится ваше объяснение, но по какой-то причине здесь никто не писал о возможности принадлежности пользователя более чем к одной группе ... разве группы не могут принадлежать к другим группам и ролям, которые позволяют назначать роли, и что о ресурсах? не могут ли ресурсы также принадлежать к группам? у ресурсов не может быть ролей? - person inor; 12.11.2014

Хотя существует семантическая разница между ролями и группами (как описано выше в других ответах), технически роли и группы кажутся одинаковыми. Ничто не мешает назначать разрешения непосредственно пользователям и группам (это можно рассматривать как тонкую настройку управления доступом). Точно так же, когда пользователю назначается роль, он может считаться участником роли, в том же смысле, когда пользователь становится участником группы.

Таким образом, мы можем остаться без реальной разницы между ролями и группами. И то, и другое можно рассматривать для группировки пользователей И / ИЛИ разрешений. Таким образом, различие только семантическое: - если оно семантически используется для группировки разрешений, тогда это роль; - если семантически используется для группировки пользователей, тогда это группа. Технически разницы нет.

person Mileta Cekovic    schedule 08.09.2012
comment
Если вы добавляете группу в качестве члена другой группы и обе имеют связанные разрешения, дополнительные разрешения будут работать нормально. Так работает NTFS. Однако, когда мы говорим о системах, я считаю, что пользователи думают о том, чтобы позволить мне войти в систему как финансовый, разрешить мне войти в систему как гость, и в этом случае я думаю, что иерархические роли будут сбивать с толку. Я бы не позволил никому, кроме групп верхнего уровня, иметь связанные разрешения. - person drizin; 17.09.2016

«Группа» - это совокупность пользователей. «Роль» - это набор разрешений. Это означает, что когда группа альфа включает группу бета, альфа получает всех пользователей из бета, а бета получает все разрешения от альфы. И наоборот, можно сказать, что бета-роль включает альфа-роль, и будут применяться те же выводы.

Конкретный пример проясняет ситуацию. Рассмотрим «поддержку клиентов» и «поддержку старших клиентов». Если рассматривать эти коллекции как группы, становится ясно, что пользователи службы поддержки клиентов «включают» старших пользователей службы поддержки клиентов. Однако, если вы посмотрите на них как на роли, то станет ясно, что разрешения старшей службы поддержки клиентов «включают» разрешения службы поддержки.

Теоретически у вас может быть просто один тип коллекции. Однако было бы двусмысленно, если бы вы сказали, что «альфа-версия коллекции включает бета-версию». В этом случае вы не можете сказать, находятся ли пользователи в альфа-версии в бета-версии (например, роли) или пользователи в бета-версии находятся в альфа-версии (например, в группе). Чтобы сделать терминологию типа «включает» и визуальные элементы, такие как древовидные представления, недвусмысленными, большинство систем rbac требуют, чтобы вы указали, является ли рассматриваемая коллекция «группой» или «ролью», по крайней мере, для обсуждения.

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

person james turner    schedule 03.06.2016
comment
Ваше объяснение точно объясняет, почему мы не можем рассматривать группы как роли (как предполагает ответ Милеты). Прекрасный пример. - person drizin; 17.09.2016
comment
Фактически мы можем рассматривать группы как роли (как говорит Милета Чекович ). Например, мы можем просто назначить уникальную роль для каждой группы (соотношение 1: 1). Но мы не можем интерпретировать отношения между группами как отношения между соответствующими ролями. Например, если группа службы поддержки клиентов включает группу старшей службы поддержки клиентов, это не означает, что роль службы поддержки клиентов включает роль старшего сотрудника службы поддержки. - person ruvim; 09.12.2017

ПРИМЕЧАНИЕ - следующие бессвязные разговоры имеют смысл только в том случае, если кто-то пытается навязать безопасность внутри организации, то есть пытается ограничить доступ к информации ...

Группы эмпирически - они отвечают на вопрос «что». Они являются «есть» в том смысле, что они отражают существующую реальность доступа. ИТ-специалисты любят группы - они очень буквальны и легко поддаются определению. В конце концов, весь контроль доступа в конечном итоге переходит (как мы все узнали еще в средней школе ...) к ответу на вопрос «К какой группе вы принадлежите?»

Роли, однако, более нормативны - они определяют то, что «должно быть». Хорошие менеджеры и HR любят "роли" - они не отвечают - они задают вопрос "Почему?" К сожалению, роли также могут быть расплывчатыми, и эта «расплывчатость» может свести с ума ИТ-специалистов.

Если использовать приведенный выше медицинский пример, если роль «терапевт первичного звена» имеет больше прав (т. Е. Доступ к большему количеству групп), чем роль «рентгенолога» ", это потому, что люди (менеджеры и HR) решили, почему это должно происходить. В этом смысле они - «коллективная мудрость» организации.

Допустим, врачу предоставлен доступ (членство в группе с доступом) к финансовым записям пациентов. Обычно это выходит за рамки «роли» врача и следует обсуждать. Таким образом, никто (независимо от его квалификации) не должен иметь полный доступ ко всем группам - это вызывает злоупотребления властью. Вот почему так важна «ролевая инженерия» - без нее у вас просто будет групповой доступ, который будет раздаваться, как конфета. Люди будут собирать (а иногда и собирать) групповой доступ без обсуждения опасности слишком большой власти.

В заключение хочу сказать, что мудрость четко определенных ролей помогает снизить опасность доступа к группам, сбежавшим из-под контроля. Любой в организации может выступать за доступ к определенной группе. Но как только такой доступ предоставляется, от него редко отказываются. Разработка ролей (наряду с передовыми практиками, такими как четко определенные описания групп и уполномоченные менеджеры группового доступа) может ограничить конфликты интересов внутри организации, децентрализовать процесс принятия решений и помочь сделать управление безопасностью более рациональным.

person TJ Evert    schedule 14.06.2013

Все предыдущие ответы прекрасны. Как было сказано, концепция «Группа против ролей» носит скорее концептуальный, нежели технический характер. Мы заняли позицию, что группы используются для содержания пользователей (пользователь может входить в несколько групп: например, Джо входит в группу менеджеров, а также в группу ИТ [он является менеджером в ИТ]) и для назначения широких привилегий. (т.е. наша система магнитных карт позволяет всем пользователям ИТ-группы получить доступ к серверной). Роли теперь использовались для добавления привилегий определенным пользователям (то есть люди в ИТ-группе могут использовать RDP для серверов, но не могут назначать пользователей или изменять разрешения, люди в ИТ-группе с ролью администратора могут назначать пользователей и изменять разрешения). Роли также могут состоять из других ролей (у Джо есть роль администратора для добавления пользователей / привилегий, а также роль администратора базы данных для внесения изменений в СУБД на сервере). Роли также могут быть очень специфичными, поскольку мы можем создавать отдельные роли пользователя (например, JoesRole), которые могут быть очень специфичными для пользователя. Итак, напомним, мы используем группы для управления пользователями и назначения общих ролей и ролей для управления привилегиями. Это также кумулятивно. Группе, в которой находится пользователь, могут быть назначены роли (или список доступных ролей), которые будут давать очень общие привилегии (например, пользователи ИТ-группы имеют роль ServerRDP, которая позволяет им входить на серверы), поэтому она назначается пользователю. Затем любые роли, к которым принадлежит пользователь, будут добавлены в том порядке, в котором они определены, причем последняя роль имеет последнее слово (роли могут разрешать, запрещать или не применять привилегии, так что при применении каждой роли она либо переопределит предыдущие настройки для привилегии. или не менять). После применения всех ролей на уровне группы и ролей на уровне пользователя для пользователя создается отдельная модель безопасности, которую можно использовать во всех наших системах для определения доступа и возможностей.

person Steve Smith    schedule 23.10.2015
comment
+1 за очень реальный пример, поскольку совпадение этих концепций означает, что нет реальной разницы, за исключением конкретных реализаций. Однако это не очень ясно показывает преимущества, которые вы получили от добавления ролей: ваш пример ИТ-пользователей с ролью администратора можно также легко сделать, поместив пользователей в группы «ИТ-пользователи» и «Администраторы» . Нет реального различия между неявным разрешением, разрешенным для RDP, и ролью: может назначать пользователей. Также вы говорите, что роли могут состоять из других ролей, но ваш пример - Джо, у которого две роли, а не роль, которая объединяет другие. - person Rhubarb; 04.11.2015

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

Группы используются для «группирования» пользователей или ролей в системе для упрощения управления безопасностью. Например, группа под названием «Leadership Group» может состоять из членов с ролями менеджеров, директоров и архитекторов, а также отдельных пользователей, которые также не входят в эти роли. Теперь у вас должна быть возможность назначать этой группе определенные привилегии.

person Saju Mathew    schedule 09.02.2013

Назначение групп и ролей различается в зависимости от приложений, но в основном я понял следующее: группы (набор пользователей) статичны, а роли (набор разрешений) являются динамическими с политиками, например, в зависимости от времени от (9 до 6) до группа или пользователь может иметь эту роль, но не эту.

person Salahuddin Khan    schedule 24.03.2013

Группе можно назначить роль. Вы можете назначить пользователя в группу, и вы можете назначить роль отдельному пользователю в любой роли пользователя. Имея в виду. Джин Доу может быть в группе отдела продаж с ролью вне ReportWritter, что позволяет печатать наши отчеты из SharePoint, но в группе отдела продаж другие могут не иметь роли ReportWritter. - Другими словами, роли - это особые привилегии для назначенных групп. Надеюсь, это сделает какие-нибудь сцены.

Ваше здоровье!!!

person Chirag Patel    schedule 01.10.2015