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).
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-provisioning
GitHub .
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.
- Masuk ke portal Azure setidaknya sebagai Administrator Aplikasi.
- Cari "Akun penyimpanan" dan buat akun penyimpanan baru.
- Tetapkan grup sumber daya dan beri nama.
- Setelah akun penyimpanan dibuat, buka sumber daya.
- Klik opsi menu "Berbagi file" dan buat berbagi file baru.
- Verifikasi bahwa pembuatan berbagi file berhasil.
- Unggah sampel file CSV ke berbagi file menggunakan opsi unggah.
- Berikut adalah cuplikan layar kolom dalam file CSV.
Langkah 2: Mengonfigurasi konverter CSV2JSON Azure Function
Di browser yang terkait dengan portal Azure Anda, buka URL repositori GitHub - https://github.com/joelbyford/CSVtoJSONcore.
Klik tautan "Sebarkan ke Azure" untuk menyebarkan Fungsi Azure ini ke penyewa Azure Anda.
Tentukan grup sumber daya untuk menyebarkan fungsi Azure ini.
Jika Anda mendapatkan kesalahan "Wilayah ini memiliki kuota 0 instans", coba pilih wilayah yang berbeda.
Pastikan bahwa penyebaran Azure Function sebagai App Service berhasil.
Buka grup sumber daya dan buka konfigurasi WebApp. Pastikan dalam status "Berjalan". Salin nama domain default yang terkait dengan Aplikasi Web.
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
Jika penyebaran Azure Function berhasil, maka baris terakhir skrip menghasilkan versi JSON dari file CSV.
Untuk mengizinkan Logic Apps memanggil Fungsi Azure ini, dalam pengaturan CORS untuk WebApp masukkan tanda bintang (*) dan "Simpan" konfigurasi.
Langkah 3: Mengonfigurasi provisi pengguna masuk berbasis API
- Konfigurasikan provisi pengguna masuk berbasis API.
Langkah 4: Mengonfigurasi alur kerja Azure Logic Apps Anda
Klik tombol di bawah ini untuk menyebarkan templat Azure Resource Manager untuk alur kerja CSV2SCIMBulkUpload Logic Apps.
Di bawah detail instans, perbarui item yang disorot, nilai copy-pasting dari langkah-langkah sebelumnya.
Azurefile_access Key
Untuk parameter , buka akun penyimpanan file Azure Anda dan salin kunci akses yang ada di bawah "Keamanan dan Jaringan".
Klik opsi "Tinjau dan Buat" untuk memulai penyebaran.
Setelah penyebaran selesai, Anda akan melihat pesan berikut.
Langkah 5: Mengonfigurasi identitas terkelola yang ditetapkan sistem
- Kunjungi bilah Pengaturan -> Identitas alur kerja Logic Apps Anda.
- Aktifkan Identitas terkelola yang ditetapkan sistem.
- Anda akan mendapatkan permintaan untuk mengonfirmasi penggunaan identitas terkelola. Klik Ya.
- Berikan izin identitas terkelola untuk melakukan unggahan massal.
Langkah 6: Tinjau dan sesuaikan langkah-langkah alur kerja
Tinjau konfigurasi setiap langkah dalam alur kerja untuk memastikannya benar.
Buka langkah "Dapatkan konten file menggunakan jalur" dan koreksi untuk menelusuri Azure File Storage di penyewa Anda.
Perbarui koneksi jika diperlukan.
Pastikan langkah "Konversi CSV ke JSON" Anda menunjuk ke instans Azure Function Web App yang tepat.
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.
Dalam langkah "Buat SCIMUser", pastikan bahwa bidang CSV memetakan dengan benar ke atribut SCIM yang akan digunakan untuk diproses.
Pada langkah "Kirim SCIMBulkPayload ke titik akhir API" pastikan Anda menggunakan titik akhir API dan mekanisme autentikasi yang tepat.
Langkah 7: Jalankan pemicu dan uji alur kerja Logic Apps Anda
- Di versi "Tersedia Secara Umum" dari perancang Logic Apps, klik Jalankan Pemicu untuk menjalankan alur kerja secara manual.
- Setelah eksekusi selesai, tinjau tindakan apa yang dilakukan Logic Apps di setiap iterasi.
- 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.