Grupo versus função (alguma diferença real?)


126

Alguém pode me dizer, qual é a verdadeira diferença entre grupo e função? Eu tenho tentado descobrir isso há algum tempo e quanto mais informações eu leio, mais tenho a sensação de que isso é trazido apenas para confundir as pessoas e não há diferença real. Ambos podem fazer o trabalho do outro. Eu sempre usei um grupo para gerenciar usuários e seus direitos de acesso.

Recentemente, deparei-me com um software de administração, onde há vários usuários. Cada usuário pode ter atribuído um módulo (o sistema inteiro é dividido em algumas partes, denominadas módulos, por exemplo: módulo de administração, módulo de pesquisa, módulo de pedidos, módulo de cliente). Além disso, cada módulo possui uma lista de funcionalidades que podem ser permitidas ou negadas para cada usuário. Digamos que um usuário John Smith possa acessar o módulo Orders e editar qualquer pedido, mas não tenha o direito de excluir nenhum deles.

Se houvesse mais usuários com a mesma competência, eu usaria um grupo para gerenciar isso. Agregaria esses usuários ao mesmo grupo e atribuiria direitos de acesso aos módulos e suas funções ao grupo. Todos os usuários do mesmo grupo teriam os mesmos direitos de acesso.

Por que chamá-lo de grupo e não de papel? Eu não sei, apenas sinto assim. Parece-me que simplesmente não importa:] Mas eu ainda gostaria de saber a diferença real.

Alguma sugestão de por que isso deveria ser chamado de papel do que de grupo ou o contrário?



VEJA O DUPLICADO mencionado acima. suas duas primeiras respostas curtas são melhores do que as aqui. (+ tecnicamente grupos e funções funcionam da mesma a sua como eles são usados)
FastAl

2
Não concordo com o @FastAl, achei as respostas para essa pergunta melhores do que as da duplicata.
Alex Oliveira

Respostas:


148

Google é seu amigo :)

De qualquer forma, a divisão entre função e grupo vem de conceitos de segurança de computadores (em vez de simplesmente gerenciamento de recursos). Ravi Sandhu fornece uma cobertura seminal da diferença semântica entre papéis e grupos.

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

Um grupo é uma coleção de usuários com um determinado conjunto de permissões atribuídas ao grupo (e transitivamente, aos usuários). Uma função é uma coleção de permissões, e um usuário herda efetivamente essas permissões quando ele atua sob essa função.

Normalmente, a sua participação no grupo permanece durante a duração do seu login. Um papel, por outro lado, pode ser ativado de acordo com condições específicas. Se a sua função atual for 'equipe médica', você poderá ver alguns dos registros médicos de um determinado paciente. Se, no entanto, sua função também for 'médica', você poderá ver informações médicas adicionais além do que uma pessoa com apenas uma função de 'equipe médica' pode ver.

As funções podem ser ativadas por hora do dia, local de acesso. As funções também podem ser aprimoradas / associadas a atributos. Você pode estar operando como 'médico', mas se você não tiver um atributo ou relação de 'médico primário' comigo (um usuário com função de 'paciente'), não poderá ver toda a minha história médica.

Você pode fazer tudo isso com grupos, mas, novamente, os grupos tendem a se concentrar na identidade, não na função ou atividade. E o tipo de aspectos de segurança que acabamos de descrever tendem a se alinhar melhor com os posteriores do que com os primeiros.

Em muitos casos, para o uso de classificar as coisas juntas (e nada mais), grupos e funções funcionam da mesma maneira. Grupos, no entanto, são baseados na identidade, enquanto os papéis são destinados a demarcar atividades. Infelizmente, os sistemas operacionais tendem a embaçar a distinção, tratando os papéis como grupos.

Você vê uma distinção muito mais clara com as funções em nível de aplicativo ou sistema - carregando semântica específica de sistema ou aplicativo (como nas funções Oracle ) - em oposição às 'funções' implementadas no nível do sistema operacional (que geralmente são sinônimos de grupos).

Pode haver limitações para funções e modelos de controle de acesso baseados em função (como em qualquer coisa, é claro):

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

Cerca de uma década atrás, vi algumas pesquisas sobre controle de acesso baseado em atributo e em relacionamento, que fornecem granularidade muito melhor do que o controle de acesso baseado em função. Infelizmente, não vejo muita atividade nesse domínio há anos.

A diferença mais importante entre funções e grupos é que as funções geralmente implementam um mecanismo de controle de acesso obrigatório (MAC). Você não pode se atribuir (ou a outros) a funções. Um administrador de função ou engenheiro de função faz isso.

Isso é superficialmente semelhante aos grupos UNIX, nos quais um usuário pode / pode se atribuir a um grupo (via sudo, é claro). Quando os grupos são atribuídos de acordo com um processo de engenharia de segurança, a distinção fica um pouco embaçada.

Outra característica importante é que os modelos RBAC verdadeiros podem fornecer o conceito de funções mutuamente exclusivas. Por outro lado, grupos baseados em identidade são aditivos - a identidade de um principal é a soma (ou conjunção) dos grupos.

Outra característica de um modelo de segurança baseado em RBAC verdadeiro é que os elementos criados para uma função específica geralmente não podem ser acessados ​​transitivamente por alguém que não atua nessa função.

Por outro lado, sob um modelo de controle de acesso discricionário (DAC) (o modelo padrão no Unix), você não pode obter esse tipo de garantia apenas com grupos. BTW, isso não é uma limitação de grupos ou Unix, mas uma limitação de modelos DAC baseados em identidade (e transitivamente, com grupos baseados em identidade).

Espero que ajude.

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

Adicionando um pouco mais depois de ver a resposta bem colocada de Simon. As funções ajudam a gerenciar permissões. Os grupos ajudam a gerenciar objetos e assuntos. Além disso, pode-se pensar em papéis como 'contextos'. Uma função 'X' pode descrever um contexto de segurança que governa como o sujeito Y acessa (ou não acessa) o objeto Z.

Outra distinção importante (ou ideal) é que existe um engenheiro de funções, uma pessoa que projeta as funções, os contextos necessários e / ou evidentes em um aplicativo, sistema ou sistema operacional. Um engenheiro de função normalmente é (mas não precisa ser) também um administrador de função (ou sysadmin). Além disso, o verdadeiro papel (sem trocadilhos) de um engenheiro de papéis está no campo da engenharia de segurança, não da administração.

Este é um novo grupo formalizado pelo RBAC (mesmo que raramente seja usado), um grupo que normalmente não está presente em sistemas com capacidade para grupos.


4
Basicamente, o que você está dizendo é o seguinte: Se você obtém a lista de permissões de um grupo, está olhando para a função e se obtém a lista de usuários de uma função, está vendo um grupo.
Natim

Não. O que acontece é que muitos sistemas implementam funções como grupos (ou pior, chamam grupos de "funções".) Quando isso acontece, você vê a equivalência que acabou de descrever. Deixe-me ver se consigo explicar melhor isso com uma resposta de acompanhamento.
Luis.espinal 12/08/2015

Uma das principais diferenças é que a associação ao grupo permanece independente da sua sessão (sua sessão de logon). Sua associação a um grupo muda apenas quando alguém (você ou alguém com privilégio suficiente) a altera.
Luis.espinal

Uma função, não uma noção de grupo vendida como uma "função", mas uma função verdadeira, que é associada ao principal (também conhecido como "o papel ativo") quando o principal inicia uma sessão (sessão de logon ou sessão específica do aplicativo) sob esse papel.
Luis.espinal

1
Analogamente, podemos dizer que os grupos são como árvores e os papéis são como tags?
ton

26

Um grupo é um meio de organizar usuários, enquanto um papel geralmente é um meio de organizar direitos.

Isso pode ser útil de várias maneiras. Por exemplo, um conjunto de permissões agrupadas em uma função pode ser atribuído a um conjunto de grupos ou a um conjunto de usuários independentemente do seu grupo.

Por exemplo, um CMS pode ter algumas permissões como Ler postagem, Criar postagem, Editar postagem. Uma função de Editor pode ler e editar, mas não criar (não sabe o porquê!). Uma postagem pode ser capaz de criar e ler etc. Um grupo de gerentes pode ter a função de editor, enquanto um usuário em TI, que não está no grupo de gerentes, também pode ter a função de editor, mesmo que o restante dele grupo não.

Portanto, embora em um sistema simples os grupos e funções estejam frequentemente alinhados, esse nem sempre é o caso.


Portanto, se eu entendi direito, você não pode atribuir usuários a funções, mas pode atribuir usuários a grupos. Depois disso, você pode atribuir funções ao grupo de usuários.
Ondrej 14/10

Não necessariamente Ondrej. Um aplicativo, sistema ou sistema operacional pode implementar um mecanismo para atribuir um usuário a uma função (no entanto, pode ficar peludo muito rapidamente). A resposta de Simon está no local com papéis como meios para gerenciar permissões (em oposição a grupos como meios para gerenciar sujeitos e objetos.)
luis.espinal

Obrigado pessoal, está muito mais claro para mim agora. No sistema descrito acima, acabei de notar, existe outro mecanismo para distinguir usuários. Cada usuário atribuído a qualquer módulo pode ser mais distinguido por sua competência como USUÁRIO, SUPERVISOR e ADMINISTRADOR, o que eu acho, esse é o sistema ROLE:] Então, mais uma vez, agradeço a vocês! ;)
Ondrej 14/10

Eu gosto da sua explicação, mas por alguma razão ninguém aqui escreveu sobre a possibilidade de um usuário pertencer a mais de um grupo ... também não é possível que os grupos pertençam a outros grupos e funções que permitem atribuir funções e o que sobre recursos? Os recursos também não podem pertencer a grupos? recursos não podem ter papéis?
INOR

19

Embora exista diferença semântica entre Funções e Grupos (conforme descrito acima por outras respostas), tecnicamente, Funções e Grupos parecem ser os mesmos. Nada impede que você atribua permissões diretamente a usuários e grupos (isso pode ser considerado como um controle de acesso de ajuste fino). Da mesma forma, quando uma Função é atribuída ao Usuário, ela pode ser considerada uma função Membro, no mesmo sentido quando o usuário se torna Membro de um Grupo.

Portanto, podemos acabar sem diferenças reais entre funções e grupos. Ambos podem ser considerados para agrupar permissões de usuários e / ou. Portanto, a diferença é apenas semântica: - se for usada semanticamente para agrupar Permissões, será uma Função; - se for usado semanticamente para agrupar usuários, será um grupo. Tecnicamente, não há diferença.


Na verdade, há uma diferença de linguagens de computador, como c #, nas classes atribuídas para acessar os grupos e naquelas para acessar as funções. Eles têm diferentes nomes de propriedades e métodos diferentes, conforme o esperado de uma função (como um conjunto de permissões), versus um grupo (como um conjunto de usuários).
Pashute #

Se você adicionar um grupo como membro de outro grupo e ambos tiverem permissões associadas, as permissões adicionais funcionarão bem. É assim que o NTFS funciona. No entanto, quando falamos de sistemas, acredito que os usuários pensam em termos de "deixe-me fazer logon como financeiro", "deixe-me fazer logon como convidado" e, nesse caso, acho que os papéis hierárquicos seriam confusos. Eu não permitiria que nada, exceto grupos de nível superior, tivesse permissões associadas.
Drizin

18

Um "grupo" é uma coleção de usuários. Uma "função" é uma coleção de permissões. Isso significa que, quando o grupo alfa inclui o grupo beta , o alfa recebe todos os usuários do beta e o beta recebe todas as permissões do alfa. Por outro lado, você poderia dizer que a função beta inclui a função alfa e as mesmas conclusões se aplicariam.

Um exemplo concreto torna as coisas mais claras. Considere "suporte ao cliente" e "suporte ao cliente sênior". Se você pensa nessas coleções como grupos, é claro que os usuários de suporte ao cliente "incluem" usuários seniores de suporte ao cliente. No entanto, se você vê-los como funções, fica claro que as permissões de suporte ao cliente sênior "incluem" permissões de suporte ao cliente.

Em teoria, você poderia simplesmente ter um tipo de coleção. No entanto, seria ambíguo se você dissesse que "a coleção alfa inclui a coleção beta" . Nesse caso, não é possível saber se os usuários em alfa estão em beta (como uma função) ou se os usuários em beta estão em alfa (como um grupo). Para tornar inequívoca terminologia como "inclui" e elementos visuais como exibições em árvore, a maioria dos sistemas rbac exige que você especifique se a coleção em questão é um "grupo" ou uma "função", pelo menos para fins de discussão.

Algumas analogias podem ajudar. Enquadrado em termos da teoria dos conjuntos , quando o grupo alfa é um subconjunto do grupo beta, as permissões alfa são um superconjunto de permissões beta. Comparado à genealogia , se os grupos são como uma árvore de descendentes, os papéis são como uma árvore de ancestrais.


Sua explicação cobre exatamente por que não podemos simplesmente tratar grupos como papéis (como sugere a resposta de Mileta). Exemplo perfeito.
Drizin

2
Na verdade, podemos tratar grupos como papéis (como diz Mileta Cekovic ). Por exemplo, podemos apenas atribuir uma função exclusiva para cada grupo (relacionamento 1: 1). Mas não podemos interpretar relações entre grupos como relações entre papéis correspondentes. Por exemplo, se o grupo "suporte ao cliente" incluir o grupo "suporte ao cliente sênior" - isso não significa que a função "suporte ao cliente" inclui a função "suporte ao cliente sênior".
Ruvim

3

NOTA - as divagações a seguir só fazem sentido se alguém estiver tentando impor segurança dentro de uma organização - ou seja, tentando limitar o acesso às informações ...

Os grupos são empíricos - eles respondem à pergunta "o quê". Eles são o "é" no sentido em que refletem a realidade existente de acesso. As pessoas de TI amam grupos - são muito literais e fáceis de definir. Eventualmente, todo o controle de acesso acaba por resultar (como todos aprendemos no ensino médio ...) para responder à pergunta "A que grupo você pertence?"

Os papéis, no entanto, são mais normativos - eles orientam o que "deveria ser". Bons gerentes e RH amam "papéis" - eles não respondem - eles fazem a pergunta "Por que?" Infelizmente, os papéis também podem ser vagos e essa "imprecisão" pode deixar as pessoas malucas (TI).

Para usar o exemplo médico acima, se o papel de "médico de atenção primária" tem mais direitos (ou seja, acesso a mais grupos) do que o papel de "técnico de raios-x", isso ocorre porque as pessoas (gerentes e RH) decidem por que isso precisava acontecer. Nesse sentido, eles são "a sabedoria coletiva" de uma organização.

Digamos que um médico tenha acesso (associação a um grupo com acesso) aos registros financeiros dos pacientes. Isso normalmente está fora do "papel" de um médico e deve ser debatido. Portanto, ninguém (por mais qualificado que seja) deve ter acesso total a todos os grupos - isso convida a abusos ao poder. É por isso que a "engenharia de papéis" é tão importante - sem ela, você apenas tem acesso ao grupo distribuído como muitos doces. As pessoas coletam (e às vezes horda) o acesso do grupo sem discussão sobre os perigos de muito poder.

Para concluir, a sabedoria de papéis bem definidos ajuda a moderar os perigos do acesso ao grupo descontrolado. Qualquer pessoa em uma organização pode pedir acesso a um grupo específico. Mas uma vez que esse acesso é fornecido, raramente é desistido. A engenharia de funções (junto com as práticas recomendadas, como descrições bem definidas de grupos e gerentes de acesso a grupos habilitados) pode limitar conflitos de interesse dentro de uma organização, descentralizar a tomada de decisões e ajudar a tornar o gerenciamento de segurança mais racional.


3

As respostas anteriores são maravilhosas. Como foi afirmado, o conceito de Grupo vs Função é mais conceitual do que técnico. Adotamos a posição de que os Grupos são usados ​​para conter usuários (um usuário pode estar em mais de um grupo: por exemplo, Joe está no grupo de Gerentes e no grupo de TI [ele é gerente de TI]) e na atribuição de amplos privilégios (ou seja, nosso sistema de cartões magnéticos permite que todos os usuários do grupo de TI acessem a sala do servidor). As funções foram usadas para adicionar privilégios a usuários específicos (por exemplo, as pessoas no grupo de TI podem fazer RDP para servidores, mas não podem atribuir usuários ou alterar permissões, as pessoas no grupo de TI com a função Administrador podem atribuir usuários e alterar permissões). As funções também podem ser compostas por outras funções (Joe possui a função Admin para adicionar usuários / privilégios e também a função DBA para fazer alterações no banco de dados no DBMS no servidor). As funções também podem ser muito específicas, pois podemos criar funções de usuário individuais (ou seja, JoesRole) que podem ser muito específicas para um usuário. Portanto, para recapitular, usamos Grupos para gerenciar usuários e atribuir Funções e Funções gerais para gerenciar privilégios. Isso também é cumulativo. O grupo em que o usuário está pode ter Funções atribuídas (ou uma lista de Funções disponíveis) que concederão privilégios muito gerais (ou seja, os usuários do grupo de TI terão a função ServerRDP que permite que eles façam logon nos servidores) para que sejam atribuídos ao usuário. Em seguida, todas as funções às quais o usuário pertence serão adicionadas na ordem em que são definidas com a última função com a palavra final (as funções podem permitir, negar ou não aplicar privilégios, para que, à medida que cada função seja aplicada, substitua as configurações anteriores de um privilégio ou não alterá-lo). Depois que todas as funções de nível de grupo e funções de usuário forem aplicadas,


+1 por fornecer um exemplo muito real, pois a sobreposição desses conceitos significa que não há diferença real, exceto em implementações específicas. No entanto, não fica muito clara as vantagens que você ganhou ao adicionar funções: Seu exemplo de Usuários de TI com a função Administrador poderia ser feito com a mesma facilidade, colocando os usuários nos grupos Usuários e Administradores de TI . Não há distinção real entre a "permissão" implícita permitida ao RDP para "e a" função ":" pode atribuir usuários ". Além disso, você dizer que Roles podem ser feitas de outros papéis, mas seu exemplo é Joe, que tem 2 funções, não um papel que combina outros
ruibarbo

1

Os usuários são atribuídos às Funções com base na responsabilidade que desempenham em qualquer sistema. Por exemplo, os usuários na função Sales Manager podem executar determinadas ações, como fornecer desconto adicional para um produto.

Grupos são usados ​​para 'agrupar' usuários ou funções em um sistema para facilitar o gerenciamento da segurança. Por exemplo, um grupo chamado "Grupo de Liderança" pode ter membros de funções Gerentes, Diretores e Arquitetos e usuários individuais que também não pertencem a essas funções. Agora você deve poder atribuir certos privilégios a esse grupo.


1

O objetivo de grupos e funções varia em aplicativos, mas principalmente o que entendi é o seguinte: Grupos (conjunto de usuários) são estáticos, enquanto Funções (conjunto de permissões) são dinâmicas com políticas, por exemplo, com base no tempo de (9 a 6) a grupo ou usuário pode ter esse papel, mas não esse.


0

Você pode atribuir uma função ao grupo. Você pode atribuir usuário ao grupo e atribuir função a usuário individual em qualquer usuário da função. Significado. Jean Doe pode estar no Group of SalesDeptartment com a função desativada ReportWritter, que permite imprimir nossos relatórios do SharePoint, mas no grupo SalesDepartment, outros podem não ter a função ReportWritter. - Em outras palavras, funções são privilégios especiais dentro de grupos atribuídos. Espero que isso faça qualquer cena.

Felicidades!!!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.