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?
Respostas:
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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,
fonte
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.
fonte
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.
fonte
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!!!
fonte