Ir para o conteúdo

Provedor de segurança de autenticação de aplicativo no Jitterbit App Builder

Introdução

O App Builder suporta Autenticação de Aplicativo como um provedor de segurança, permitindo que você crie seus próprios formulários de login e autentique clientes usando uma abordagem personalizada. Em vez de redirecionar os clientes para um Provedor de Identidade (IdP) de terceiros, os clientes são redirecionados para uma página do App Builder que você cria. (Este provedor é usado para fazer login de usuários no App Builder; não pode ser usado para autorizar usuários que já estão logados.)

Você pode querer usar um fluxo de login personalizado em situações como estas:

  • Permitir que os clientes mantenham suas próprias contas de usuário.

  • Validar credenciais contra um serviço de terceiros via uma API.

  • Verificar um número de telefone enviando um Código de Acesso Único (OTP).

  • Permitir que os clientes façam login de forma semi-anônima.

Esta página explica como funciona o fluxo de autenticação e como configurá-lo.

Como funciona: o fluxo de autenticação

Entender o fluxo de Autenticação de Aplicativo é fundamental para implementá-lo corretamente, especialmente ao direcionar usuários para uma página que requer login. Isso é conhecido como um "desafio".

O processo de desafio e redirecionamento

Aqui está a jornada típica do usuário ao tentar acessar uma página protegida:

  1. Solicitação inicial: Um usuário não autenticado tenta acessar um "link profundo" para uma página dentro do seu aplicativo que requer login. O link pode até conter parâmetros de URL.

    Exemplo de URL
    https://<seu-domínio>/app/MyApp/MyProtectedPage?orderId=123
    
  2. Desafio de autenticação: O App Builder determina que o usuário não está logado e que a página requer autenticação. Ele inicia um "desafio".

  3. Redirecionamento para a página de login: O App Builder redireciona o usuário para a página de login personalizada definida na propriedade LoginPath do provedor de segurança de Autenticação de Aplicativo.

    Importante

    Para que isso aconteça automaticamente, você deve fazer o seguinte:

  4. Defina este provedor de segurança como o Provedor de Autenticação Padrão para sua aplicação. (Isso substitui qualquer padrão global que possa estar definido em IDE > Provedores de Segurança > Configuração > Provedor de Autenticação Padrão.)

  5. Ative a opção Redirecionar em Desafio.

  6. Usuário faz login: O usuário insere suas credenciais em sua página de login personalizada e envia o formulário.

  7. Regra de autenticação é executada: Sua regra de autenticação personalizada é executada, verifica as credenciais e faz o login do usuário no App Builder.

  8. Redirecionar para a página original: Após um login bem-sucedido, o App Builder redireciona automaticamente o usuário de volta para a página que ele tentou acessar originalmente, incluindo todos os parâmetros de URL originais.

Esse fluxo contínuo garante que os usuários cheguem exatamente onde pretendiam após fazer login, sem perder nenhum contexto do link original que seguiram.

Visão geral da configuração

Para configurar a Autenticação de Aplicação, é necessário configurar vários componentes em seu ambiente e dentro de sua aplicação.

Configuração do ambiente

Os seguintes itens devem ser configurados em cada ambiente (por exemplo, Dev, QA e Produção):

  • Aplicação da página de login: Uma aplicação App Builder separada e autônoma que serve como seu formulário de login.

  • Provedor de segurança de autenticação da aplicação: O provedor de segurança que define o comportamento de login personalizado.

  • Contas de usuário genéricas: Uma ou mais contas de usuário no App Builder às quais os usuários autenticados são mapeados.

Configuração da aplicação

Você deve configurar estes itens em sua aplicação principal:

  • Regra de autenticação: Uma regra de negócios que contém a lógica para verificar as credenciais do usuário.

  • (Opcional) Tabelas de suporte: Tabelas para gerenciar sessões de usuário, senhas e dados específicos da aplicação.

Guia de configuração passo a passo

1. Crie a aplicação da página de login

Você deve configurar a página de login como um aplicativo autônomo. Este aplicativo existe apenas para autenticar usuários. Estes são os requisitos para ele:

  • A página deve ser acessível ao grupo Usuário Anônimo.

  • Deve conter um painel que funcione com a tabela Sessão.

  • Necessita de um ou mais campos editáveis para capturar as credenciais do usuário (como Nome de Usuário, Email ou Número de Telefone).

  • (Opcional) Um campo de Senha (com validação de senha configurada).

  • Necessita de um botão de Login que acione sua regra de autenticação. Este botão não deve linkar para nenhuma página; seu único propósito é executar a regra.

  • Você pode incluir opcionalmente links de Esqueceu a Senha ou Inscrever-se.

2. Criar o provedor de segurança de autenticação do aplicativo

Para criar o provedor de segurança de autenticação do aplicativo, siga estas etapas:

  1. Selecione IDE > Provedores de Segurança.

  2. No painel Autenticação de Usuário, clique em + Autenticação de Usuário.

  3. Na página Provedor, defina o seguinte:

    • Nome: Um nome para seu provedor (por exemplo, MyAppAuthentication).

    • Tipo: Selecione Autenticação de Aplicativo.

    • Habilitado: Deixe isso desabilitado até que toda a configuração esteja completa.

    • Mostrar no Formulário de Login: Marque esta caixa.

    • Página Padrão: Selecione a página de destino padrão que um usuário deve ver após fazer login, se ele não tentou acessar originalmente uma página de link profundo específica. A página deve ser marcada como Pública nas configurações de Caso de Borda.

  4. Clique em Salvar.

  5. Em Propriedades, clique em + Propriedade.

  6. Na janela pop-up Propriedades, defina os valores da seguinte forma:

    • Parâmetro: Selecione LoginPath.

    • Valor: Insira o caminho relativo à raiz do seu aplicativo de página de login. O caminho deve ser codificado em URL e começar com uma /.

      Exemplo
      /app/Login%20App/Login%20Page
      
  7. Salve as propriedades e feche a janela pop-up.

3. Configurar uma conta de usuário genérica

O App Builder fornece duas abordagens principais para gerenciar contas de usuário com Autenticação de Aplicação:

  1. Mapeamento para uma conta de usuário genérica: Isso envolve a criação de uma ou mais contas de usuário pré-existentes no App Builder às quais os usuários externos autenticados são mapeados. Isso é particularmente útil para cenários como acesso semi-anônimo (por exemplo, usando um número de telefone e OTP), onde todos os usuários externos podem compartilhar uma conta de baixo privilégio.

  2. Provisionamento dinâmico de usuários: Essa abordagem mais avançada envolve a criação de contas de usuário individuais no App Builder em tempo real durante o processo de login.

Esta seção foca na primeira abordagem: mapeamento para uma conta de usuário genérica. Para fazer isso, siga estas etapas:

  1. Selecione IDE > Gerenciamento de Usuários e crie uma nova conta de usuário (por exemplo, MyAppUser). Esta é a conta que fornece as permissões dentro do aplicativo.

  2. Atribua o usuário aos Grupos que concedem os papéis necessários para sua aplicação.

  3. Em Identidades, clique em + Identidade para criar uma identidade para este usuário com as seguintes configurações:

    • Nome: Insira o valor que sua aplicação usará para identificar a pessoa, como seu nome de usuário ou endereço de email. Isso deve ser único para cada usuário. O App Builder usará isso para encontrar a conta de usuário correta, a menos que você também forneça um valor para Identificador.

    • Identificador (opcional, mas recomendado): Insira um ID permanente e único para este usuário. Esta é a maneira mais confiável para o App Builder reconhecer um usuário, mesmo que seu endereço de email ou nome de usuário mude. Se você fornecer isso, o App Builder sempre o usará primeiro para encontrar o usuário.

4. Criar a regra de autenticação

Você precisa de uma regra de negócios para lidar com a lógica de autenticação real. Para configurar uma, siga estas etapas:

  1. Crie uma Regra de Negócios CRUD XP que execute uma ação de Inserir.

  2. Defina a Fonte de Dados Alvo como App Builder e o Alvo como o objeto de dados público Authenticate.

  3. Na SQL da regra, junte sua tabela de credenciais de usuário com a tabela Session para obter o nome de usuário e a senha inseridos pelo usuário.

  4. Mapeie as seguintes quatro colunas obrigatórias para o destino Authenticate:

    • AuthenticateID: Um novo GUID. Use newUUID().

    • ProviderId: O ID do seu provedor de segurança de autenticação de Aplicação.

    • AppUserId: Um identificador para o usuário final que está fazendo login (como seu email ou nome de usuário). Isso é usado para auditoria via a função who('appuserid').

    • Name: O nome da Identidade do usuário genérico a ser mapeado (por exemplo, MyAppUser). Isso pode ser codificado ou determinado dinamicamente com base nas credenciais do usuário.

5. Habilitar redirecionamento automático em desafio

Para garantir que os usuários sejam enviados automaticamente para sua página de login personalizada ao acessarem uma página protegida, você deve habilitar essas duas configurações:

  1. Configure o provedor de autenticação padrão:

    (O provedor de autenticação padrão pode ser definido em todo o sistema ou no nível da aplicação. A configuração no nível da aplicação substitui a opção em todo o sistema.)

    Para configurar o padrão no nível da aplicação, siga estas etapas:

    1. Selecione IDE > Provedores de Segurança.

    2. Em Autenticação de Usuário, selecione Mais > Gerenciar Aplicações.

    3. Clique no ícone Editar para sua aplicação.

    4. Defina Autenticação Padrão para o provedor de autenticação de Aplicação que você criou.

    5. Clique em Prosseguir e feche o popup.

  2. Configure o redirecionamento em desafio:

    1. Na página Provedores de Segurança, clique no ícone Abrir registro para seu provedor de autenticação de Aplicação.

    2. Em Provedor, clique em Editar.

    3. Marque a opção Redirecionar em Desafio.

    4. Clique em Salvar.

6. Habilitar e testar

Uma vez que todas as etapas acima estejam completas, volte para seu provedor de autenticação de Aplicação no IDE e habilite-o. Agora você pode testar todo o fluxo de login.

Tópicos avançados

Uma das funcionalidades mais poderosas deste fluxo é a capacidade de enviar a um usuário um link para um registro específico ou uma visualização filtrada dentro do seu aplicativo. Como o App Builder preserva a URL originalmente solicitada (incluindo todos os parâmetros de consulta) durante o processo de autenticação, você pode construir links profundos sem nenhuma formatação especial. Por exemplo, você pode enviar a um usuário um link para um pedido específico: https://<seu-domínio>/app/MyApp/Orders?Orders.OrderId=5011. Quando o usuário não autenticado clica neste link, ele é levado à sua página de login e, após fazer login, é redirecionado para a página Orders com o pedido 5011 carregado automaticamente.

Acionar manualmente um desafio

Enquanto o App Builder automaticamente desafia usuários não autenticados quando eles acessam uma página protegida, você também pode acionar manualmente esse processo a partir da lógica do seu aplicativo. Isso é útil para cenários como a expiração da sessão de um usuário ou para fornecer um botão Login dedicado no cabeçalho do seu aplicativo.

Para fazer isso, você cria uma regra de negócios simples que insere um registro no objeto de dados público Challenge. Você pode então anexar essa regra a um evento, como um clique em botão.

Como criar um acionador de login manual

  1. Criar uma Regra de Negócios: Crie uma nova Regra de Negócios CRUD XP e dê um nome descritivo, como Desafio de Login Manual.

  2. Configurar o Alvo da Regra:

    • Defina a Fonte de Dados Alvo como App Builder.

    • Defina o Alvo como o objeto de dados público Challenge.

    • Defina a Ação como Inserir.

  3. Mapear o ID do Provedor: No design da regra, você só precisa mapear uma coluna. Mapeie o ID do seu provedor de segurança de Autenticação de Aplicação para a coluna ProviderId no alvo Challenge. Você pode encontrar esse ID na página Provedores de Segurança no IDE.

  4. Acionar a Regra: Anexe essa nova regra de negócios a um evento. Por exemplo, você poderia adicionar um botão Login ao cabeçalho do seu aplicativo e configurar seu evento on-click para executar a regra Desafio de Login Manual.

Quando esta regra é executada, o App Builder redireciona imediatamente o usuário para a página de login definida no LoginPath do seu provedor de segurança, preservando a página atual do usuário para que ele possa retornar a ela após um login bem-sucedido.