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

Fitur koneksi implisit aman dirilis pada Januari 2024. Microsoft sangat menganjurkan semua aplikasi yang saat ini menggunakan koneksi implisit untuk mengonversi ke koneksi implisit yang aman dan mencabut koneksi yang dibagikan dengan pengguna akhir.

Perbedaan antara koneksi implisit eksplisit, implisit, dan aman

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 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.
  • Koneksi bersama secara implisit yang aman mengacu pada skenario di mana pengguna akhir aplikasi secara implisit menggunakan kredensial akun yang digunakan pembuat aplikasi untuk menyambungkan dan mengautentikasi ke sumber data saat membuat aplikasi. Ini berarti bahwa kredensial pengguna akhir sendiri tidak digunakan untuk mengautentikasi. Sebagai gantinya, saat pengguna menjalankan aplikasi, mereka menggunakan kredensial yang digunakan untuk membuat aplikasi. Penting untuk dicatat bahwa pengguna akhir tidak diberikan akses langsung ke koneksi, dan aplikasi hanya mengizinkan akses ke serangkaian tindakan dan tabel terbatas.

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 / Aman Implisit
Autentikasi Windows Implisit / Aman Implisit
Autentikasi Windows (tidak dibagikan) Eksplisit

Risiko berbagi sambungan implisit

Semua aplikasi baru secara otomatis menggunakan koneksi implisit aman baru. Namun, dengan aplikasi yang menggunakan 'koneksi implisit' yang lebih lama, aplikasi dan koneksinya disebarkan ke pengguna akhir, itu berarti bahwa pengguna akhir dapat menulis aplikasi baru berdasarkan koneksi tersebut.

Ketika penulis menggunakan koneksi implisit yang aman, itu berarti tidak ada koneksi yang dibagikan dan tidak ada pengguna akhir yang menerima objek koneksi. Ini menghilangkan risiko penulis pengguna akhir menggunakan kembali koneksi untuk membuat aplikasi baru. Sebagai gantinya, aplikasi bekerja dengan koneksi proxy yang mengetahui aplikasi dan hanya berkomunikasi dengan aplikasi tertentu. Koneksi proksi memungkinkan tindakan terbatas (membuat, membaca, memperbarui, menghapus) dan akses ke tabel tertentu di aplikasi yang ditentukan saat aplikasi diterbitkan. Oleh karena itu, hanya tindakan dan akses yang diotorisasi yang diberikan kepada pengguna akhir.

Koneksi implisit sederhana gaya lama sebenarnya mendistribusikan objek koneksi ke pengguna akhir. Misalnya, jika Anda membuat aplikasi yang memfilter data yang tidak ingin dilihat pengguna. Namun, data yang disaring ada dalam database. Namun Anda mengandalkan filter yang dikonfigurasi untuk memastikan pengguna akhir tidak akan melihat data tertentu.

Sekali lagi, dengan koneksi implisit sederhana gaya lama, setelah Anda menyebarkan aplikasi, pengguna akhir dapat menggunakan koneksi yang disebarkan dengan aplikasi Anda di aplikasi baru yang mereka buat. Dalam aplikasi baru, pengguna dapat melihat data yang difilter dalam aplikasi Anda. Penting untuk menggunakan koneksi implisit aman yang baru.

Penting

Setelah koneksi bersama implisit yang lebih lama disebarkan ke pengguna akhir, pembatasan yang mungkin telah Anda berikan di aplikasi yang Anda bagikan (seperti filter atau akses baca-saja) tidak lagi berlaku untuk aplikasi baru yang dibuat pengguna akhir. Pengguna akhir akan memiliki hak apa pun yang memungkinkan otentikasi sebagai bagian dari sambungan bersama secara implisit. Oleh karena itu, saat mengonversi aplikasi untuk menggunakan koneksi implisit yang aman, Anda juga harus mencabut koneksi yang Anda bagikan dengan aplikasi Anda. Admin bisa mendapatkan laporan aplikasi dengan koneksi yang dibagikan secara implisit dengan toolkit COE.

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 dikenal menggunakan Microsoft Entra identitas pada 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 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 menggunakan Microsoft Entra identitas sebagai perwakilan 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