Ir para o conteúdo

Aplicativo de provisionamento de usuários no Jitterbit App Builder

Introdução

Esta página mostra como criar um aplicativo de provisionamento de usuários que os usuários da interface podem usar para provisionar acesso ao aplicativo de forma semi-automatizada, sem precisar de acesso ao IDE. Esta é uma abordagem alternativa para gerenciar o acesso de usuários quando um provedor de identidade (como Okta ou Azure) não está disponível.

O processo envolve a criação de provedores de segurança, configuração de reinos, preparação do modelo de dados, construção de uma sequência de regras de negócios para lidar com a lógica e criação de uma interface simples para que os usuários da interface acionem o processo.

Estas instruções usam o exemplo de fornecer acesso aos funcionários de uma empresa. As instruções estão divididas em cinco etapas:

Preparação

Para começar, crie um aplicativo dedicado para provisionar usuários. O utilizado neste tutorial é chamado simplesmente de Aplicativo de Provisionamento de Usuários e começa com as seguintes tabelas:

Tabela Colunas
Funcionário EmployeeID (ID Único, PK), FullName (String), Email (String), EmployeeNo (String)
Departamento DepartmentID (ID Único, PK), Name (String)
Parâmetro ParameterID (ID Único, PK)

Colunas adicionais são adicionadas a essas tabelas durante as etapas abaixo.

Etapa 1: Configuração inicial

Primeiro, você precisa de um provedor de segurança para lidar com o provisionamento e um lugar para armazenar os detalhes de configuração.

Criar um provedor de segurança

Para criar um provedor de segurança, siga estas etapas:

  1. Selecione IDE > Provedores de Segurança.

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

  3. Configure o provedor com estas configurações:

    • Nome: User Provisioning

      Nota

      Não deve ser confundido com o aplicativo de provisionamento em si, que é chamado de User Provisioning App.

    • Tipo: User Provisioning

    • Habilitado: Marcado.

    • User Provisioning: Marcado.

  4. Clique em Salvar.

  5. Copie e salve a chave Identificador do novo provedor para a próxima etapa.

Parametrizar a configuração

Para armazenar o ID do provedor e uma senha padrão na tabela Parameter do seu aplicativo, siga estas etapas:

  1. Execute seu aplicativo de provisionamento de usuários, em seguida, vá para a aba Tabelas do App Workbench.

  2. Em Tabelas, encontre a tabela Parameter, em seguida, clique no ícone Abrir registro.

  3. Adicione as seguintes duas colunas:

    • MyProviderID (Tipo: ID Único)

    • DefaultPassword (Tipo: String)

  4. Vá para a aba Páginas do App Workbench.

  5. Em Páginas, encontre a página Parameter, em seguida, clique no ícone .

  6. Adicione novos controles (tipo de controle Texto) à página para as colunas MyProviderID e DefaultPassword.

  7. Execute o aplicativo e selecione Configuração > Parâmetros. O popup Parâmetros é aberto.

  8. Clique em Editar.

  9. Cole o identificador do provedor de segurança (copiado anteriormente) no campo MyProviderID.

  10. Insira uma senha padrão segura no campo DefaultPassword. Esta é a senha que é atribuída a novos usuários.

  11. Clique em Salvar, em seguida, feche o popup Parameter.

Etapa 2: Configurar controle de acesso

Com o provedor criado, agora você pode configurar os grupos de usuários e os domínios que governam o acesso. Para fazer isso, siga estas etapas:

  1. Selecione IDE > Gerenciamento de Usuários.

  2. Selecione a aba Grupos.

  3. Clique em + Grupo. O popup Grupo é aberto.

  4. Defina os seguintes valores:

    • Nome: Demo General User

    • Descrição: Permissões de usuário geral para o aplicativo de demonstração.

  5. Clique em Salvar, depois feche o popup Grupo.

  6. Em Grupos, clique em Gerenciar Privilégios para o novo grupo.

  7. Em Privilégios, clique em Criar. O popup Privilégio se abre.

  8. Defina os seguintes valores:

    • Tipo: Selecione Aplicativo.

    • Aplicativo: Abra o menu e selecione o aplicativo que os usuários finais acessarão.

    Nota

    O aplicativo que você deve selecionar aqui é aquele ao qual os usuários finais farão login. Isso pode ou não ser o próprio aplicativo de provisionamento. Neste tutorial, um aplicativo de provisionamento dedicado foi criado para gerenciar o acesso a um ou mais aplicativos, portanto, você deve selecionar o aplicativo de destino aqui, e não o aplicativo de provisionamento.

  9. Clique em Salvar, depois feche o painel Privilégios/Funções.

  10. Em Funções, conceda as funções apropriadas para usuários gerais.

  11. Selecione a aba Reinos.

  12. Clique em + Reino.

  13. Digite Demo Realm como o nome, depois clique no ícone .

  14. Na aba Aplicativos, clique em Selecionar para o aplicativo que os usuários finais acessarão.

  15. Selecione a aba Grupos, depois clique em Selecionar para o grupo Demo General User que foi criado.

  16. Selecione a aba Provedores, depois clique em Selecionar para o provedor de segurança User Provisioning criado anteriormente.

Passo 3: Prepare o modelo de dados

Agora você deve atualizar suas tabelas Department e Employee para armazenar informações de segurança e status de provisionamento.

Siga estas etapas:

  1. Com seu aplicativo em execução, vá para a aba Fontes de Dados do App Workbench.

  2. Clique em + Fonte.

  3. Selecione Vincular a fonte existente, depois clique em Próximo.

  4. Encontre e selecione App Builder (Sealed) (Padrão), depois clique em Vincular 1 Fonte e Concluído. Isso dá acesso a objetos de dados públicos necessários para o provisionamento.

  5. Vá para a aba Tabelas do App Workbench.

  6. Em Tabelas, encontre a tabela Department, depois clique no ícone Abrir registro.

  7. Adicione uma nova coluna chamada MyGroupID (Tipo: ID Único).

  8. Vá para a aba Páginas do App Workbench e abra sua página Departamento para edição.

  9. Adicione o controle MyGroupID à sua página. Defina seu Tipo de Controle como Lista e clique em Próximo.

  10. Na próxima página, defina estes valores e clique em Próximo:

    • Fonte: Realm_Group

    • Chave (Coluna): GroupId (PK)

    • Título (Coluna): Name

  11. Clique em Concluir.

  12. Vá para a aba Páginas do App Workbench e abra sua página Departamento para edição.

  13. Selecione a aba Métodos de Atualização.

  14. Certifique-se de que a configuração do Método de Edição seja Padrão.

  15. Execute o aplicativo, navegue até a página Departamentos e atribua o grupo Demo General User a um dos seus departamentos.

Atualizar a tabela de Funcionários

Siga estas etapas:

  1. Vá para a aba Tabelas do App Workbench.

  2. Em Tabelas, encontre a tabela Funcionário e clique no ícone Abrir registro.

  3. Adicione as seguintes colunas:

    • MyUserID (Tipo: ID Único): Armazena o ID do App Builder do usuário após a criação.

    • ProvisionedOn (Tipo: DataHora): Um timestamp para quando a provisão ocorreu.

    • ProvisionedBy (Tipo: String, comprimento: 150): O nome do usuário que realizou a provisão.

Etapa 4: Construir a lógica de provisão

O núcleo do aplicativo é um evento em nível de tabela na tabela Funcionário que orquestra uma sequência de regras. Essas regras são executadas uma após a outra usando manipuladores de sucesso.

Regra 1: Criar o usuário

Esta regra cria o registro do usuário, mas apenas se um já não existir. Siga estas etapas:

  1. Vá para a aba Tabelas do App Workbench.

  2. Em Tabelas, encontre a tabela Funcionário e clique no ícone Abrir registro.

  3. Clique em Eventos. A janela pop-up Eventos de Armazenamento de Dados (Funcionário) se abre.

  4. Clique em + Evento de Tabela.

  5. Em Informações do Evento, defina o Nome como Provisionar Usuário e clique em Salvar.

  6. Em Ações, clique em + Regra & Registro.

  7. Na página Construtor de Regras, defina os seguintes valores:

    • Nome: Realm_User_Create (Inserir Funcionário)

    • Propósito: XP CRUD

    • Ação: Inserir

    • Fonte de Dados de Origem: Selecione o aplicativo de provisionamento de usuários que você criou. Neste tutorial, é o Aplicativo de Provisionamento de Usuários.

    • Fonte de Dados de Destino: Vinyl (Selado)

    • Opções: Selecione Camada de Lógica.

    • Destino: Realm_User_Create

  8. Clique em Criar.

  9. Com a aba Tabelas selecionada, clique em + Tabela.

  10. Na aba Fonte de Dados Atual, adicione a tabela Funcionário.

  11. Selecione a aba Onde.

  12. Clique em + Cláusula Where.

  13. Em Expressão Esquerda, insira E.MyUserID.

  14. Abra o menu Operador, e selecione É NULO.

  15. Clique em Salvar, e depois feche o popup Where.

  16. Selecione a aba Tabelas, depois selecione EmployeeID e quaisquer colunas adicionais que a regra precisa para sua ação (por exemplo, o nome e o endereço de email do usuário provisionado).

  17. Selecione a aba Colunas, e defina os campos da seguinte forma:

    Coluna ou Expressão Alias Destino PK
    E.EmployeeID UserId (PK)
    E.FullName FullName
    E.Email EmailAddress
    E.FullName DisplayName DisplayName
    E.EmployeeNo UserName UserName
  18. (Opcional, mas recomendado) Selecione a aba Resultados e clique em Validar.

  19. Vá para a aba Tabelas do App Workbench.

  20. Em Tabelas, encontre a tabela Funcionário, depois clique no ícone Abrir registro.

  21. Clique em Eventos. O popup Eventos de Armazenamento de Dados (Funcionário) se abre.

  22. Clique no ícone Abrir registro para o evento Provisionar Usuário.

  23. Em Ações, clique no ícone Abrir registro para a regra Realm_User_Create (Inserir Funcionário).

  24. Em Bindings, clique em + Binding.

  25. Defina a seguinte ligação:

    Coluna de Origem Coluna de Regra
    EmployeeID EmployeeID
  26. Clique no ícone , e depois feche o popup Action/Bindings/SQL.

Regra 2: Atualizar o registro do funcionário

Após o usuário do App Builder ser criado pela Regra 1, esta regra grava o ID do novo usuário de volta no campo MyUserID na tabela Employee. Isso vincula o registro do funcionário à sua conta do App Builder para que regras subsequentes possam referenciar seu ID.

  1. Na página Event/Validations/Actions, em Actions, clique em + Rule & Register.

  2. Defina os seguintes valores:

    • Name: Employee (Update MyUserID to EmployeeID)

    • Purpose: CRUD

    • Action: Update

    • Target Layer: Data Layer

    • Target: Employee

  3. Clique em Create.

  4. Selecione a aba Columns.

  5. Clique em + Column.

  6. Na caixa Column or Expression, insira E.EmployeeID, e depois defina os seguintes valores restantes:

    • Alias: MyUserID

    • Target: MyUserID

    • TargetType: Target

  7. Clique em Save, e depois feche o popup Add Column.

  8. (Opcional, mas recomendado) Selecione a aba Results e clique em Validate.

  9. Clique em < Event para retornar à página Provision User (Event/Validations/Actions).

  10. Em Actions, clique em para desregistrar a regra que foi adicionada e registrada (Employee (Update MyUserID to EmployeeID)), e depois clique em Proceed.

  11. Em Actions, clique no ícone Open record para a ação restante Realm_User_Create (Insert Employee). O popup Action/Bindings/SQL é aberto.

  12. Clique em Success. O popup Success Handlers é aberto.

  13. Clique em Create. O popup Action é aberto.

  14. Defina os seguintes valores:

    • Type: Rule

    • Rule: Selecione Employee (Update MyUserID to EmployeeID)

  15. Clique em Salvar.

  16. Em Vínculos, clique em + Vínculo.

  17. Defina o seguinte vínculo:

    Coluna de Origem Coluna de Regra
    EmployeeID EmployeeID
  18. Feche os pop-ups para retornar à página Evento/Validações/Ações para Provisionar Usuário.

    Dica

    O número 1 ao lado do ícone indica a presença de um manipulador de sucesso para esta ação.

Regra 3: Definir a senha do usuário

Esta regra define a senha inicial do novo usuário usando o valor padrão armazenado na tabela Parameter.

  1. Vá para a aba Regras do App Workbench.

  2. Clique em + Regra.

  3. Defina os valores da seguinte forma:

    • Nome: User_SetPassword (Atualizar Senha Padrão)

    • Finalidade: Selecione XPCRUD

    • Ação: Atualizar

    • Fonte de Dados de Origem: Selecione o aplicativo de provisionamento de usuários que você criou. Neste tutorial, é o Aplicativo de Provisionamento de Usuários.

    • Fonte de Dados de Destino: Vinyl (Selado)

    • Camada de Destino: Camada Lógica

    • Destino: User_SetPassword

  4. Clique em Criar.

  5. Selecione a aba Tabelas.

  6. Na aba Fonte de Dados Atual, clique em + Tabela, e adicione as tabelas Employee e Parameter.

  7. Na tabela Employee, selecione as colunas EmployeeID e MyUserID.

  8. Na tabela Parameter, selecione a coluna DefaultPassword.

  9. Selecione a aba Colunas e defina os campos da seguinte forma:

    Coluna ou Expressão Alias Destino PK
    E.MyUserID UserID (PK)
    P.DefaultPassword Password
  10. (Opcional) Clique no ícone Abrir registro para a coluna E.MyUserID. No pop-up Coluna, confirme que o Tipo de Destino é Vincular.

  11. (Opcional) Clique no ícone Abrir registro para a coluna P.DefaultPassword. No pop-up Coluna, confirme que o Tipo de Destino é Destino.

  12. Selecione a aba Where, em seguida clique em + Where Clause.

  13. Em Left Expression, insira E.MyUserID.

  14. Abra o menu Operator, em seguida selecione IS NOT NULL.

  15. Clique em Save, depois feche o popup Where.

  16. Vá para a aba Rules do App Workbench.

  17. Em App Data Sources, selecione All Events.

  18. Em All Events, clique em Provision User na coluna Event.

  19. Para a entrada Provision User, clique em Rule Event Detail.

  20. Em Actions, clique no ícone Success handlers para a regra Realm_User_Create (Insert Employee). O popup Success Handlers é aberto.

  21. Clique em Create. O popup Action é aberto.

  22. Defina os seguintes valores:

    • Type: Rule

    • Rule: Selecione User_SetPassword (Update Default Password)

  23. Clique em Save.

  24. Em Bindings, clique em + Binding.

  25. Defina o seguinte binding:

    Source Column Rule Column
    EmployeeID EmployeeID
  26. Feche os popups para retornar à página Event/Validations/Actions para Provision User.

  27. Atualize a página e observe que o número de success handlers para a regra Realm_User_Create (Insert Employee) agora é 2.

Rule 4: Grant group access

Esta regra concede ao novo usuário acesso ao grupo App Builder associado ao seu departamento, usando o valor MyGroupID definido na tabela Department.

  1. Vá para a aba Rules do App Workbench.

  2. Clique em + Rule.

  3. Defina os valores da seguinte forma:

    • Name: Realm_UserGroup (Cram Department)

    • Purpose: Selecione XPCRUD

    • Action: Cram

    • Source Data Source: Selecione o aplicativo de provisionamento de usuários que você criou. Neste tutorial, é User Provisioning App.

    • Target Data Source: Vinyl (Sealed)

    • Target Layer: Logic Layer

    • Target: Realm_UserGroup

  4. Clique em Create.

  5. Selecione a aba Tables.

  6. Na aba Current Data Source, clique em + Table, em seguida adicione as tabelas Employee e Department.

    Dica

    O App Builder cria automaticamente um relacionamento de chave estrangeira entre as colunas DepartmentID das duas tabelas.

  7. Na tabela Employee, selecione as colunas EmployeeID e MyUserID.

  8. Na tabela Department, selecione a coluna MyGroupID.

  9. Selecione a aba Where, em seguida clique em + Where Clause.

  10. Em Left Expression, insira D.MyGroupID.

  11. Abra o menu Operator, em seguida selecione IS NOT NULL.

  12. Clique em Save, em seguida feche o popup Where.

  13. Clique em + Where Clause.

  14. Em Left Expression, insira E.MyUserID.

  15. Abra o menu Operator, em seguida selecione IS NOT NULL.

  16. Clique em Save, em seguida feche o popup Where.

  17. Selecione a aba Columns, e defina os campos da seguinte forma (por exemplo):

    Column or Expression Alias Target PK
    E.EmployeeID
    E.MyUserID UserID (PK)
    D.MyGroupID GroupID (PK)
  18. Selecione More > Edge Case. O popup Edge Case Settings é aberto.

  19. Ative a opção Select Distinct, em seguida feche o popup.

  20. Vá para a aba Rules do App Workbench.

  21. Em App Data Sources, selecione All Events.

  22. Em All Events, clique em Provision User na coluna Event.

  23. Para a entrada Provision User, clique em Rule Event Detail.

  24. Em Actions, clique no ícone Open record para a regra Realm_User_Create (Insert Employee).

  25. Clique em Success. O popup Success Handlers é aberto.

  26. Clique em Create. O popup Action é aberto.

  27. Defina os seguintes valores:

    • Type: Rule

    • Rule: Selecione Realm_UserGroup (Cram Department)

  28. Clique em Save.

  29. Em Bindings, clique em + Binding.

  30. Defina o seguinte binding:

    Source Column Rule Column
    EmployeeID EmployeeID
  31. Feche os pop-ups para retornar à página Evento/Validações/Ações para Provisionar Usuário.

Regra 5: Registre a ação de provisionamento

Esta regra registra quem acionou o provisionamento e quando, escrevendo a data e hora atual e o nome do usuário logado nos campos ProvisionedOn e ProvisionedBy na tabela Employee.

  1. Vá para a aba Regras do App Workbench.

  2. Clique em + Regra.

  3. Defina os seguintes valores:

    • Nome: Employee (Atualizar ProvisionedOn/By)

    • Propósito: CRUD

    • Ação: Atualizar

    • Camada Alvo: Camada de Dados

    • Alvo: Employee

  4. Clique em Criar.

  5. Selecione a aba Colunas.

  6. Clique em + Coluna.

  7. Na caixa Coluna ou Expressão, insira now(), depois defina os seguintes valores restantes:

    • Alvo: ProvisionedOn

    • Tipo de Alvo: Alvo

  8. Clique em Salvar, depois feche o pop-up Adicionar Coluna.

  9. Clique em + Coluna.

  10. Na caixa Coluna ou Expressão, insira who(), depois defina os seguintes valores restantes:

    • Alvo: ProvisionedBy

    • Tipo de Alvo: Alvo

  11. Clique em Salvar, depois feche o pop-up Adicionar Coluna.

  12. (Opcional, mas recomendado) Selecione a aba Resultados, depois clique em Validar.

  13. Vá para a aba Regras do App Workbench.

  14. Sob Fontes de Dados do App, selecione Todos os Eventos.

  15. Sob Todos os Eventos, clique em Provisionar Usuário na coluna Evento.

  16. Para a entrada Provisionar Usuário, clique em Detalhe do Evento da Regra.

  17. Sob Ações, clique no ícone Manipuladores de Sucesso para a regra Realm_User_Create (Inserir Funcionário). O pop-up Manipuladores de Sucesso se abre.

  18. Clique em Criar. O pop-up Ação se abre.

  19. Defina os seguintes valores:

    • Tipo: Regra

    • Regra: Selecione Employee (Atualizar ProvisionedOn/By)

  20. Clique em Salvar.

  21. Sob Vínculos, clique em + Vínculo.

  22. Defina o seguinte vínculo:

    Coluna de Origem Coluna da Regra
    EmployeeID EmployeeID
  23. Feche os pop-ups para retornar à página Evento/Validações/Ações para Provisionar Usuário.

Passo 5: Criar a interface do usuário

  1. Navegue até Páginas e abra sua página Funcionário para edição.

  2. Adicione um novo controle Botão com o rótulo Provisionar Usuário.

  3. Nas propriedades do botão, navegue até a aba Eventos e selecione o evento Provisionar Usuário.

  4. Para garantir que a interface do usuário seja atualizada corretamente, na aba Comportamento, defina o Escopo de Atualização como Linha.

  5. Para ocultar o botão para usuários já provisionados, vá até a aba Visibilidade e adicione uma condição: ProvisionadoEm NÃO É NULO.

Próximos passos

A lógica central de provisionamento está agora completa. Você pode aprimorar ainda mais esse processo: