Menonaktifkan Keamanan Aktivasi
Biasanya, aktivasi menggunakan pengaturan keamanan default. Namun, Anda dapat mengontrol keamanan aktivasi dengan menentukan struktur COAUTHINFO , yang merupakan anggota struktur COSERVERINFO yang diteruskan ke fungsi aktivasi. Jika klien menentukan tingkat autentikasi RPC_C_AUTHN_LEVEL_NONE dalam struktur COAUTHINFO , autentikasi tidak dicoba. Jika tidak, aktivasi aman dicoba, dan jika autentikasi gagal, aktivasi gagal.
Jika klien tidak menentukan struktur COAUTHINFO eksplisit dan sebaliknya mengatur pointer ke NULL, COM akan mencoba mengautentikasi klien. Jika tidak dapat mengautentikasi klien, COM memeriksa deskriptor keamanan izin peluncuran untuk melihat apakah ada NULL DACL atau ACL yang memungkinkan akses ke Semua Orang. Jika pemeriksaan ini berhasil, server akan diluncurkan. Oleh karena itu, bahkan jika klien tidak menentukan struktur COAUTHINFO, aktivasi yang tidak aman dapat terjadi ketika server mengizinkannya.
Catatan
Untuk mengizinkan pengguna jaringan yang tidak diautentikasi menjalankan aplikasi COM, peran aplikasi harus menyertakan pengguna Anonim. Dimulai dengan Windows Server 2003, secara default, pengguna Anonim tidak disertakan dalam grup Semua Orang.
Mengapa klien ingin menonaktifkan keamanan aktivasi secara eksplisit meskipun aktivasi yang tidak aman pada akhirnya akan terjadi jika server mengizinkannya? Karena secara eksplisit menonaktifkan keamanan aktivasi meningkatkan performa ketika klien tidak menginginkan atau memerlukan pemeriksaan keamanan.
Hal-hal berikut harus dilakukan untuk menonaktifkan keamanan aktivasi secara eksplisit:
- Klien harus menentukan tingkat autentikasi RPC_C_AUTHN_LEVEL_NONE dalam struktur COAUTHINFO yang merupakan anggota struktur COSERVERINFO yang disediakan untuk fungsi aktivasi.
- Klien harus menentukan tingkat peniruan RPC_C_IMP_LEVEL_IMPERSONATE dalam struktur COAUTHINFO yang merupakan anggota struktur COSERVERINFO yang disediakan untuk fungsi aktivasi. Jika nilai ini tidak diteruskan, Anda akan mendapatkan RPC_S_SERVER_UNAVAILABLE.
- Server harus menentukan Semua Orang untuk Izin Peluncuran Default. Cara yang disarankan untuk melakukan tugas ini adalah dengan menggunakan Dcomcnfg.exe sebagai berikut:
- Jalankan Dcomcnfg.exe.
- Pada halaman Aplikasi , pilih aplikasi yang mewakili server. Klik tombol Properti (atau klik dua kali aplikasi yang dipilih).
- Pada halaman properti Keamanan , klik tombol Gunakan Izin Peluncuran Kustom.
- Klik tombol Edit di area Luncurkan Izin.
- Dalam kotak dialog Izin Nilai Registri , klik tombol Tambahkan .
- Pilih entri untuk Semua Orang dalam kotak daftar.
- Dalam kotak daftar Tipe Akses , pilih Izinkan Peluncuran.
- Klik tombol OK.
Catatan
Di Windows Server 2003, kemampuan autentikasi untuk aplikasi sistem COM+ menyertakan nilai EOAC_DISABLE_AAA. Nilai ini, yang menonaktifkan aktivasi activate-as-activator (AAA), digunakan dalam panggilan CoInitializeSecurity saat meluncurkan aplikasi sistem. Mengatur kemampuan autentikasi ke EOAC_DISABLE_AAA memungkinkan aplikasi yang berjalan di bawah akun istimewa (seperti LocalSystem) untuk membantu mencegah identitasnya digunakan untuk meluncurkan komponen yang tidak tepercaya.
Topik terkait