Provisionamento de entrada controlado por API com Aplicativos Lógicos do Azure

Este tutorial descreve como usar o fluxo de trabalho dos Aplicativos Lógicos do Azure para implementar o provisionamento de entrada controlado por API do Microsoft Entra ID. Usando as etapas neste tutorial, você pode converter um arquivo CSV que contém dados de RH em uma carga de solicitação em massa e enviá-lo para o ponto de extremidade da API de provisionamento /bulkUpload do Microsoft Entra. O artigo também fornece diretrizes sobre como o mesmo padrão de integração pode ser usado com qualquer sistema de registro.

Cenário de integração

Requisito de negócios

Seu sistema de registro gera periodicamente exportações de arquivo CSV que contêm dados de trabalho. Você deseja implementar uma integração que leia dados do arquivo CSV e provisione automaticamente contas de usuário em seu diretório de destino (Active Directory local para usuários híbridos e Microsoft Entra ID para usuários somente na nuvem).

Requisito de implementação

De uma perspectiva de implementação:

  • Você deseja usar um fluxo de trabalho dos Aplicativos Lógicos do Azure para ler dados das exportações de arquivos CSV disponíveis em um Compartilhamento de Arquivos do Azure e enviá-los para o ponto de extremidade da API de provisionamento de entrada.
  • No seu fluxo de trabalho dos Aplicativos Lógicos do Azure, você não deseja implementar a lógica complexa de comparação de dados de identidade entre o sistema de registro e o diretório de destino.
  • Você deseja usar o serviço de provisionamento do Microsoft Entra para aplicar suas regras de provisionamento gerenciado de TI para criar/atualizar/habilitar/desabilitar automaticamente contas no diretório de destino (Active Directory local ou Microsoft Entra ID).

Gráfico da integração baseada nos Aplicativos Lógicos do Azure.

Variações do cenário de integração

Embora este tutorial use um arquivo CSV como um sistema de registro, é possível personalizar o fluxo de trabalho de exemplo dos Aplicativos Lógicos do Azure para ler dados de qualquer sistema de registro. Os Aplicativos Lógicos do Azure fornece uma ampla gama de conectores integrados e conectores gerenciados com gatilhos e ações pré-compilados que você pode usar em seu fluxo de trabalho de integração.

Aqui está uma lista de variações de cenários de integração empresarial, em que o provisionamento de entrada controlado por API pode ser implementado com um fluxo de trabalho dos Aplicativos Lógicos do Azure.

# Sistema de registro Diretrizes de integração sobre o uso de Aplicativos Lógicos do Azure para ler dados de origem
1 Arquivos armazenados em um servidor SFTP Use o conector SFT integrado ou o conector SFTP SSH gerenciado para ler dados de arquivos armazenados no servidor SFTP.
2 Tabela do banco de dados Se estiver usando um servidor SQL do Azure ou o SQL Server local, use o conector SQL Server para ler os dados da tabela.
Se você estiver usando um banco de dados Oracle, use o conector de Banco de dados Oracle para ler os dados da tabela.
3 SAP S/4 HANA no local e hospedado na nuvem ou
Sistemas SAP locais clássicos, como R/3 e ECC
Use o Conector SAP para recuperar dados de identidade do seu sistema SAP. Para obter exemplos sobre como configurar esse conector, consulte cenários comuns de integração SAP usando os Aplicativos Lógicos do Azure e o conector SAP.
4 IBM MQ Use o Conector IBM MQ para receber mensagens de provisionamento da fila.
5 Dynamics 365 Human Resources Use o Conector Dataverse para ler dados das Tabelas do Dataverse usadas pelo Microsoft Dynamics 365 Human Resources.
6 Qualquer sistema que expõe APIs REST Se você não encontrar um conector para o seu sistema de registro na biblioteca de conectores de Aplicativos Lógicos, crie seu próprio conector personalizado para ler dados do seu sistema de registro.

Depois de ler os dados de origem, aplique suas regras de pré-processamento e converta a saída do sistema de registro em uma solicitação em massa que pode ser enviada ao ponto de extremidade da API bulkUpload de provisionamento do Microsoft Entra.

Importante

Se você quiser compartilhar seu fluxo de trabalho de integração de provisionamento de entrada controlado por API + Aplicativos Lógicos com a comunidade, crie um modelo de aplicativo lógico, documente as etapas sobre como usá-lo e envie um pull request para inclusão no repositório GitHub entra-id-inbound-provisioning.

Como usar este tutorial

O modelo de implantação dos Aplicativos Lógicos publicado no Repositório GitHub de provisionamento de entrada da ID do Microsoft Entra automatiza várias tarefas. Ele também tem lógica para lidar com grandes arquivos CSV e agrupar a solicitação em massa para enviar 50 registros em cada solicitação. Veja como você pode testá-la e personalizá-la de acordo com seus requisitos de integração.

Observação

O fluxo de trabalho de exemplo dos Aplicativos Lógicos do Azure é fornecido "no estado em que se encontra" para referência de implementação. Se você tiver dúvidas relacionadas a ele ou se quiser aprimorá-lo, use o repositório de projetos do GitHub.

# Tarefa de automação Diretrizes de implementação Personalização avançada
1 Ler dados do funcionário do arquivo CSV. O fluxo de trabalho de Aplicativos Lógicos usa uma Função do Azure para ler o arquivo CSV armazenado em um Compartilhamento de Arquivos do Azure. A Função do Azure converte dados CSV no formato JSON. Se o formato do seu arquivo CSV for diferente, atualize a etapa do fluxo de trabalho "Analisar JSON" e "Construir SCIMUser". Se o seu sistema de registro for diferente, verifique as diretrizes fornecidas na seção Variações do cenário de integração sobre como personalizar o fluxo de trabalho dos Aplicativos Lógicos usando um conector apropriado.
2 Pré-processar e converter dados para o formato SCIM. Por padrão, o fluxo de trabalho dos Aplicativos Lógicos convertem cada registro do arquivo CSV em uma representação de Usuário Principal do SCIM + Usuário Corporativo. Se você planeja usar extensões de esquema SCIM personalizadas, atualize a etapa "Construir SCIMUser" para incluir suas extensões de esquema SCIM personalizadas. Se você quiser executar o código C# para formatação avançada e validação de dados, use o Azure Functions personalizado.
3 Usar o método de autenticação correto Você pode usar uma entidade de serviço ou usar uma identidade gerenciada para acessar a API de provisionamento de entrada. Atualizar a etapa "Enviar SCIMBulkPayload para o ponto de extremidade da API" com o método de autenticação correto. -
4 Provisione contas no Active Directory local ou no Microsoft Entra ID. Configure o aplicativo de provisionamento de entrada controlado por API. Isso gerará um ponto de extremidade exclusivo da API /bulkUpload. Atualizar a etapa "Enviar SCIMBulkPayload para o ponto de extremidade da API" para usar o ponto de extremidade correto da API bulkUpload. Se você planeja usar a solicitação em massa com esquema SCIM personalizado, estenda o esquema do aplicativo de provisionamento para incluir atributos de esquema SCIM personalizados.
5 Examine os logs de provisionamento e tente novamente o provisionamento de registros com falha. Essa automação ainda não está implementada na amostra de fluxo de trabalho de Aplicativos Lógicos. Para implementá-lo, confira os logs de provisionamento da API do Graph. -
6 Implante sua automação baseada em Aplicativos Lógicos na produção. Depois de verificar o fluxo de provisionamento controlado por API e personalizar o fluxo de trabalho dos Aplicativos Lógicos para atender aos seus requisitos, implante a automação no seu ambiente. -

Etapa 1: crie uma conta de Armazenamento do Microsoft Azure para hospedar o arquivo CSV

As etapas documentadas nesta seção são opcionais. Se você já tiver uma conta de armazenamento existente ou quiser ler o arquivo CSV de outra fonte, como o site do SharePoint ou o Armazenamento de Blobs, atualize o Aplicativo Lógico para usar o conector de sua escolha.

  1. Entre no portal do Azure com a função mínima de Administrador de aplicativos.
  2. Pesquise "Contas de armazenamento" e crie uma nova conta de armazenamento. Captura de tela da criação da nova conta de armazenamento.
  3. Atribua um grupo de recursos e dê um nome a ele. Captura de tela da atribuição do grupo de recursos.
  4. Depois que a conta de armazenamento for criada, vá para o recurso.
  5. Clique na opção de menu "Compartilhamento de arquivo" e crie um novo compartilhamento de arquivo. Captura de tela da criação de um novo compartilhamento de arquivo.
  6. Verifique se a criação do compartilhamento de arquivos foi bem-sucedida. Captura de tela do compartilhamento de arquivo criado.
  7. Carregue um arquivo CSV de exemplo no compartilhamento de arquivos usando a opção de upload.
  8. Aqui está uma captura de tela das colunas no arquivo CSV. Captura de tela de colunas no Excel.

Etapa 2: configure o conversor CSV2JSON do Azure Function

  1. No navegador associado ao seu portal do Azure, abra a URL do repositório do GitHub – https://github.com/joelbyford/CSVtoJSONcore.

  2. Clique no link "Implantar no Azure" para implantar essa função do Azure em seu locatário do Azure. Captura de tela da implantação do Azure Function.

  3. Especifique o grupo de recursos no qual implantar essa função do Azure. Captura de tela da configuração do grupo de recursos do Azure Function.

    Se você receber o erro "Esta região tem cota de 0 instâncias", tente selecionar uma região diferente.

  4. Verifique se a implantação da Função do Azure como um Serviço de Aplicativo foi bem-sucedida.

  5. Acesse o grupo de recursos e abra a configuração do WebApp. Verifique se ele está no estado "Em execução". Copie o nome de domínio padrão associado ao Aplicativo Web. Captura de tela do nome de domínio do aplicativo Web do Azure Function.

  6. Execute o script do PowerShell a seguir para testar se o ponto de extremidade CSVtoJSON funciona conforme o esperado. Defina os valores corretos para as variáveis $csvFilePath e $uri no script.

    # Step 1: Read the CSV file 
    $csvFilePath = "C:\Path-to-CSV-file\hr-user-data.csv" 
    $csvContent = Get-Content -Path $csvFilePath 
    
    # Step 2: Set up the request 
    $uri = "https://az-function-webapp-your-domain/csvtojson" 
    $headers = @{ 
         "Content-Type" = "text/csv" 
    } 
    $body = $csvContent -join "`n"  # Join the CSV lines into a single string 
    
    # Step 3: Send the POST request 
    $response = Invoke-WebRequest -Uri $uri -Method POST -Headers $headers -Body $body 
    
    # Output and format the JSON response 
    $response.Content | ConvertFrom-JSON | ConvertTo-JSON 
    
  7. Se a implantação do Azure Function for bem-sucedida, a última linha do script gerará a versão JSON do arquivo CSV.

    Captura de tela da resposta do Azure Function. .

  8. Para permitir que os Aplicativos Lógicos invoquem essa Função do Azure, na configuração CORS do WebApp, insira asterisco (*) e "Salve" a configuração. Captura de tela da configuração CORS do Azure Function.

Etapa 3: configure o provisionamento de entrada de usuário controlado por API

Etapa 4: configure o fluxo de trabalho dos Aplicativos Lógicos do Azure

  1. Clique no botão abaixo para implantar o modelo do Azure Resource Manager para o fluxo de trabalho dos Aplicativos Lógicos CSV2SCIMBulkUpload.

    Implantar no Azure

  2. Em detalhes da instância, atualize os itens realçados, copiando valores das etapas anteriores. Captura de tela dos detalhes da instância dos Aplicativos Lógicos do Azure.

  3. Para o parâmetro Azurefile_access Key, abra sua conta de armazenamento de arquivos do Azure e copie a chave de acesso presente em "Segurança e Rede".
    Captura de tela das chaves de acesso do arquivo do Azure.

  4. Clique na opção "Examinar e criar" para iniciar a implantação.

  5. Depois que a implantação for concluída, você verá a mensagem a seguir. Captura de tela da implantação dos Aplicativos Lógicos do Azure concluída.

Etapa 5: configure a identidade gerenciada atribuída pelo sistema

  1. Visite a folha Configurações –> Identidade do fluxo de trabalho dos Aplicativos Lógicos.
  2. Habilitar identidade gerenciada atribuída pelo sistema. Captura de tela de como habilitar a identidade gerenciada.
  3. Você receberá um prompt para confirmar o uso da identidade gerenciada. Clique em Sim.
  4. Conceda as permissões de identidade gerenciada para executar o upload em massa.

Etapa 6: examine e ajuste as etapas do fluxo de trabalho

  1. Abra o Aplicativo Lógico no modo de exibição do designer. Captura de tela da exibição do designer dos Aplicativos Lógicos do Azure.

  2. Examine a configuração de cada etapa no fluxo de trabalho para verificar se ela está correta.

  3. Abra a etapa "Obter conteúdo do arquivo usando o caminho" e corrija-o para navegar até o Armazenamento de Arquivos do Azure em seu locatário. Captura de tela de obtenção do conteúdo do arquivo.

  4. Atualize a conexão, se necessário.

  5. Verifique se a etapa "Converter CSV em JSON" está apontando para a instância de aplicativo Web de função do Azure correta. Captura de tela da chamada da função do Azure para conversão de CSV para JSON.

  6. Se o conteúdo/cabeçalhos do arquivo CSV forem diferentes, atualize a etapa "Analisar JSON" com a saída JSON que você pode recuperar da chamada à API para a função do Azure. Use a saída do PowerShell da Etapa 2. Captura de tela da etapa Analisar JSON.

  7. Na etapa "Construir SCIMUser", certifique-se de que os campos CSV estejam mapeados corretamente para os atributos SCIM que serão usados para processamento.

    Captura de tela da etapa Constructo SCIM do usuário.

  8. Na etapa "Enviar SCIMBulkPayload para o ponto de extremidade de API", verifique se você está usando o ponto de extremidade de API e o mecanismo de autenticação corretos.

    Captura de tela da chamada à API de upload em massa com identidade gerenciada.

Etapa 7: execute o gatilho e teste o fluxo de trabalho dos Aplicativos Lógicos

  1. Na versão "Disponibilidade Geral" do designer dos Aplicativos Lógicos, clique em Executar Gatilho para executar manualmente o fluxo de trabalho. Captura de tela da execução do aplicativo lógico.
  2. Depois que a execução for concluída, examine qual ação os Aplicativos Lógicos executaram em cada iteração.
  3. Na iteração final, você verá os Aplicativos Lógicos carregarem dados no ponto de extremidade da API de provisionamento de entrada. Procure pelo código de status 202 Accept. Você pode copiar e colar e verificar a solicitação de upload em massa. Captura de tela do resultado da execução dos Aplicativos Lógicos.

Próximas etapas