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).
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 pelos Recursos Humanos do Microsoft Dynamics 365. |
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-provisioning
GitHub.
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.
- Entre no portal do Azure como pelo menos um Administrador de Aplicativo.
- Procure por "Contas de armazenamento" e crie uma nova conta de armazenamento.
- Atribua um grupo de recursos e atribua-lhe um nome.
- Depois que a conta de armazenamento for criada, vá para o recurso.
- Clique na opção de menu "Compartilhamento de arquivos" e crie um novo compartilhamento de arquivos.
- Verifique se a criação do compartilhamento de arquivos foi bem-sucedida.
- Carregue um arquivo CSV de exemplo para o compartilhamento de arquivos usando a opção de upload.
- Aqui está uma captura de tela das colunas no arquivo CSV.
Etapa 2: Configurar o conversor de CSV2JSON do Azure Function
No navegador associado ao seu portal do Azure, abra a URL do repositório GitHub - https://github.com/joelbyford/CSVtoJSONcore.
Clique no link "Implantar no Azure" para implantar essa Função do Azure em seu locatário do Azure.
Especifique o grupo de recursos sob o qual implantar essa função do Azure.
Se você receber o erro "Esta região tem cota de 0 instâncias", tente selecionar uma região diferente.
Verifique se a implantação da Função do Azure como um Serviço de Aplicativo foi bem-sucedida.
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.
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
Se a implantação do Azure Function for bem-sucedida, a última linha do script produzirá a versão JSON do arquivo CSV.
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.
Etapa 3: Configurar o provisionamento de usuário de entrada controlado por API
- Configure o provisionamento de usuário de entrada orientado por API.
Etapa 4: Configurar o fluxo de trabalho dos Aplicativos Lógicos do Azure
Clique no botão abaixo para implantar o modelo do Azure Resource Manager para o fluxo de trabalho CSV2SCIMBulkUpload Logic Apps.
Em detalhes da instância, atualize os itens realçados, copiando e colando valores das etapas anteriores.
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".
Clique na opção "Revisar e criar" para iniciar a implantação.
Quando a implantação estiver concluída, você verá a seguinte mensagem.
Etapa 5: Configurar a identidade gerenciada atribuída ao sistema
- Visite a folha Configurações -> Identidade do seu fluxo de trabalho de Aplicativos Lógicos.
- Habilite a identidade gerenciada atribuída ao sistema.
- Você receberá uma solicitação para confirmar o uso da identidade gerenciada. Clique em Sim.
- Conceda as permissões de identidade gerenciada para executar o upload em massa.
Etapa 6: Revisar e ajustar as etapas do fluxo de trabalho
Revise a configuração de cada etapa do fluxo de trabalho para verificar se está correta.
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.
Atualize a conexão, se necessário.
Verifique se a etapa "Converter CSV em JSON" está apontando para a instância correta do Aplicativo Web do Azure Function.
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.
Na etapa "Construir SCIMUser", verifique se os campos CSV estão mapeados corretamente para os atributos SCIM que serão usados para processamento.
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.
Etapa 7: Executar, acionar e testar seu fluxo de trabalho de Aplicativos Lógicos
- Na versão "Geralmente disponível" do designer de aplicativos lógicos, clique em Executar gatilho para executar manualmente o fluxo de trabalho.
- Após a conclusão da execução, revise qual ação os Aplicativos Lógicos executaram em cada iteração.
- 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.