Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 5 Próxima »

A autenticação é um processo fundamental em sistemas de segurança e gerenciamento de acesso, que visa verificar a identidade de um usuário e permitir o seu acesso a aplicação. Por padrão, no Cronapp, o processo de autenticação de um usuário é realizado através da Fonte de Dados Autenticar, utilizando os registros do Banco de Dados da aplicação. No entanto, caso seja necessário, é possível personalizar a forma de autenticação da aplicação Cronapp. Neste tutorial, veremos como fazer isso.

Pré-requisitos

Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.

  • Projeto do tipo web ou mobile criado. Caso haja dúvidas de como criar esse tipo de projeto, acesse a documentação Criar projeto.
  • Criar blocos de programação. Caso haja dúvidas, acesse a documentação Bloco de programação.

Informações complementares

Ação Para Autenticar

Para alterar o processo padrão de autenticação dos usuários nas aplicações Cronapp, é preciso alterar a ação Para Autenticar da janela de Eventos e Ações. Essa ação é responsável por realizar a autenticação dos usuários ao logar na aplicação, substituindo a autenticação padrão do Cronapp. Durante esse processo a ação é executada duas vezes. A primeira no momento de validar a existência do usuário na aplicação e a segunda para verificar se a senha informada é válida.

O bloco de programação associado a ação Para Autenticar deve retornar um valor booleano (true ou false), onde false bloqueia o acesso do usuário, ou um objeto da entidade UserDetails contendo os atributos abaixo:


Objeto UserDetails
{
	String name;
	String userName;
	String email;
	String password;
	String theme;
	byte[] picture;
	boolean twoFactorEnabled;
	Date lockoutEnd;
	boolean lockoutEnabled;
	int accessFailedCount;
}


Grupos e Permissionáveis

É importante ressaltar que todos os usuários autenticados na aplicação com a ação Para Autenticar, por padrão, herdarão as regras do permissionável Authenticated. Para obter mais informações, consulte a documentação Permissões de Segurança.

Para vincular outros permissionáveis ou grupos a esse usuário, será necessário utilizar outras ações, por exemplo, a ação Para Obter Grupos de Acesso, que espera receber uma lista com os nomes dos Grupos das Permissões de segurança que serão vinculados ao usuário que logar na aplicação.

Passos

Neste tutorial, criaremos uma função de bloco de programação com uma regra genérica de autenticação e, em seguida, adicionaremos a função criada à ação Para Autenticar.

É importante destacar que a regra criada neste tutorial é apenas um exemplo de uso geral, você pode criar e utilizar regras personalizadas de acordo com os requisitos específicos de sua aplicação. As configurações do projeto serão detalhadas nos tópicos a seguir.

Se desejar, o projeto previamente configurado está em um repositório no GitHub. Para mais informações sobre como importar projetos de um servidor Git, acesse a documentação Criar projeto.

Configurando o bloco de programação

Vamos dar início ao nosso tutorial criando a nossa função de bloco de programação do tipo servidor. Inicialmente, criamos um arquivo blockly e atribuímos o nome "ParaAutenticar" à nossa função. Ela será responsável pelo processo de autenticação do usuário, ou seja, irá verificar se o login e senha do usuário são válidos. Para configurá-la siga os passos abaixo.


Figura 1 - Configurando a parte inicial da função


  1. Primeiramente, vamos adicionar dois parâmetros de entrada na função "ParaAutenticar". Para isso, clique no ícone de engrenagem da função e adicione os parâmetros "username" e "password", que terá por objetivo armazenar as informações de login e senha do usuário.
  2. Defina uma variável com o nome "usuários" e, nela, adicione o bloco Para Json com o bloco de texto que contém as informações de login de dois usuários, "user1" e "user2", contidas no bloco abaixo:

    [
        {
            "username":"user1",
            "password":"senha1",
            "email":"user1@email.com"
        },
        {
            "username":"user2",
            "password":"senha2",
            "email":"user2@email.com"
        }
    ]
  3. Defina uma variável com o nome "valorBooleano" e insira o bloco de valor nulo. Essa variável será adicionada no retorno da função (destaque 5) e será passada como parâmetro na ação Para Autenticar da janela de Eventos e Ações. No decorrer da execução essa variável assumirá os valores true ou false a depender das validações realizadas e, a partir disso, a autenticação do usuário será válida ou não.
  4. Adicione o bloco condicional se faça, ele será responsável por validar as informações de login e senha de um usuário. Para configurá-lo, clique no ícone de engrenagem do bloco e, abaixo do bloco "se", adicione os blocos "senão se" e "senão", nesta ordem (destaque a).
  5. Insira a variável "valorBooleano" no retorno da função.


Agora vamos configurar o bloco condicional se faça, responsável por validar as informações de login e senha de um usuário e determinar se ele está autorizado a acessar a aplicação. Na primeira condição (Figura 1.1), iremos verificar se a senha informada por um usuário na tela de login é válida. Configure a sua função de acordo com os passos da imagem abaixo.


Figura 1.1 – Configurando a verificação de senha da aplicação


  1. No parâmetro se do bloco se faça, encaixe o bloco de negação lógica e, em seguida, o bloco é nulo ou vazio? com a variável "password" como parâmetro. Como mencionado anteriormente, essa função será executada duas vezes. Na primeira execução, apenas o usuário é obtido, enquanto a senha permanece vazia. Dessa forma, essa primeira condição verifica inicialmente se a senha está vazia; se estiver, o próximo parâmetro do bloco será executado para a checagem do usuário (Figura 1.2). Na segunda execução, os próximos passos serão executados.
  2. No parâmetro faça do bloco condicional, defina a variável "valorBooleano" com o bloco de valor booleano falso.
  3. Adicione o bloco de repetição para cada item da lista e, nele, a variável "usuários", que foi criada anteriormente e contém as informações dos usuários autorizados a acessar a aplicação. Este bloco será responsável por acessar todos esses usuários e obter seu login (destaque 4) e senha (destaque 5).
  4. Defina uma variável com o nome "obterUsuario" e insira o bloco Obter campo do Json. No parâmetro Json do bloco, adicionamos a variável "i" do laço de repetição, que contém as informações dos usuários cadastrados na aplicação, e no parâmetro Caminho a percorrer incluímos o caminho "username" para obter o login do usuário.
  5. Defina uma variável com o nome "obterSenha" e adicione outro bloco Obter campo do Json, que obterá a senha do usuário, utilizando o caminho "password".
  6. Adicione o bloco se faça e, no parâmetro se, o bloco de operação lógica "e". Em cada um de seus parâmetros, insira o bloco de comparação lógica que irá validar o login e senha informados. Essa condição será válida apenas se as comparações de usuário e senha dos blocos forem verdadeiras. Se o resultado for verdadeiro, indica que o usuário informado está registrado na aplicação e a senha informada é válida para esse usuário.
    1. No parâmetro faça do bloco se faça, se a condição anterior for verdadeira, a variável "valorBooleano" será definida com o bloco de valor booleano verdadeiro, e o bloco encerra finalizará o laço de repetição. Isso significa que o usuário poderá acessar a aplicação, caso contrário a variável "valorBooleano" continuará com o valor false (destaque 2).

Na imagem abaixo, podemos observar as configurações das demais condições do bloco se faça para verificar a autenticidade do usuário na aplicação.


Figura 1.2 – Configurando a verificação de usuário da aplicação


  1. No parâmetro senão se do bloco condicional se faça, encaixe o bloco de negação lógica e, em seguida, o bloco é nulo ou vazio? com a variável "username" como parâmetro. Essa condição inicialmente verifica se o campo de usuário está vazio; se estiver, o próximo parâmetro do bloco será executado (destaque 6).
  2. No parâmetro faça do bloco condicional, definimos a variável "valorBooleano" com o bloco de valor booleano falso.
  3. Adicione o bloco de repetição para cada item da lista e, nele, a variável "usuários". Este bloco será responsável por acessar todos os usuários registrados na aplicação e obter seu login (destaque 4).
  4. Defina uma variável com o nome "obterUsuario" e, nela, insira o bloco Obter campo do Json. No parâmetro Json do bloco, adicionamos a variável "i" do laço de repetição e no parâmetro Caminho a percorrer incluímos o caminho "username" para obter o login do usuário.
  5. Adicione o bloco se faça e, no parâmetro se desse bloco, insira o bloco de comparação lógica, que retornará verdadeiro apenas se a comparação do usuário obtido estiver registrada na aplicação.
    1. No parâmetro faça do bloco se faça, se a condição anterior for verdadeira, a variável "valorBooleano" será definida com o bloco de valor booleano verdadeiro, e o bloco encerra finalizará o laço de repetição. Na primeira execução da função, isso indica que o usuário está presente no registro de usuários da aplicação. Na segunda execução, a senha informada terá sido obtida e a condição detalhada na Figura 1.1 poderá ser validada.
  6. Se nenhuma das condições acima forem verdadeiras, a variável "valorBooleano" receberá o bloco de valor booleano falso. Isso significa que o usuário não terá permissão para acessar a aplicação.

Configurando ação Para Autenticar

Após seguir os passos acima, iremos configurar a ação Para Autenticar da janela de Eventos e Ações, responsável por realizar a autenticação dos usuários ao logar na aplicação, substituindo a autenticação padrão do Cronapp. Para acessar essa funcionalidade, clique em Projetos > Eventos e Ações no menu do sistema.


Figura 1.3 – Configurando a ação Para Autenticar da aplicação


Em seguida, na ação Para Autenticar, clique no botão (destaque 1) para abrir a janela de seleção do bloco de programação. Na janela que for exibida, clique no botão "..." e selecione a função de bloco de programação configurada anteriormente. Após esta ação, os dois parâmetros da função serão exibidos. Na coluna Valor do campo de cada parâmetro, selecione os valores "username" e "password" (destaque 3), respectivamente. Por fim, após seguir esses passos, clique em Selecionar e, na janela de Eventos e Ações, clique em OK.

Executando o projeto

Após completar os passos anteriores, salve as alterações e execute o projeto. Na tela de login, preencha os campos com um nome de usuário e senha registrados na sua aplicação e faça login. Para este exemplo, utilizamos "user1" como usuário e a senha correspondente com base nas informações de usuário criadas (destaque 1 da Figura 1).


Figura 1.4 – Tela de login


Após a autenticação bem-sucedida, o usuário será redirecionado para a página inicial da aplicação. 


Figura 1.5 – Página inicial exibida após autenticação do usuário


Nesta página

  • Sem rótulos