Gestão dos papéis
A gestão dos papéis é o mecanismo responsável por garantir que apenas usuários autorizados consumam recursos protegidos da plataforma. Ou seja, controlar o quê um usuário pode acessar e realizar. As permissões são organizadas em domínios, serviços e recursos que possuem ações. Assim, os papéis recebem um conjunto de permissões e os usuários são relacionados a esses papéis.
- Domínio: é o primeiro nível de organização das permissões e uma forma de agrupar um ou mais serviços, sendo um conceito lógico e não físico. Por exemplo, domínio "plataforma" para indicar serviços de tecnologia, ou "HCM" para indicar um módulo ou gestão de um produto;
- Serviço: é o segundo nível de permissões, composto pelos elementos que implementam um conjunto de funcionalidade de um domínio. Por exemplo: "fluxo de caixa" como responsável pela entrada e saída de recursos financeiros de uma empresa;
- Recurso: um recurso é qualquer item computacional que necessite de algum controle de acesso. Por exemplo: cadastros, processos, relatórios, telas etc.
- Ação: é qualquer operação que possa ser realizada sobre um recurso. Por exemplo: para um relatório, existem as ações de Criar, Editar, Apagar, Gerar e Imprimir. Uma ação pode ser algo bem particular de um recurso, como no caso de um recurso de Cadastro de Ponto, que pode apresentar a ação de Efetuar Acerto.
Existem alguns recursos e ações nativas que são disponibilizadas na implantação da senior X Platform, entretanto, não há papéis nativos ou pré-definidos disponibilizados. Além disso, no conceito de permissão não é possível impedir que um papel execute uma determinada ação, mas, sim, não lhe dar a permissão.
Combinação de permissões
O usuário joão.silva está relacionado ao papel colaborador. Esse papel possui autorização para realização da ação Consulta no recurso de campo personalizado.
O usuário pedro.santos está relacionado ao papel colaborador e analista. Além das definições do papel de colaborador (acima), o papel de analista possui permissão de Criar, Editar e Excluir no recurso de campo personalizado.
O usuário maria.silva possui o papel admin, que não contém nenhum filtro, ou seja, não impõe restrições específicas. Portanto, um usuário com o papel admin tem visibilidade de todas as empresas e filiais. No entanto, ao adicionar um papel adicional, como administrador filial 1 (que filtra empresa 1 com filial 1), o sistema passa a aplicar restrições de acordo com os filtros desse papel específico (limitando as informações à empresa 1 com filial 1), mesmo com a presença do papel mais abrangente.
Se um terceiro papel for adicionado, por exemplo, com um filtro para empresa 2 com filial 2, o sistema deve levar em consideração todos os papéis, resultando em uma filtragem que engloba empresa 1 com filial 1 e empresa 2 com filial 2.
Negação de permissão
O usuário rosa.maria está relacionado apenas ao papel analista; como o papel de analista possui permissão de Criar, Editar e Excluir no recurso de campo personalizado, mas não possui permissão de Consulta, esse usuário não conseguirá realizar consultas de campos personalizados.
Tipos de permissões
Na senior X Platform existem tipos de permissões que possuem os benefícios de serem escaláveis, flexíveis e auditáveis. São eles:
O RBAC (Role-Based Authorization Control) é um controle de permissões baseado em papéis. É o primeiro nível de permissões de acesso e também o mais simples. Basta informar quais recursos um papel pode acessar e quais ações podem ser realizadas em cada recurso.
É possível que existam necessidades além do que o RBAC disponibiliza, por isso, criou-se o conceito de ABAC.
Complementando o RBAC, a autorização pode se dar pela validação de atributos. Durante a definição do recurso, o serviço de negócio poderá vincular atributos, tornando possível a validação durante a verificação da autorização. Quando o recurso possuir atributos, durante a gestão das permissões, o usuário final poderá incluir um script (javascript) que deverá validar os atributos, podendo assim autorizar ou negar acesso.
Na senior X Platform, o ABAC é utilizado para permissões mais complexas, como hora do dia e localização geográfica do usuário, para permitir utilizar o sistema de uma forma dinâmica e distribuída.
Para o gerenciamento de autorizações mais complexas, filtros podem ser vinculados a permissões ou papéis para que os serviços de negócio possam permitir um acesso parcial a um recurso/ação. Assim como o ABAC, os filtros existentes são definidos pelo serviço de negócio, sem interação do usuário. Por exemplo, determinado papel só pode acessar as notas fiscais emitidas pela empresa à qual está associado, ou então só pode acessar os dados da empresa X, filial X.
A plataforma hoje permite definir dois tipos de filtros:
- Filtro de recurso: os filtros de recurso ou booleanos são vinculados a ações durante a gestão de permissões para ativar ou desativar uma funcionalidade, como por exemplo: o recurso usuário com ação Visualizar retorna uma lista de todos usuários e possui o filtro restringir filial. Durante a gestão da permissão, posso adicionar o filtro no papel gerente, mas não no diretor, já que o diretor pode visualizar os usuários de todas as filiais.
- Filtro de serviço: são mais complexos que os de recurso, pois permitem adicionar conjunto de valores vinculados diretamente ao papel e ao serviço do recurso em questão. Seguindo o exemplo anterior, o recurso usuário com ação Visualizar retorna uma lista de todos usuários e possui o filtro código da filial. Dado que um gerente pertence a uma filial e um gerente regional a uma ou mais filiais, posso adicionar os filtros da seguinte forma:
Papel Gerente Filial 1: Filtro com código 1 |
Papel Gerente Regional 1: Dois conjuntos de filtros, um código 1 e outro com código 2 |
Após vinculados ao papel, os filtros serão retornados na verificação de permissão para que o negócio possa consumir esses dados.
Observação
A plataforma senior X possui um tempo de cache padrão para aplicar os filtros na base de dados. O tempo de cache padrão atual é de 10 minutos — este é o tempo de resposta até que um novo filtro de abrangência cadastrado no papel tenha efeito para os usuários.
Gerenciando papéis
Papéis são utilizados para associar um usuário a uma posição dentro da organização ou atividade que será desempenhada. Eles são a essência da gestão dos usuários, pois sua arquitetura deve suportar as regras do negócio nos diferentes níveis de permissão de acesso.
Lembre-se de configurar um papel de forma que seja possível aplicá-lo a vários usuários. Prefira criar papéis com funcionalidades que pertençam ao mesmo domínio, assim será mais simples gerenciar as permissões da sua empresa.
Importante
Apenas usuários que possuem a permissão de administrador, podem tornar outros usuários administradores (papel admin).
Não é permitido atribuir um papel para seu próprio usuário, a atribuição deve ser concedida por outro usuário.
O que você precisa fazer:
- Acesse Tecnologia > Administração > Autorização > Gestão dos papéis;
- Clique em Novo papel;
- Informe o Nome do papel e a Descrição do papel para identificá-lo;
- Na guia Usuários, selecione os usuários que farão parte do papel:
- Encontre o usuário que deseja incluir no papel e utilize o toggle da coluna Associado;
- Marque a caixa de seleção Incluir usuários bloqueados se precisar visualizar os usuários bloqueados da plataforma.
- Na guia Permissões, selecione os recursos e as ações a que os usuários associados ao papel terão acesso:
- Clique sobre um domínio/serviço para visualizar os recursos e suas ações nele contidos;
- Clique na caixa de seleção para definir os recursos e acessos do papel;
- Alguns recursos podem possuir filtros, que serão exibidos ao lado da ação. Clicando neles é possível criar filtros booleanos;
- Na guia Filtros, visualize os domínios/serviços que possuem filtros customizados e defina um ou mais conjuntos de valores, sendo cada página um conjunto:
- Clique sobre um domínio/serviço;
- Informe os valores dos filtros;
- Repita o procedimento quantas vezes forem necessárias.
- Na guia Propriedades, adicione um conjunto de chaves/valores para um papel, atribuindo-lhe metadados que podem ser utilizados em customizações:
- Adicione o Nome e depois defina o Valor;
- Clique no botão de adicionar para concluir.
- Na guia Aplicações, selecione as aplicações de acesso que farão parte do papel:
- Encontre a aplicação que deseja incluir no papel e utilize toggle da coluna associado.
- Caso possua papéis criados na X Plataforma de Soluções, e pretenda integrar um papel de mesmo nome cadastrado na G5/LDAP, a toggle deve ser marcada, dessa forma o integrador tem permissão para editar o papel existente. Caso não marque, será exibida a mensagem o papel já existe e não será integrado até que o usuário efetue a correção dos nomes.
- Após configurado o papel, clique em salvar.
- Acesse Tecnologia > Administração > Autorização > Gestão dos papéis;
- Localize o papel que deseja alterar;
- Clique em Editar;
- Realize as mudanças necessárias;
- Clique em Salvar.
A qualquer momento clique em Cancelar para descartar as alterações.
- Acesse Tecnologia > Administração > Autorização > Gestão dos papéis;
- Localize o papel que deseja excluir;
- Clique em Editar;
- Clique em Excluir;
- Confirme a exclusão.
A qualquer momento clique em Cancelar para descartar as alterações.
Duplicar um papel facilita a criação de um novo papel que tenha permissões semelhantes a outro. Quando duplicado, ele cria um novo papel com as mesmas permissões. Porém, os usuários associados ao papel não serão copiados para o papel duplicado.
- Acesse Tecnologia > Administração > Autorização > Gestão dos papéis;
- Localize o papel que deseja duplicar;
- Clique em Editar;
- Clique em Duplicar;
- Informe o Nome do papel e Descrição do papel que será criado;
- Clique em Salvar para confirmar a operação.
A qualquer momento clique em Cancelar para descartar as alterações
- Acesse Tecnologia > Administração > Autorização > Gestão dos Papéis.
- Localize o papel desejado para associar/desassociar todos os usuários.
- Marque a caixa de seleção ao lado do papel desejado.
- Na parte superior, ao lado do botão Novo Papel, serão exibidos os botões Associar todos os usuários e Desassociar todos os usuários.
- Escolha a operação desejada clicando no botão correspondente.