Log transacional
Funcionamento do log transacional na plataforma Nginstack, incluindo tipos de log, desfazer alterações, auditoria e limpeza de dados.
O controle de acesso aos dados contidos no sistema é realizado por meio da autenticação e autorização de usuários. Usuários são pessoas ou sistemas externos que podem utilizar o sistema e a eles são atribuídas uma credencial de acesso que consiste de um nome único e uma senha.
A autenticação dos usuários pode ser realizada de duas formas:
Uma vez que um usuário foi autenticado, o sistema implementa um controle de autorização por meio dos seguintes conceitos:
Usuários podem ser associados a grupos e papéis a fim de simplificar a gestão da segurança do sistema. Permissões e escopos de autorização atribuídos aos grupos e papéis são herdados por todos os usuários associados a eles, diminuindo assim a quantidade de configurações necessárias.
Aos usuários, ou indiretamente aos seus grupos e papéis, podem ser atribuídas permissões. No modelo de segurança do sistema, o termo permissão tem um significado restrito: são chamadas de permissões as atribuições de privilégios, como de Ver, Modificar, Inserir e Excluir, aos dados e aos processos e relatórios do sistema. Para o sistema a atribuição de permissões se restringe ao modelo de classes de dados e para alguns tipos de arquivos da Virtual File System. Via de regra, não há como atribuir permissões para registros específicos de uma classe de dados, apenas para todos os registros dela.
O modelo de segurança do sistema é implementado por meio de APIs que são disponibilizadas para o desenvolvedor da plataforma. Cabe ao desenvolvedor a decisão de determinar quando e como deve ser realizada a validação das permissões do usuário. Via de regra, o sistema não valida de forma automática as permissões, ele apenas disponibiliza as APIs que simplificam o controle de autenticação e autorização dos usuários. Exemplo:
// Todos os registros de uma classe sem validar o acesso do usuário
ds = classes.getCachedDataSet(-1898145089 /* Servidores */);
// Apenas os registros que podem ser visualizados pelo usuário autenticado na sessão
ds = classes.getCachedDataSet(-1898145089 /* Servidores */, session.userKey);
No caso das APIs HTTP, os desenvolvedores devem utilizar a propriedade
scope
para indicar os escopos de autorização requeridos no uso de uma determinada rota ou de um conjunto
de rotas. Uma vez configurado o escopo de uma rota, os usuários, incluindo sistemas de terceiros,
somente poderão acessá-la se o administrador associar o usuário, ou um dos seus grupos ou
papéis, ao escopo configurado.
Funcionamento do log transacional na plataforma Nginstack, incluindo tipos de log, desfazer alterações, auditoria e limpeza de dados.
Funcionamento das permissões na alteração da classe de um registro do sistema.
Técnicas e APIs para prevenir ataques de injeção de códigos em conteúdos HTML, expressões SQL e códigos JavaScript.