Peniruan Identitas dan Delegasi Klien
Dalam beberapa keadaan, aplikasi server perlu menyajikan identitas klien ke sumber daya yang diaksesnya atas nama klien, biasanya untuk menyebabkan pemeriksaan akses atau autentikasi dilakukan terhadap identitas klien. Hingga batas tertentu, server dapat bertindak berdasarkan identitas klien—tindakan yang disebut sebagai meniru klien.
Peniruan adalah kemampuan utas untuk dijalankan dalam konteks keamanan yang berbeda dari proses yang memiliki utas. Utas server menggunakan token akses yang mewakili kredensial klien, dan dengan ini, ia dapat mengakses sumber daya yang dapat diakses klien.
Menggunakan peniruan memastikan bahwa server dapat melakukan dengan tepat apa yang dapat dilakukan klien. Akses ke sumber daya mungkin dibatasi atau diperluas, tergantung pada apa yang dapat dilakukan klien.
Anda mungkin memilih untuk memiliki server yang meniru klien saat menyambungkan ke database sehingga database dapat mengautentikasi dan mengotorisasi klien itu sendiri. Atau, jika aplikasi Anda mengakses file yang dilindungi dengan deskriptor keamanan dan untuk memungkinkan klien mendapatkan akses resmi ke informasi dalam file-file ini, aplikasi dapat meniru klien sebelum mengakses file.
Cara Menerapkan Peniruan Identitas
Peniruan identitas memerlukan partisipasi oleh klien dan server (dan, dalam beberapa kasus, administrator sistem). Klien harus menunjukkan kesediaannya untuk membiarkan server menggunakan identitasnya, dan server harus secara eksplisit mengasumsikan identitas klien secara terprogram. Untuk detailnya, lihat topik Persyaratan Sisi Klien untuk Peniruan Identitas dan Persyaratan Sisi Server untuk Peniruan Identitas.
Persyaratan Administratif untuk Peniruan Tingkat Delegasi
Untuk secara efektif menggunakan bentuk peniruan, delegasi yang paling kuat, yang merupakan peniruan klien melalui jaringan, akun pengguna klien dan server harus dikonfigurasi dengan benar di Layanan Direktori Aktif untuk mendukungnya (selain klien yang memberikan otoritas untuk melakukan peniruan tingkat delegasi), sebagai berikut:
- Identitas server harus ditandai sebagai "Tepercaya untuk delegasi" di Layanan Direktori Aktif.
- Identitas klien tidak boleh ditandai sebagai "Akun sensitif dan tidak dapat didelegasikan" di Layanan Direktori Aktif.
Fitur konfigurasi ini memberi administrator domain kontrol tingkat tinggi atas delegasi, yang diinginkan, mengingat berapa banyak kepercayaan (dan karenanya risiko keamanan) terlibat. Untuk detail selengkapnya tentang delegasi, lihat Delegasi dan Peniruan Identitas.
Cloaking
Seiring dengan otoritas klien memberikan server melalui tingkat peniruan, kemampuan penyelubungan server sebagian besar menentukan bagaimana peniruan akan berprilaku. Penyelubungan memengaruhi identitas apa yang sebenarnya disajikan oleh server ketika melakukan panggilan atas nama klien—identitas itu sendiri atau klien. Untuk detailnya, lihat Cloaking.
Implikasi Performa
Peniruan identitas dapat secara signifikan memengaruhi performa dan penskalaan. Umumnya lebih mahal untuk meniru klien dalam panggilan daripada melakukan panggilan secara langsung. Berikut ini adalah beberapa masalah yang perlu dipertimbangkan:
- Overhead komputasi dari melewati identitas dalam pola yang rumit, terutama jika penyelubungan dinamis diaktifkan.
- Kompleksitas umum memberlakukan pemeriksaan keamanan redundan di banyak tempat, bukan hanya secara terpusat di tingkat tengah.
- Sumber daya seperti koneksi database, ketika dibuka meniru klien, tidak dapat digunakan kembali di beberapa klien—hambatan yang sangat besar untuk menskalakan dengan baik.
Terkadang satu-satunya solusi yang efektif untuk masalah adalah menggunakan peniruan identitas, tetapi keputusan ini harus ditimbang dengan hati-hati. Untuk diskusi lebih lanjut tentang masalah ini, lihat Keamanan Aplikasi Multi-Tingkat.
Komponen Antrean
Komponen yang diantrekan tidak mendukung peniruan identitas. Ketika klien melakukan panggilan ke objek yang diantrekan, panggilan benar-benar dilakukan ke perekam, yang mengemasnya sebagai bagian dari pesan ke server. Pendengar kemudian membaca pesan dari antrean dan meneruskannya ke pemutar, yang memanggil komponen server aktual dan melakukan panggilan metode yang sama. Dengan demikian, ketika server menerima panggilan, token klien asli tidak tersedia melalui peniruan identitas. Namun, keamanan berbasis peran masih berlaku, dan keamanan terprogram menggunakan antarmuka ISecurityCallContext akan berfungsi. Untuk detailnya, lihat Keamanan Komponen Antrean.
Topik terkait