Descrição geral do controlo de acesso
Se mais de uma pessoa usar uma aplicação, que geralmente é o caso em arquitetura cliente-servidor ou interfaces Web, você precisa controlar o acesso ou fornecer diferentes recursos, conforme os usuários conectados. It is also essential to provide security for sensitive data, even in single-user applications.
A estratégia de controle de acesso 4D depende da configuração de sua implementação:
- em aplicações multi-usuário, pode confiar nos usuários e grupos 4D,
- in single-user applications, user access is controlled through the system session, using commands such as
Current system user
.
Para uma visão geral das funções de segurança de 4D, consulte o Guia de segurança de 4D.
Controlo de acesso em aplicações multi-usuário
Aplicações multi-usuário são implementadas com 4D Server. Incluem aplicações cliente-servidor, Web ou REST.
In multi-user applications, access control is done through 4D users and groups. You create users, assign passwords, create access groups that have different levels of privileges in the application.
O sistema de controle de acesso por senha 4D é iniciado com 4D Server, atribuindo uma senha ao usuário Designer. Until you give the Designer a password, all application access are done with the Designer's access rights, even if you have set up users and groups (when the application opens, no ID is required). Qualquer parte da aplicação pode ser aberta.
Quando uma senha for estabelecida para o Designer, todos os privilégios de acesso têm efeito. Para se conectar à aplicação ou a um servidor protegido com acesso, os usuários remotos devem informar login/senha.
Para desativar o sistema de acesso a senhas, precisa remover a senha Designer.
Controlo de acesso em aplicações usuário único
Single-user applications are desktop applications, deployed with 4D or merged with 4D Volume License. Em aplicações únicas, todos os usuários que abrem à aplicação são Designers, eles têm todos os privilégios e seu nome é "Designer". Access control is not based upon 4D users and groups, but upon user sessions.
Identificação de usuário
Para identificar o usuário atual em um aplicativo 4D de usuário único, você pode contar com o comando Current system user
, que retorna o usuário que abriu a sessão do sistema. Assim, a autenticação do usuário é delegada ao nível do SO.
You can then allow or deny access within your application by using code such as:
If(Current system user = $user) //you can store users in a database table
// give access to some features End if
Se quiser usar o nome de usuário do sistema em 4D em vez de "Desenhador" (por exemplo, em arquivos de registro), é possível chamar o comando SET USER ALIAS
, por exemplo:
SET USER ALIAS(Current system user)
Protecção do acesso
Privilégios
On a machine that is shared by several users, you can install the 4D application in a folder and give appropriate user access privileges to the folder at the OS level.
Encriptação de dados
If you want to protect access to the application data, we recommend to encrypt data and provide the encryption key to the authorized user(s).