Bagikan melalui


Provisi masuk berbasis API dengan Azure Logic Apps

Tutorial ini menjelaskan cara menggunakan alur kerja Azure Logic Apps untuk menerapkan provisi masuk berbasis API Microsoft Entra ID. Dengan menggunakan langkah-langkah dalam tutorial ini, Anda dapat mengonversi file CSV yang berisi data SDM menjadi payload permintaan massal dan mengirimkannya ke titik akhir API provisi /bulkUpload Microsoft Entra. Artikel ini juga memberikan panduan tentang bagaimana pola integrasi yang sama dapat digunakan dengan sistem catatan apa pun.

Skenario integrasi

Persyaratan bisnis

Sistem rekaman Anda secara berkala menghasilkan ekspor file CSV yang berisi data pekerja. Anda ingin menerapkan integrasi yang membaca data dari file CSV dan secara otomatis memprovisikan akun pengguna di direktori target Anda (Active Directory lokal untuk pengguna hibrid dan ID Microsoft Entra untuk pengguna khusus cloud).

Persyaratan implementasi

Dari perspektif implementasi:

  • Anda ingin menggunakan alur kerja Azure Logic Apps untuk membaca data dari ekspor file CSV yang tersedia di Azure File Share dan mengirimkannya ke titik akhir API provisi masuk.
  • Dalam alur kerja Azure Logic Apps, Anda tidak ingin menerapkan logika kompleks membandingkan data identitas antara sistem rekaman dan direktori target Anda.
  • Anda ingin menggunakan layanan provisi Microsoft Entra untuk menerapkan aturan provisi terkelola TI Anda untuk membuat/memperbarui/mengaktifkan/menonaktifkan akun secara otomatis di direktori target (Active Directory lokal atau ID Microsoft Entra).

Grafik integrasi berbasis Azure Logic Apps.

Variasi skenario integrasi

Meskipun tutorial ini menggunakan file CSV sebagai sistem rekaman, Anda dapat menyesuaikan sampel alur kerja Azure Logic Apps untuk membaca data dari sistem rekaman apa pun. Azure Logic Apps menyediakan berbagai konektor bawaan dan konektor terkelola dengan pemicu dan tindakan bawaan yang dapat Anda gunakan dalam alur kerja integrasi Anda.

Berikut adalah daftar variasi skenario integrasi perusahaan, di mana provisi masuk berbasis API dapat diimplementasikan dengan alur kerja Logic Apps.

# Sistem rekaman Panduan integrasi tentang menggunakan Logic Apps untuk membaca data sumber
1 File yang disimpan di server SFTP Gunakan konektor SFTP bawaan atau konektor SFTP SSH terkelola untuk membaca data dari file yang disimpan di server SFTP.
2 Tabel database Jika Anda menggunakan server Azure SQL atau SQL Server lokal, gunakan konektor SQL Server untuk membaca data tabel Anda.
Jika Anda menggunakan database Oracle, gunakan konektor database Oracle untuk membaca data tabel Anda.
3 SAP S/4 HANA lokal dan yang dihosting cloud atau
Sistem SAP lokal klasik, seperti R/3 dan ECC
Gunakan konektor SAP untuk mengambil data identitas dari sistem SAP Anda. Misalnya tentang cara mengonfigurasi konektor ini, lihat skenario integrasi SAP umum menggunakan Azure Logic Apps dan konektor SAP.
4 IBM MQ Gunakan konektor IBM MQ untuk menerima pesan provisi dari antrean.
5 Dynamics 365 Human Resources Gunakan konektor Dataverse untuk membaca data dari tabel Dataverse yang digunakan oleh Microsoft Dynamics 365 Human Resources.
6 Sistem apa pun yang mengekspos REST API Jika Anda tidak menemukan konektor untuk sistem rekaman Anda di pustaka konektor Logic Apps, Anda dapat membuat konektor kustom Anda sendiri untuk membaca data dari sistem rekaman Anda.

Setelah membaca data sumber, terapkan aturan pra-pemrosesan Anda dan konversi output dari sistem rekaman Anda menjadi permintaan massal yang dapat dikirim ke titik akhir API bulkUpload provisi Microsoft Entra.

Penting

Jika Anda ingin berbagi provisi masuk berbasis API + alur kerja integrasi Logic Apps dengan komunitas, buat templat aplikasi Logika, dokumentasikan langkah-langkah tentang cara menggunakannya dan mengirimkan permintaan pull untuk dimasukkan di repositori entra-id-inbound-provisioningGitHub .

Cara menggunakan tutorial ini

Templat penyebaran Logic Apps yang diterbitkan di repositori GitHub provisi masuk Microsoft Entra mengotomatiskan beberapa tugas. Ini juga memiliki logika untuk menangani file CSV besar dan memotong permintaan massal untuk mengirim 50 rekaman di setiap permintaan. Berikut cara mengujinya dan menyesuaikannya sesuai persyaratan integrasi Anda.

Catatan

Sampel alur kerja Azure Logic Apps disediakan "apa adanya" untuk referensi implementasi. Jika Anda memiliki pertanyaan yang terkait dengannya atau jika Anda ingin meningkatkannya, silakan gunakan repositori proyek GitHub.

# Tugas automasi Panduan implementasi Kustomisasi tingkat lanjut
1 Membaca data pekerja dari file CSV. Alur kerja Logic Apps menggunakan Azure Function untuk membaca file CSV yang disimpan dalam Azure File Share. Azure Function mengonversi data CSV menjadi format JSON. Jika format file CSV Anda berbeda, perbarui langkah alur kerja "Uraikan JSON" dan "Buat SCIMUser". Jika sistem rekaman Anda berbeda, periksa panduan yang disediakan di bagian Variasi skenario integrasi tentang cara menyesuaikan alur kerja Logic Apps dengan menggunakan konektor yang sesuai.
2 Pra-proses dan konversi data ke format SCIM. Secara default, alur kerja Logic Apps mengonversi setiap rekaman dalam file CSV menjadi representasi Pengguna Inti SCIM + Pengguna Perusahaan. Jika Anda berencana menggunakan ekstensi skema SCIM kustom, perbarui langkah "Buat SCIMUser" untuk menyertakan ekstensi skema SCIM kustom Anda. Jika Anda ingin menjalankan kode C# untuk pemformatan tingkat lanjut dan validasi data, gunakan Azure Functions kustom.
3 Menggunakan metode autentikasi yang tepat Anda dapat menggunakan perwakilan layanan atau menggunakan identitas terkelola untuk mengakses API provisi masuk. Perbarui langkah "Kirim SCIMBulkPayload ke titik akhir API" dengan metode autentikasi yang tepat. -
4 Memprovisikan akun di Active Directory lokal atau ID Microsoft Entra. Mengonfigurasi aplikasi provisi masuk berbasis API. Ini menghasilkan titik akhir API /bulkUpload yang unik. Perbarui langkah "Kirim SCIMBulkPayload ke titik akhir API" untuk menggunakan titik akhir API bulkUpload yang tepat. Jika Anda berencana menggunakan permintaan massal dengan skema SCIM kustom, maka perluas skema aplikasi provisi untuk menyertakan atribut skema SCIM kustom Anda.
5 Pindai log provisi dan coba lagi provisi untuk rekaman yang gagal. Otomatisasi ini belum diimplementasikan dalam sampel alur kerja Logic Apps. Untuk mengimplementasikannya, lihat API Graph log provisi. -
6 Sebarkan otomatisasi berbasis Logic Apps Anda ke produksi. Setelah Anda memverifikasi alur provisi berbasis API dan menyesuaikan alur kerja Logic Apps untuk memenuhi kebutuhan Anda, sebarkan otomatisasi di lingkungan Anda. -

Langkah 1: Buat akun Azure Storage untuk menghosting file CSV

Langkah-langkah yang didokumenkan di bagian ini bersifat opsional. Jika Anda sudah memiliki akun penyimpanan yang sudah ada atau ingin membaca file CSV dari sumber lain seperti situs SharePoint atau penyimpanan Blob, perbarui Aplikasi Logika untuk menggunakan konektor pilihan Anda.

  1. Masuk ke portal Azure setidaknya sebagai Administrator Aplikasi.
  2. Cari "Akun penyimpanan" dan buat akun penyimpanan baru. Cuplikan layar pembuatan akun penyimpanan baru.
  3. Tetapkan grup sumber daya dan beri nama. Cuplikan layar penetapan grup sumber daya.
  4. Setelah akun penyimpanan dibuat, buka sumber daya.
  5. Klik opsi menu "Berbagi file" dan buat berbagi file baru. Cuplikan layar pembuatan berbagi file baru.
  6. Verifikasi bahwa pembuatan berbagi file berhasil. Cuplikan layar berbagi file yang dibuat.
  7. Unggah sampel file CSV ke berbagi file menggunakan opsi unggah.
  8. Berikut adalah cuplikan layar kolom dalam file CSV. Cuplikan layar kolom di Excel.

Langkah 2: Mengonfigurasi konverter CSV2JSON Azure Function

  1. Di browser yang terkait dengan portal Azure Anda, buka URL repositori GitHub - https://github.com/joelbyford/CSVtoJSONcore.

  2. Klik tautan "Sebarkan ke Azure" untuk menyebarkan Fungsi Azure ini ke penyewa Azure Anda. Cuplikan layar penyebaran Azure Function.

  3. Tentukan grup sumber daya untuk menyebarkan fungsi Azure ini. Cuplikan layar mengonfigurasi grup sumber daya Azure Function.

    Jika Anda mendapatkan kesalahan "Wilayah ini memiliki kuota 0 instans", coba pilih wilayah yang berbeda.

  4. Pastikan bahwa penyebaran Azure Function sebagai App Service berhasil.

  5. Buka grup sumber daya dan buka konfigurasi WebApp. Pastikan dalam status "Berjalan". Salin nama domain default yang terkait dengan Aplikasi Web. Cuplikan layar nama domain Azure Function Web App.

  6. Jalankan skrip PowerShell berikut untuk menguji apakah titik akhir CSVtoJSON berfungsi seperti yang diharapkan. Atur nilai yang benar untuk variabel $csvFilePath dan $uri dalam skrip.

    # 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. Jika penyebaran Azure Function berhasil, maka baris terakhir skrip menghasilkan versi JSON dari file CSV.

    Cuplikan layar respons Azure Function. .

  8. Untuk mengizinkan Logic Apps memanggil Fungsi Azure ini, dalam pengaturan CORS untuk WebApp masukkan tanda bintang (*) dan "Simpan" konfigurasi. Cuplikan layar pengaturan CORS Fungsi Azure.

Langkah 3: Mengonfigurasi provisi pengguna masuk berbasis API

  • Konfigurasikan provisi pengguna masuk berbasis API.

Langkah 4: Mengonfigurasi alur kerja Azure Logic Apps Anda

  1. Klik tombol di bawah ini untuk menyebarkan templat Azure Resource Manager untuk alur kerja CSV2SCIMBulkUpload Logic Apps.

    Sebarkan ke Azure

  2. Di bawah detail instans, perbarui item yang disorot, nilai copy-pasting dari langkah-langkah sebelumnya. Cuplikan layar detail instans Azure Logic Apps.

  3. Azurefile_access Key Untuk parameter , buka akun penyimpanan file Azure Anda dan salin kunci akses yang ada di bawah "Keamanan dan Jaringan".
    Cuplikan layar kunci akses File Azure.

  4. Klik opsi "Tinjau dan Buat" untuk memulai penyebaran.

  5. Setelah penyebaran selesai, Anda akan melihat pesan berikut. Cuplikan layar penyebaran Azure Logic Apps selesai.

Langkah 5: Mengonfigurasi identitas terkelola yang ditetapkan sistem

  1. Kunjungi bilah Pengaturan -> Identitas alur kerja Logic Apps Anda.
  2. Aktifkan Identitas terkelola yang ditetapkan sistem. Cuplikan layar mengaktifkan identitas terkelola.
  3. Anda akan mendapatkan permintaan untuk mengonfirmasi penggunaan identitas terkelola. Klik Ya.
  4. Berikan izin identitas terkelola untuk melakukan unggahan massal.

Langkah 6: Tinjau dan sesuaikan langkah-langkah alur kerja

  1. Buka Aplikasi Logika di tampilan perancang. Cuplikan layar tampilan perancang Azure Logic Apps.

  2. Tinjau konfigurasi setiap langkah dalam alur kerja untuk memastikannya benar.

  3. Buka langkah "Dapatkan konten file menggunakan jalur" dan koreksi untuk menelusuri Azure File Storage di penyewa Anda. Cuplikan layar dapatkan konten file.

  4. Perbarui koneksi jika diperlukan.

  5. Pastikan langkah "Konversi CSV ke JSON" Anda menunjuk ke instans Azure Function Web App yang tepat. Cuplikan layar pemanggilan panggilan Azure Function untuk dikonversi dari CSV ke JSON.

  6. Jika konten/header file CSV Anda berbeda, perbarui langkah "Uraikan JSON" dengan output JSON yang dapat Anda ambil dari panggilan API Anda ke Azure Function. Gunakan output PowerShell dari Langkah 2. Cuplikan layar langkah Uraikan JSON.

  7. Dalam langkah "Buat SCIMUser", pastikan bahwa bidang CSV memetakan dengan benar ke atribut SCIM yang akan digunakan untuk diproses.

    Cuplikan layar langkah Buat pengguna SCIM.

  8. Pada langkah "Kirim SCIMBulkPayload ke titik akhir API" pastikan Anda menggunakan titik akhir API dan mekanisme autentikasi yang tepat.

    Cuplikan layar memanggil API pengunggahan massal dengan identitas terkelola.

Langkah 7: Jalankan pemicu dan uji alur kerja Logic Apps Anda

  1. Di versi "Tersedia Secara Umum" dari perancang Logic Apps, klik Jalankan Pemicu untuk menjalankan alur kerja secara manual. Cuplikan layar menjalankan Aplikasi Logika.
  2. Setelah eksekusi selesai, tinjau tindakan apa yang dilakukan Logic Apps di setiap iterasi.
  3. Dalam perulangan akhir, Anda akan melihat Logic Apps mengunggah data ke titik akhir API provisi masuk. Cari 202 Accept kode status. Anda dapat menyalin-tempel dan memverifikasi permintaan unggahan massal. Cuplikan layar hasil eksekusi Logic Apps.

Langkah berikutnya