Menggunakan Microsoft SQL Server secara aman dengan Power Apps

Tersedia berbagai cara untuk menyambung dan mengotentikasi ke SQL Server dengan Power Apps. Artikel ini memaparkan konsep yang dapat membantu membuat pilihan cara menyambung ke SQL Server dengan pendekatan keamanan yang sesuai dengan persyaratan untuk aplikasi Anda.

Penting

Artikel ini berlaku untuk semua database relasi dan koneksi implisit.

Perbedaan antara sambungan eksplisit dan implisit

Sambungan ke SQL Server dibuat setiap kali Anda membuat aplikasi menggunakan Power Apps yang tersambung ke SQL Server. Bila aplikasi tersebut dipublikasikan dan dibagikan dengan orang lain, aplikasi maupun sambungan akan disebarkan ke pengguna tersebut. Dengan kata lain, aplikasi dan sambungan—keduanya dapat dilihat oleh pengguna yang aplikasinya dibagikan.

Metode autentikasi yang digunakan untuk sambungan tersebut dapat eksplisit atau implisit. Kita juga dapat mengatakan bahwa sambungan tersebut dibagikan secara eksplisit atau implisit.

  • Sambungan yang dibagikan secara eksplisit berarti bahwa pengguna akhir aplikasi harus mengautentikasi ke SQL Server dengan kredensial eksplisit mereka sendiri. Biasanya otentikasi ini terjadi di belakang layar sebagai bagian dari Microsoft Entra atau jabat tangan otentikasi Windows. Pengguna bahkan tidak memperhatikan kapan otentikasi dilakukan.
  • Sambungan yang dibagikan secara implisit berarti pengguna secara implisit menggunakan kredensial akun yang digunakan pembuat aplikasi untuk menyambungkan dan mengotentikasi ke sumber data selama pembuatan aplikasi. Kredensial pengguna akhir tidak digunakan untuk mengautentikasi. Setiap kali pengguna akhir menjalankan aplikasi, mereka menggunakan kredensial yang digunakan penulis untuk membuat aplikasi.

Empat jenis otentikasi sambungan berikut dapat digunakan dengan SQL Server untuk Power Apps:

Jenis Autentikasi Mode Koneksi Power Apps
Microsoft Entra Terpadu Eksplisit
Autentikasi SQL Server Implisit
Autentikasi Windows Implisit
Autentikasi Windows (Tidak Dibagikan) Eksplisit

Risiko berbagi sambungan implisit

Karena aplikasi dan sambungannya disebarkan ke pengguna akhir, berarti pengguna akhir dapat menulis aplikasi baru berdasarkan sambungan tersebut.

Misalnya, pertimbangkan anda membuat aplikasi yang memfilter data yang Anda tidak ingin dilihat pengguna. Data terfilter tersedia di database. Namun Anda mengandalkan filter yang dikonfigurasi untuk memastikan pengguna akhir tidak akan melihat data tertentu.

Setelah menyebarkan aplikasi ini, pengguna akhir dapat menggunakan sambungan yang disebarkan dengan aplikasi Anda dalam aplikasi baru yang mereka buat. Dalam aplikasi baru, pengguna dapat melihat data yang difilter dalam aplikasi Anda.

Penting

Setelah sambungan yang dibagikan secara implisit disebarkan ke pengguna akhir, pembatasan yang mungkin Anda masukkan dalam aplikasi yang Anda bagikan (seperti filter atau akses hanya baca) tidak valid lagi untuk pembuatan pengguna akhir aplikasi baru. Pengguna akhir akan memiliki hak apa pun yang memungkinkan otentikasi sebagai bagian dari sambungan bersama secara implisit.

Penggunaan koneksi implisit di dunia nyata

Ada kasus penggunaan yang valid untuk metode otentikasi implisit dan eksplisit. Pertimbangkan model keamanan, dan kemudahan pengembangan saat memilih pendekatan Anda. Sebagai aturan umum, gunakan metode otentikasi eksplisit untuk situasi apa pun dengan persyaratan bisnis Anda di mana data harus dibatasi pada baris atau kolom.

Untuk contoh kasus penggunaan sambungan eksplisit, pertimbangkan manajer penjualan yang hanya boleh melihat diskon harga atau data biaya dasar yang ada dalam tabel yang sama di mana staf penjualan lain harus melihat produk dan harga.

Namun, tidak semua data mungkin harus diamankan dengan cara yang sama. Aplikasi dibagikan dan disebarkan ke pengguna atau grup pengguna tertentu. Orang di luar grup tersebut tidak memiliki akses ke aplikasi atau sambungan. Oleh karena itu, jika setiap orang dalam grup berwenang untuk melihat semua data dalam database, metode pembagian implisit berfungsi dengan baik.

Untuk contoh kasus penggunaan sambungan implisit, pertimbangkan departemen yang memiliki database kecil proyek yang mereka lacak. Database dapat mencakup informasi seperti tiket kerja departemen, atau kalender perusahaan untuk seluruh perusahaan. Dalam skenario ini, pembangunan lebih banyak aplikasi di atas sambungan bersama secara implisit dapat didorong selama semua data harus dapat diakses oleh semua pengguna yang diberi akses.

Aplikasi yang dibuat menggunakan Power Apps dirancang untuk dapat didekati oleh pengguna akhir. Skenario semacam ini umum karena biaya pengembangan yang terkait dengan sambungan implisit rendah.

Aplikasi berbasis departemen dapat berkembang menjadi aplikasi penting di seluruh perusahaan dan kritis misi. Dalam skenario ini, penting untuk dipahami bahwa saat aplikasi departemen bergerak ke tingkat perusahaan, keamanan perusahaan biasa harus sudah ada. Pendekatan ini lebih mahal untuk upaya membangun aplikasi, namun penting dalam skenario seluruh perusahaan.

Keamanan klien dan server

Anda tidak dapat mengandalkan keamanan data melalui pemfilteran atau operasi sisi klien lainnya agar aman. Aplikasi yang memerlukan pemfilteran data aman harus memastikan bahwa identifikasi dan pemfilteran pengguna terjadi di server.

Gunakan layanan seperti Microsoft Entra ID alih-alih mengandalkan filter yang dirancang dalam aplikasi dalam hal identitas dan keamanan pengguna. Konfigurasi ini akan memastikan filter sisi server berfungsi seperti yang diharapkan.

Ilustrasi berikut menjelaskan bagaimana pola keamanan dalam aplikasi berbeda antara model keamanan sisi klien dan sisi server.

Pola keamanan sisi klien dalam aplikasi.

Dalam pola aplikasi keamanan klien, [1] pengguna hanya mengautentikasi ke aplikasi di sisi klien. Selanjutnya aplikasi [2] meminta informasi layanan, dan [3] layanan mengembalikan informasi semata-mata berdasarkan permintaan data.

Pola keamanan sisi server dalam aplikasi.

Pada pola keamanan sisi server, [1] pengguna terlebih dulu mengautentikasi ke layanan sehingga pengguna diketahui layanan. Selanjutnya, [2] bila panggilan dibuat dari aplikasi, layanan akan [3] menggunakan identitas pengguna yang diketahui saat ini untuk memfilter data dengan tepat dan [4] mengembalikan data.

Skenario berbagi departemen implisit yang dijelaskan di atas adalah kombinasi dari kedua pola ini. Pengguna harus masuk ke Power Apps layanan menggunakan Microsoft Entra kredensial. Perilaku ini adalah pola aplikasi keamanan server. Pengguna diketahui menggunakan identitas pada Microsoft Entra layanan. Oleh karena itu, aplikasi dibatasi pada kumpulan pengguna yang mana Power Apps telah secara resmi berbagi aplikasi.

Namun, sambungan bersama implisit ke SQL Server adalah pola aplikasi keamanan klien. SQL Server hanya mengetahui bahwa nama pengguna dan sandi tertentu digunakan. Pemfilteran sisi klien, misalnya, dapat dipintas dengan aplikasi baru menggunakan nama pengguna dan kata sandi yang sama.

Untuk memfilter data dengan aman di sisi server, gunakan fitur keamanan built-in di SQL Server seperti keamanan tingkat baris untuk baris dan izin tolak pada objek tertentu (seperti kolom) untuk pengguna tertentu. Pendekatan ini akan menggunakan Microsoft Entra identitas pengguna untuk memfilter data di server.

Beberapa layanan korporasi yang ada telah menggunakan pendekatan di mana identitas pengguna diambil pada lapisan data bisnis dengan cara yang sama yang dilakukan Microsoft Dataverse. Dalam kasus ini, lapisan bisnis mungkin bisa atau tidak dapat menggunakan keamanan tingkat baris SQL Server dan menolak fitur secara langsung. Jika tidak, seringkali keamanan diaktifkan menggunakan prosedur atau tampilan yang tersimpan.

Lapisan bisnis (di sisi server) menggunakan identitas pengguna Microsoft Entra yang diketahui untuk memanggil prosedur tersimpan sebagai prinsipal SQL Server dan memfilter data. Namun, Power Apps saat ini tidak tersambung ke prosedur yang tersimpan. Lapisan bisnis juga dapat memanggil tampilan yang Microsoft Entra menggunakan identitas sebagai prinsipal SQL Server. Dalam kasus ini, Power Apps gunakan untuk menyambung ke tampilan sehingga data difilter di sisi server. Memperlihatkan hanya tampilan ke pengguna mungkin memerlukan alur Power Automate untuk pembaruan.

Lihat juga

Ikhtisar konektor untuk aplikasi kanvas