Provisionamento de entrada orientado 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 orientado por API do Microsoft Entra ID. Usando as etapas neste tutorial, você pode converter um arquivo CSV contendo dados de RH em uma carga útil 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 orientação sobre como o mesmo padrão de integração pode ser usado com qualquer sistema de registro.

Cenário de integração

Requisitos de negócio

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

Requisitos de execução

Do ponto de vista da implementação:

  • Você deseja usar um fluxo de trabalho de 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 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 seu sistema de registro e diretório de destino.
  • Você deseja usar o serviço de provisionamento Microsoft Entra para aplicar suas regras de provisionamento gerenciado de TI para criar/atualizar/habilitar/desabilitar automaticamente contas no diretório de destino (Ative Directory local ou ID do Microsoft Entra).

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

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

Embora este tutorial use um arquivo CSV como um sistema de registro, você pode personalizar o fluxo de trabalho de exemplo dos Aplicativos Lógicos do Azure para ler dados de qualquer sistema de registro. As Aplicações Lógicas do Azure fornecem uma vasta gama de conectores incorporados e conectores geridos com acionadores e ações pré-criados que pode utilizar no seu fluxo de trabalho de integração.

Aqui está uma lista de variações de cenário de integração empresarial, onde o provisionamento de entrada orientado por API pode ser implementado com um fluxo de trabalho de Aplicativos Lógicos.

# Sistema de registo Orientações de integração sobre como usar aplicativos lógicos para ler dados de origem
1 Arquivos armazenados no servidor SFTP Use o conector SFTP integrado ou o conector SSH SFTP gerenciado para ler dados de arquivos armazenados no servidor SFTP.
2 Tabela de banco de dados Se você estiver usando um servidor SQL do Azure ou um SQL Server local, use o conector do SQL Server para ler os dados da tabela.
Se você estiver usando um banco de dados Oracle, use o conector do banco de dados Oracle para ler os dados da tabela.
3 SAP S/4 HANA 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 de tabelas Dataverse usadas pelo Microsoft Dynamics 365 Recursos Humanos.
6 Qualquer sistema que exponha APIs REST Se você não encontrar um conector para seu sistema de registro na biblioteca de conectores de aplicativos lógicos, poderá criar 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 seu sistema de registro em uma solicitação em massa que pode ser enviada para o ponto de extremidade da API bulkUpload de provisionamento do Microsoft Entra.

Importante

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

Como usar este tutorial

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

Nota

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 do projeto GitHub.

# Tarefa de automação Documentação de orientação para a implementação Personalização avançada
1 Leia os dados do trabalhador a partir 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 em formato JSON. Se o formato do 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 orientações fornecidas na seção Variações de cenário de integração sobre como personalizar o fluxo de trabalho de 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 converte cada registro no arquivo CSV em uma representação SCIM Core User + Enterprise User. 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 código C# para formatação avançada e validação de dados, use o Azure Functions personalizado.
3 Use o método de autenticação correto Você pode usar uma entidade de serviço ou uma identidade gerenciada para acessar a API de provisionamento de entrada. Atualize a etapa "Enviar SCIMBulkPayload para o ponto de extremidade da API" com o método de autenticação correto. -
4 Provisione contas no Ative Directory local ou no Microsoft Entra ID. Configure o aplicativo de provisionamento de entrada controlado por API. Isso gera um ponto de extremidade exclusivo da API /bulkUpload . Atualize a etapa "Enviar SCIMBulkPayload para o ponto de extremidade da API" para usar o ponto de extremidade da API bulkUpload correto. Se você planeja usar a solicitação em massa com o esquema SCIM personalizado, estenda o esquema do aplicativo de provisionamento para incluir seus atributos de esquema SCIM personalizados.
5 Analise os logs de provisionamento e tente provisionar novamente em busca de registros com falha. Essa automação ainda não foi implementada no fluxo de trabalho de aplicativos lógicos de exemplo. Para implementá-lo, consulte os logs de provisionamento Graph API. -
6 Implante a automação baseada em Aplicativos Lógicos na produção. Depois de verificar seu fluxo de provisionamento orientado por API e personalizar o fluxo de trabalho dos Aplicativos Lógicos para atender às suas necessidades, implante a automação em seu ambiente. -

Etapa 1: Criar uma conta de Armazenamento do 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 Blob, atualize o Aplicativo Lógico para usar o conector de sua escolha.

  1. Entre no portal do Azure como pelo menos um Administrador de Aplicativo.
  2. Procure por "Contas de armazenamento" e crie uma nova conta de armazenamento. Captura de ecrã a mostrar a criação de uma nova conta de armazenamento.
  3. Atribua um grupo de recursos e atribua-lhe um nome. Captura de ecrã 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 arquivos" e crie um novo compartilhamento de arquivos. Captura de ecrã a mostrar a criação de uma nova partilha de ficheiros.
  6. Verifique se a criação do compartilhamento de arquivos foi bem-sucedida. Captura de ecrã da partilha de ficheiros criada.
  7. Carregue um arquivo CSV de exemplo para o compartilhamento de arquivos usando a opção de upload.
  8. Aqui está uma captura de tela das colunas no arquivo CSV. Captura de ecrã de colunas no Excel.

Etapa 2: Configurar o conversor de CSV2JSON do Azure Function

  1. No navegador associado ao seu portal do Azure, abra a URL do repositório 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 sob o qual implantar essa função do Azure. Captura de ecrã a mostrar a configuração do grupo de recursos da Função do Azure.

    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. Vá para o grupo de recursos e abra a configuração do WebApp. Certifique-se de que está no estado "Em execução". Copie o nome de domínio padrão associado ao Web App. Captura de ecrã do nome de domínio do Azure Function Web App.

  6. Execute o seguinte script do PowerShell 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 produzirá a versão JSON do arquivo CSV.

    Captura de ecrã da resposta do Azure Function. .

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

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

Etapa 4: Configurar 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 CSV2SCIMBulkUpload Logic Apps.

    Implementar no Azure

  2. Em detalhes da instância, atualize os itens realçados, copiando e colando valores das etapas anteriores. Captura de ecrã dos detalhes da instância das Aplicações Lógicas do Azure.

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

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

  5. Quando a implantação estiver concluída, você verá a seguinte mensagem. Captura de ecrã da conclusão da implementação das Aplicações Lógicas do Azure.

Etapa 5: Configurar a identidade gerenciada atribuída ao sistema

  1. Visite a folha Configurações -> Identidade do seu fluxo de trabalho de Aplicativos Lógicos.
  2. Habilite a identidade gerenciada atribuída ao sistema. Captura de ecrã a mostrar a ativação da identidade gerida.
  3. Você receberá uma solicitação 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: Revisar e ajustar as etapas do fluxo de trabalho

  1. Abra o Aplicativo Lógico na visualização do designer. Captura de ecrã da vista de designer das Aplicações Lógicas do Azure.

  2. Revise a configuração de cada etapa do fluxo de trabalho para verificar se está correta.

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

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

  5. Verifique se a etapa "Converter CSV em JSON" está apontando para a instância correta do Aplicativo Web do Azure Function. Captura de ecrã da invocação de chamada do Azure Function para converter de CSV para JSON.

  6. Se o conteúdo/cabeçalhos do arquivo CSV for diferente, atualize a etapa "Analisar JSON" com a saída JSON que você pode recuperar da sua chamada de 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", verifique se os campos CSV estão mapeados corretamente para os atributos SCIM que serão usados para processamento.

    Screenshot do passo de utilizador Construct SCIM.

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

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

Etapa 7: Executar, acionar e testar seu fluxo de trabalho de Aplicativos Lógicos

  1. Na versão "Geralmente disponível" do designer de aplicativos lógicos, clique em Executar gatilho para executar manualmente o fluxo de trabalho. Captura de ecrã a mostrar a execução da aplicação lógica.
  2. Após a conclusão da execução, revise qual ação os Aplicativos Lógicos executaram em cada iteração.
  3. Na iteração final, você verá os dados de upload dos Aplicativos Lógicos para o ponto de extremidade da API de provisionamento de entrada. Procure o 202 Accept código de status. Você pode copiar e colar e verificar a solicitação de upload em massa. Captura de ecrã do resultado da execução das Aplicações Lógicas.

Próximos passos