ORDA – Permissões – Restringir / permitir o acesso da Web aos recursos com um só clique

Tradução automática de Deepl

Descubra aqui como, nos processos web, pode proteger os seus recursos (dados + lógica comercial) de acessos maliciosos e de utilizadores não autorizados… com um clique.

No modo de desenvolvimento, defina a propriedade Restringir o acesso por defeito como FALSO para se concentrar na organização do seu código, no modelo de dados, na arquitetura das páginas Qodly, nos testes… sem qualquer restrição à utilização de dados ou à chamada de funções.

Quando estiver pronto para implementar perfis de utilizador, basta definir a propriedade Restringir acesso por predefinição como VERDADEIRO para garantir que ninguém acede aos seus dados e à sua lógica comercial sem ser explicitamente autorizado.

Lembrete

Desde 4D 20, 4D oferece um sistema poderoso e totalmente personalizável para proteger os recursos (dados + lógica de negócios) de usuários não autorizados.

Esse sistema oferece um nível personalizável de granularidade e se baseia na presença de privilégios na sessão. Os privilégios devem ser configurados no ficheiro roles.json e autorizados a executar algumas acções (Ler, Criar, …) em alguns recursos (classes de dados, atributos, funções).

Os privilégios são aplicados em processos da Web usando sessões da Web escalonáveis, por exemplo: Pedidos REST, repositórios de dados remotos, aplicações Qodly.

Quando o utilizador tem autorização para entrar na aplicação, a implementação da autenticação tem de colocar os privilégios adequados na sessão.

Depois, quando a aplicação recebe um pedido Web, é feito um controlo da presença de privilégios na sessão. Apenas as acções autorizadas podem ser executadas.

É apresentado um erro de permissão se a ação no recurso não for permitida.

a propriedade restringir o acesso por defeito

Com o 4D21, uma nova propriedade booleana está disponível no ficheiro roles.json: restrictedByDefault.

Ela permite configurar o comportamento padrão em relação aos acessos web aos recursos abaixo:

Isto afecta apenas os recursos para os quais não foram definidas permissões.

Se FALSO: os recursos estão acessíveis por defeito

Se não definir quaisquer permissões, todos os seus recursos estão acessíveis relativamente a qualquer ação Criar, Ler, Atualizar

Se definir permissões, todos os seus recursos não envolvidos em permissões permanecem acessíveis.

Se VERDADEIRO: o acesso aos recursos é restringido por defeito

Se não configurar quaisquer permissões, nada nos seus recursos está acessível.

Se configurar as permissões, todos os seus recursos não envolvidos nas permissões permanecem inacessíveis.

A interface de funções e privilégios do Qodly

É provável que já tenha utilizado a interface de funções e privilégios do Qodly studio. Esta interface oferece uma interface de utilizador simples para configurar as permissões da sua aplicação. Essa interface agora oferece a possibilidade de atualizar a propriedade Restrict access by default.

com versões 4D anteriores

Se sua aplicação roda com uma versão 4D anterior, é equivalente a ter restrictedByDefault definido como FALSE. Pode obter um nível semelhante de segurança criando um privilégio all, concedido para executar todas as acções no Datastore.

E nunca dê esse privilégio all a nenhum usuário.

blank

Iniciar um novo projeto

Quando você cria um novo projeto, o arquivo roles.json é configurado como está:

blank

Como restrictedByDefault é False, isso ajuda a iniciar um novo desenvolvimento. Pode concentrar-se no seu código, no design dos formulários, nas chamadas de função e no acesso aos seus dados sem ser impedido.

melhores práticas

Para uma segurança óptima, quando estiver pronto para implementar perfis de utilizador, recomendamos que defina a propriedade restrictedByDefault como True e que configure privilégios para garantir:

os seus recursos estão protegidos contra acessos maliciosos externos

cada utilizador só pode executar acções autorizadas em dados permitidos

exemplo

No exemplo abaixo, o modelo de dados é:

blank

No ficheiro roles.json:

blank

assim:

– é impossível aceder à classe de dados SecretInfos (Ler, Criar, Atualizar, …)

– o privilégio viewPeople é necessário para ler a classe de dados People, outras acções na classe de dados People não são concedidas

A IDH em anexo demonstra-o.

Não espere para definir permissões para proteger a sua aplicação e os seus dados, ao mesmo tempo que trata de perfis de utilizador precisos e adequados.

Avatar
• Proprietário do produto - Marie-Sophie Landrieu -Yvert entrou ao time 4D Product como Proprietária do Produto em 2017. Como tal, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Marie-sophie se formou na Escola de Engenharia de ESIGELEC e começou sua carreira como engenheira da IBM em 1995. Participou em vários projetos (de manutenção e criação) e trabalhou como desenvolvedora de Cobol. Depois trabalhou como designer de UML e desenvolvedora de Java. Suas principais funções foram analisar e redigir requisitos funcionais, coordenar os times de negócio e de desenvolvimento.