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:
-
Selecione IDE > Provedores de Segurança.
-
Em Autenticação de Usuário, clique em + Autenticação de Usuário.
-
Configure o provedor com estas configurações:
-
Nome:
User ProvisioningNota
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.
-
-
Clique em Salvar.
-
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:
-
Execute seu aplicativo de provisionamento de usuários, em seguida, vá para a aba Tabelas do App Workbench.
-
Em Tabelas, encontre a tabela Parameter, em seguida, clique no ícone Abrir registro.
-
Adicione as seguintes duas colunas:
-
MyProviderID(Tipo: ID Único) -
DefaultPassword(Tipo: String)
-
-
Vá para a aba Páginas do App Workbench.
-
Em Páginas, encontre a página Parameter, em seguida, clique no ícone .
-
Adicione novos controles (tipo de controle Texto) à página para as colunas
MyProviderIDeDefaultPassword. -
Execute o aplicativo e selecione Configuração > Parâmetros. O popup Parâmetros é aberto.
-
Clique em Editar.
-
Cole o identificador do provedor de segurança (copiado anteriormente) no campo MyProviderID.
-
Insira uma senha padrão segura no campo DefaultPassword. Esta é a senha que é atribuída a novos usuários.
-
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:
-
Selecione IDE > Gerenciamento de Usuários.
-
Selecione a aba Grupos.
-
Clique em + Grupo. O popup Grupo é aberto.
-
Defina os seguintes valores:
-
Nome:
Demo General User -
Descrição:
Permissões de usuário geral para o aplicativo de demonstração.
-
-
Clique em Salvar, depois feche o popup Grupo.
-
Em Grupos, clique em Gerenciar Privilégios para o novo grupo.
-
Em Privilégios, clique em Criar. O popup Privilégio se abre.
-
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.
-
-
Clique em Salvar, depois feche o painel Privilégios/Funções.
-
Em Funções, conceda as funções apropriadas para usuários gerais.
-
Selecione a aba Reinos.
-
Clique em + Reino.
-
Digite
Demo Realmcomo o nome, depois clique no ícone . -
Na aba Aplicativos, clique em Selecionar para o aplicativo que os usuários finais acessarão.
-
Selecione a aba Grupos, depois clique em Selecionar para o grupo
Demo General Userque foi criado. -
Selecione a aba Provedores, depois clique em Selecionar para o provedor de segurança
User Provisioningcriado 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.
Vincular Departamentos a grupos de segurança
Siga estas etapas:
-
Com seu aplicativo em execução, vá para a aba Fontes de Dados do App Workbench.
-
Clique em + Fonte.
-
Selecione Vincular a fonte existente, depois clique em Próximo.
-
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.
-
Vá para a aba Tabelas do App Workbench.
-
Em Tabelas, encontre a tabela
Department, depois clique no ícone Abrir registro. -
Adicione uma nova coluna chamada
MyGroupID(Tipo: ID Único). -
Vá para a aba Páginas do App Workbench e abra sua página
Departamentopara edição. -
Adicione o controle
MyGroupIDà sua página. Defina seu Tipo de Controle como Lista e clique em Próximo. -
Na próxima página, defina estes valores e clique em Próximo:
-
Fonte:
Realm_Group -
Chave (Coluna):
GroupId (PK) -
Título (Coluna):
Name
-
-
Clique em Concluir.
-
Vá para a aba Páginas do App Workbench e abra sua página
Departamentopara edição. -
Selecione a aba Métodos de Atualização.
-
Certifique-se de que a configuração do Método de Edição seja Padrão.
-
Execute o aplicativo, navegue até a página Departamentos e atribua o grupo
Demo General Usera um dos seus departamentos.
Atualizar a tabela de Funcionários
Siga estas etapas:
-
Vá para a aba Tabelas do App Workbench.
-
Em Tabelas, encontre a tabela
Funcionárioe clique no ícone Abrir registro. -
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:
-
Vá para a aba Tabelas do App Workbench.
-
Em Tabelas, encontre a tabela
Funcionárioe clique no ícone Abrir registro. -
Clique em Eventos. A janela pop-up Eventos de Armazenamento de Dados (Funcionário) se abre.
-
Clique em + Evento de Tabela.
-
Em Informações do Evento, defina o Nome como
Provisionar Usuárioe clique em Salvar. -
Em Ações, clique em + Regra & Registro.
-
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
-
-
Clique em Criar.
-
Com a aba Tabelas selecionada, clique em + Tabela.
-
Na aba Fonte de Dados Atual, adicione a tabela
Funcionário. -
Selecione a aba Onde.
-
Clique em + Cláusula Where.
-
Em Expressão Esquerda, insira
E.MyUserID. -
Abra o menu Operador, e selecione É NULO.
-
Clique em Salvar, e depois feche o popup Where.
-
Selecione a aba Tabelas, depois selecione
EmployeeIDe 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). -
Selecione a aba Colunas, e defina os campos da seguinte forma:
Coluna ou Expressão Alias Destino PK E.EmployeeIDUserId (PK)E.FullNameFullNameE.EmailEmailAddressE.FullNameDisplayNameDisplayNameE.EmployeeNoUserNameUserName -
(Opcional, mas recomendado) Selecione a aba Resultados e clique em Validar.
-
Vá para a aba Tabelas do App Workbench.
-
Em Tabelas, encontre a tabela
Funcionário, depois clique no ícone Abrir registro. -
Clique em Eventos. O popup Eventos de Armazenamento de Dados (Funcionário) se abre.
-
Clique no ícone Abrir registro para o evento Provisionar Usuário.
-
Em Ações, clique no ícone Abrir registro para a regra Realm_User_Create (Inserir Funcionário).
-
Em Bindings, clique em + Binding.
-
Defina a seguinte ligação:
Coluna de Origem Coluna de Regra EmployeeIDEmployeeID -
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.
-
Na página Event/Validations/Actions, em Actions, clique em + Rule & Register.
-
Defina os seguintes valores:
-
Name:
Employee (Update MyUserID to EmployeeID) -
Purpose: CRUD
-
Action: Update
-
Target Layer: Data Layer
-
Target:
Employee
-
-
Clique em Create.
-
Selecione a aba Columns.
-
Clique em + Column.
-
Na caixa Column or Expression, insira
E.EmployeeID, e depois defina os seguintes valores restantes:-
Alias:
MyUserID -
Target:
MyUserID -
TargetType: Target
-
-
Clique em Save, e depois feche o popup Add Column.
-
(Opcional, mas recomendado) Selecione a aba Results e clique em Validate.
-
Clique em < Event para retornar à página Provision User (Event/Validations/Actions).
-
Em Actions, clique em para desregistrar a regra que foi adicionada e registrada (Employee (Update MyUserID to EmployeeID)), e depois clique em Proceed.
-
Em Actions, clique no ícone Open record para a ação restante Realm_User_Create (Insert Employee). O popup Action/Bindings/SQL é aberto.
-
Clique em Success. O popup Success Handlers é aberto.
-
Clique em Create. O popup Action é aberto.
-
Defina os seguintes valores:
-
Type: Rule
-
Rule: Selecione Employee (Update MyUserID to EmployeeID)
-
-
Clique em Salvar.
-
Em Vínculos, clique em + Vínculo.
-
Defina o seguinte vínculo:
Coluna de Origem Coluna de Regra EmployeeIDEmployeeID -
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.
-
Vá para a aba Regras do App Workbench.
-
Clique em + Regra.
-
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
-
-
Clique em Criar.
-
Selecione a aba Tabelas.
-
Na aba Fonte de Dados Atual, clique em + Tabela, e adicione as tabelas
EmployeeeParameter. -
Na tabela Employee, selecione as colunas EmployeeID e MyUserID.
-
Na tabela Parameter, selecione a coluna DefaultPassword.
-
Selecione a aba Colunas e defina os campos da seguinte forma:
Coluna ou Expressão Alias Destino PK E.MyUserIDUserID (PK)P.DefaultPasswordPassword -
(Opcional) Clique no ícone Abrir registro para a coluna
E.MyUserID. No pop-up Coluna, confirme que o Tipo de Destino é Vincular. -
(Opcional) Clique no ícone Abrir registro para a coluna
P.DefaultPassword. No pop-up Coluna, confirme que o Tipo de Destino é Destino. -
Selecione a aba Where, em seguida clique em + Where Clause.
-
Em Left Expression, insira
E.MyUserID. -
Abra o menu Operator, em seguida selecione IS NOT NULL.
-
Clique em Save, depois feche o popup Where.
-
Vá para a aba Rules do App Workbench.
-
Em App Data Sources, selecione All Events.
-
Em All Events, clique em Provision User na coluna Event.
-
Para a entrada Provision User, clique em Rule Event Detail.
-
Em Actions, clique no ícone Success handlers para a regra Realm_User_Create (Insert Employee). O popup Success Handlers é aberto.
-
Clique em Create. O popup Action é aberto.
-
Defina os seguintes valores:
-
Type: Rule
-
Rule: Selecione User_SetPassword (Update Default Password)
-
-
Clique em Save.
-
Em Bindings, clique em + Binding.
-
Defina o seguinte binding:
Source Column Rule Column EmployeeIDEmployeeID -
Feche os popups para retornar à página Event/Validations/Actions para Provision User.
-
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.
-
Vá para a aba Rules do App Workbench.
-
Clique em + Rule.
-
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
-
-
Clique em Create.
-
Selecione a aba Tables.
-
Na aba Current Data Source, clique em + Table, em seguida adicione as tabelas
EmployeeeDepartment.Dica
O App Builder cria automaticamente um relacionamento de chave estrangeira entre as colunas
DepartmentIDdas duas tabelas. -
Na tabela Employee, selecione as colunas EmployeeID e MyUserID.
-
Na tabela Department, selecione a coluna MyGroupID.
-
Selecione a aba Where, em seguida clique em + Where Clause.
-
Em Left Expression, insira
D.MyGroupID. -
Abra o menu Operator, em seguida selecione IS NOT NULL.
-
Clique em Save, em seguida feche o popup Where.
-
Clique em + Where Clause.
-
Em Left Expression, insira
E.MyUserID. -
Abra o menu Operator, em seguida selecione IS NOT NULL.
-
Clique em Save, em seguida feche o popup Where.
-
Selecione a aba Columns, e defina os campos da seguinte forma (por exemplo):
Column or Expression Alias Target PK E.EmployeeIDE.MyUserIDUserID (PK)D.MyGroupIDGroupID (PK) -
Selecione More > Edge Case. O popup Edge Case Settings é aberto.
-
Ative a opção Select Distinct, em seguida feche o popup.
-
Vá para a aba Rules do App Workbench.
-
Em App Data Sources, selecione All Events.
-
Em All Events, clique em Provision User na coluna Event.
-
Para a entrada Provision User, clique em Rule Event Detail.
-
Em Actions, clique no ícone Open record para a regra Realm_User_Create (Insert Employee).
-
Clique em Success. O popup Success Handlers é aberto.
-
Clique em Create. O popup Action é aberto.
-
Defina os seguintes valores:
-
Type: Rule
-
Rule: Selecione Realm_UserGroup (Cram Department)
-
-
Clique em Save.
-
Em Bindings, clique em + Binding.
-
Defina o seguinte binding:
Source Column Rule Column EmployeeIDEmployeeID -
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.
-
Vá para a aba Regras do App Workbench.
-
Clique em + Regra.
-
Defina os seguintes valores:
-
Nome:
Employee (Atualizar ProvisionedOn/By) -
Propósito: CRUD
-
Ação: Atualizar
-
Camada Alvo: Camada de Dados
-
Alvo:
Employee
-
-
Clique em Criar.
-
Selecione a aba Colunas.
-
Clique em + Coluna.
-
Na caixa Coluna ou Expressão, insira
now(), depois defina os seguintes valores restantes:-
Alvo:
ProvisionedOn -
Tipo de Alvo: Alvo
-
-
Clique em Salvar, depois feche o pop-up Adicionar Coluna.
-
Clique em + Coluna.
-
Na caixa Coluna ou Expressão, insira
who(), depois defina os seguintes valores restantes:-
Alvo:
ProvisionedBy -
Tipo de Alvo: Alvo
-
-
Clique em Salvar, depois feche o pop-up Adicionar Coluna.
-
(Opcional, mas recomendado) Selecione a aba Resultados, depois clique em Validar.
-
Vá para a aba Regras do App Workbench.
-
Sob Fontes de Dados do App, selecione Todos os Eventos.
-
Sob Todos os Eventos, clique em Provisionar Usuário na coluna Evento.
-
Para a entrada Provisionar Usuário, clique em Detalhe do Evento da Regra.
-
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.
-
Clique em Criar. O pop-up Ação se abre.
-
Defina os seguintes valores:
-
Tipo: Regra
-
Regra: Selecione Employee (Atualizar ProvisionedOn/By)
-
-
Clique em Salvar.
-
Sob Vínculos, clique em + Vínculo.
-
Defina o seguinte vínculo:
Coluna de Origem Coluna da Regra EmployeeIDEmployeeID -
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
-
Navegue até Páginas e abra sua página
Funcionáriopara edição. -
Adicione um novo controle Botão com o rótulo
Provisionar Usuário. -
Nas propriedades do botão, navegue até a aba Eventos e selecione o evento
Provisionar Usuário. -
Para garantir que a interface do usuário seja atualizada corretamente, na aba Comportamento, defina o Escopo de Atualização como Linha.
-
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:
-
Adicionando um evento de fluxo de trabalho para enviar um email aos novos usuários com suas credenciais de login (veja Email em Notificações).
-
Usando outros objetos de dados públicos para exigir a alteração de senha no primeiro login (veja Objeto de dados públicos User_LocalAuthentication).
-
Expandindo o conjunto de regras para lidar com a desprovisionamento de usuários (veja Objeto de dados públicos Realm_UserGroup).