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 XPlatform, 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 XPlatform 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 XPlatform, 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.