Bagikan melalui


Koneksi di ADOMD.NET - Membuat Koneksi Aman

Saat Anda menggunakan koneksi di ADOMD.NET, metode keamanan yang digunakan untuk koneksi bergantung pada nilai properti ProtectionLevel dari string koneksi yang digunakan saat Open Anda memanggil metode AdomdConnection.

Properti ProtectionLevel menawarkan empat tingkat keamanan: tidak diautentikasi, diautentikasi, ditandatangani, dan dienkripsi. Tabel berikut menjelaskan berbagai tingkat keamanan ini.

Catatan

Jika Anda memilih untuk menggunakan kumpulan koneksi database, database tidak akan dapat mengelola keamanan. Ini karena kumpulan koneksi database mengharuskan string koneksi identik dengan koneksi kumpulan. Oleh karena itu, Anda harus mengelola keamanan di tempat lain.

Tingkat Keamanan Nilai Tingkat Perlindungan
koneksi yang tidak diautentikasi
Koneksi yang tidak diautentikasi tidak melakukan bentuk autentikasi. Jenis koneksi ini mewakili bentuk koneksi yang paling banyak didukung, tetapi paling tidak aman.
Tidak ada
Koneksi yang diautentikasi
Koneksi yang diautentikasi mengautentikasi pengguna yang membuat koneksi, tetapi tidak mengamankan komunikasi tambahan. Koneksi semacam ini berguna karena Anda dapat menetapkan identitas pengguna atau aplikasi yang terhubung ke sumber data analitis.
Sambungkan
sambungan yang ditandatangani
Koneksi yang ditandatangani mengautentikasi pengguna yang meminta koneksi, dan kemudian memastikan bahwa transmisi tidak dimodifikasi. Koneksi semacam ini berguna ketika keaslian data yang ditransfer harus diverifikasi. Namun, koneksi yang ditandatangani hanya mencegah konten paket data dimodifikasi. Konten masih dapat dilihat saat transit.



Perhatikan bahwa koneksi yang ditandatangani hanya didukung oleh penyedia XML untuk Analisis yang disediakan oleh MicrosoftSQL ServerAnalysis Services.
Integritas PKT atau PktIntegrity
koneksi terenkripsi
Koneksi terenkripsi adalah jenis koneksi default yang digunakan oleh ADOMD.NET. Koneksi semacam ini mengautentikasi pengguna yang meminta koneksi, dan kemudian juga mengenkripsi data yang dikirimkan. Koneksi terenkripsi adalah bentuk koneksi paling aman yang dapat dibuat oleh ADOMD.NET. Isi paket data tidak dapat dilihat atau dimodifikasi, sehingga melindungi data selama transit.



Koneksi terenkripsi hanya didukung oleh penyedia XML for Analysis yang disediakan oleh SQL ServerAnalysis Services.
Pkt Privacy atau PktPrivacy

Namun, tidak semua tingkat keamanan tersedia untuk semua jenis koneksi:

  • Koneksi TCP dapat menggunakan salah satu dari empat tingkat keamanan. Bahkan, koneksi TCP, ketika Anda menggunakannya dengan Windows Keamanan Terpadu, menawarkan metode paling aman untuk menghubungkan ke sumber data analitis.

  • Koneksi HTTP hanya dapat menjadi koneksi yang diautentikasi. Oleh karena itu, properti ProtectionLevel harus diatur ke Koneksi.

  • Koneksi HTTPS hanya dapat menjadi koneksi terenkripsi. Oleh karena itu, properti ProtectionLevel harus diatur ke Pkt Privacy atau PktPrivacy.

Mengamankan Koneksi TCP

Untuk koneksi TCP, properti ProtectionLevel mendukung keempat tingkat keamanan, seperti yang ditunjukkan pada tabel berikut.

Nilai Tingkat Perlindungan Gunakan dengan Koneksi TCP? Hasil
Tidak ada Ya Menentukan koneksi yang tidak diautentikasi.

Aliran TCP diminta dari penyedia, tetapi tidak ada bentuk otentikasi yang dilakukan pada pengguna yang meminta aliran.
Sambungkan Ya Menentukan terhubung yang diautentikasi.

Aliran TCP diminta dari penyedia, dan kemudian konteks keamanan pengguna yang meminta aliran diautentikasi terhadap server: Jika otentikasi berhasil, tidak ada tindakan lain yang diambil. Jika otentikasi gagal, AdomdConnection objek terputus dari sumber data multidimensi dan pengecualian dilemparkan.

Setelah autentikasi berhasil atau gagal, konteks keamanan yang digunakan untuk mengautentikasi koneksi dibuang.
Integritas PKT atau PktIntegrity Ya Menentukan koneksi yang ditandatangani.

Aliran TCP diminta dari penyedia, dan kemudian konteks keamanan pengguna yang meminta aliran diautentikasi terhadap server:



Jika autentikasi berhasil, AdomdConnection objek menutup aliran TCP yang ada dan membuka aliran TCP yang ditandatangani untuk menangani semua permintaan. Setiap permintaan data atau metadata diautentikasi dengan menggunakan konteks keamanan yang digunakan untuk membuka koneksi. Selain itu, setiap paket ditandatangani secara digital untuk memastikan bahwa muatan paket TCP belum diubah dengan cara apa pun.



Jika otentikasi gagal, AdomdConnection objek terputus dari sumber data multidimensi dan pengecualian dilemparkan.
Pkt Privacy atau PktPrivacy Ya Menentukan koneksi terenkripsi.



Perhatikan bahwa Anda juga dapat menentukan koneksi terenkripsi dengan tidak mengatur properti ProtectionLevel dalam string koneksi.



Aliran TCP diminta dari penyedia, dan kemudian konteks keamanan pengguna yang meminta aliran diautentikasi terhadap server:



Jika otentikasi berhasil, AdomdConnection objek menutup aliran TCP yang ada dan membuka aliran TCP terenkripsi untuk menangani semua permintaan. Setiap permintaan data atau metadata diautentikasi dengan menggunakan konteks keamanan yang digunakan untuk membuka koneksi. Selain itu, payload dari setiap paket TCP dienkripsi dengan menggunakan metode enkripsi tertinggi yang didukung oleh penyedia dan sumber data multidimensi.



Jika otentikasi gagal, AdomdConnection objek terputus dari sumber data multidimensi dan pengecualian dilemparkan.

Menggunakan Keamanan Terintegrasi Windows untuk Koneksi

Windows Keamanan Terpadu adalah cara paling aman untuk membangun dan mengamankan koneksi ke contoh Layanan Analisis. Windows Keamanan Terintegrasi tidak mengungkapkan kredensial keamanan, seperti nama pengguna atau kata sandi, selama proses autentikasi, tetapi menggunakan pengenal keamanan dari proses yang sedang berjalan untuk menetapkan identitas. Untuk sebagian besar aplikasi klien, pengidentifikasi keamanan ini mewakili identitas pengguna yang saat ini masuk.

Untuk menggunakan Windows Keamanan Terintegrasi, string koneksi memerlukan pengaturan berikut:

  • Untuk properti Keamanan Terpadu , jangan atur properti ini atau atur properti ini ke SSPI.

    Catatan

    Windows Keamanan Terintegrasi hanya tersedia untuk koneksi TCP karena koneksi HTTP harus menggunakan pengaturan Dasar untuk properti Keamanan Terpadu.

  • Untuk properti ProtectionLevel, atur properti ini ke Koneksi, Integritas Pkt, atau Privasi Pkt.

Mengamankan Koneksi HTTP

HTTPS dan Secure Sockets Layer (SSL) dapat digunakan untuk mengamankan komunikasi HTTP secara eksternal dengan sumber data analitis.

Karena penyedia XMLA hanya menggunakan HTTP yang aman, koneksi HTTP di ADOMD.NET harus berupa koneksi yang ditandatangani, seperti yang ditunjukkan pada tabel berikut.

Nilai Tingkat Perlindungan Gunakan dengan HTTP atau HTTPS
Tidak ada Tidak
Sambungkan HTTP
Integritas PKT atau PktIntegrity Tidak
Pkt Privacy atau PktPrivacy HTTPS

Membuka Koneksi HTTP yang Aman

Contoh berikut menunjukkan cara menggunakan ADOMD.NET untuk membuka koneksi HTTP untuk database Layanan Analisis sampel AdventureWorksAS :

Public Function GetAWEncryptedConnection( _  
    Optional ByVal serverName As String = "https:\\localhost\isapy\msmdpump.dll") _  
    As AdomdConnection  
  
    Dim strConnectionString As String = ""  
    Dim objConnection As New AdomdConnection  
  
    Try  
        ' To establish an encrypted connection, set the   
        ' ProtectionLevel setting to PktPrivacy.  
        strConnectionString = "DataSource=" & serverName & ";" & _  
            "Catalog=AdventureWorksAS;" & _  
            "ProtectionLevel=PktPrivacy;"  
  
        ' Note that username and password are not supplied here.  
        ' The current security context is used for authentication  
        ' purposes.  
  
        objConnection.ConnectionString = strConnectionString  
        objConnection.Open()  
    Catch ex As Exception  
        objConnection = Nothing  
        Throw ex  
    Finally  
        ' Return the encrypted connection.  
        GetAWEncryptedConnection = objConnection  
    End Try  
End Function