Bagikan melalui


Tingkat Peniruan

Jika peniruan berhasil, itu berarti bahwa klien telah setuju untuk membiarkan server menjadi klien ke tingkat tertentu. Berbagai tingkat peniruan disebut tingkat peniruan, dan menunjukkan berapa banyak otoritas yang diberikan ke server ketika meniru klien.

Saat ini, ada empat tingkat peniruan: anonim, mengidentifikasi, meniru, dan mendelegasikan. Daftar berikut ini menjelaskan secara singkat setiap tingkat peniruan:

anonim (RPC_C_IMP_LEVEL_ANONYMOUS)

Klien bersifat anonim ke server. Proses server dapat meniru klien, tetapi token peniruan tidak berisi informasi apa pun tentang klien. Tingkat ini hanya didukung melalui transportasi komunikasi antarproseksi lokal. Semua transportasi lainnya secara diam-diam mempromosikan tingkat ini untuk mengidentifikasi.

identifikasi (RPC_C_IMP_LEVEL_IDENTIFY)

Tingkat default sistem. Server dapat memperoleh identitas klien, dan server dapat meniru klien untuk melakukan pemeriksaan ACL.

meniru (RPC_C_IMP_LEVEL_IMPERSONATE)

Server dapat meniru konteks keamanan klien saat bertindak atas nama klien. Server dapat mengakses sumber daya lokal sebagai klien. Jika server lokal, server dapat mengakses sumber daya jaringan sebagai klien. Jika server jarak jauh, server hanya dapat mengakses sumber daya yang berada di komputer yang sama dengan server.

delegasi (RPC_C_IMP_LEVEL_DELEGATE)

Tingkat peniruan yang paling kuat. Ketika tingkat ini dipilih, server (baik lokal atau jarak jauh) dapat meniru konteks keamanan klien saat bertindak atas nama klien. Selama peniruan identitas, kredensial klien (baik lokal maupun jaringan) dapat diteruskan ke sejumlah komputer.

Agar peniruan identitas berfungsi di tingkat delegasi, persyaratan berikut harus dipenuhi:

  • Klien harus mengatur tingkat peniruan ke RPC_C_IMP_LEVEL_DELEGATE.
  • Akun klien tidak boleh ditandai "Akun sensitif dan tidak dapat didelegasikan" di Layanan Direktori Aktif.
  • Akun server harus ditandai dengan atribut "Tepercaya untuk delegasi" di Layanan Direktori Aktif.
  • Komputer yang menghosting klien, server, dan server "hilir" semuanya harus berjalan di domain.

Dengan memilih tingkat peniruan identitas, klien memberi tahu server seberapa jauh hal itu dapat melaju dalam meniru klien. Klien mengatur tingkat peniruan identitas pada proksi yang digunakannya untuk berkomunikasi dengan server.

Mengatur Tingkat Peniruan

Ada dua cara untuk mengatur tingkat peniruan:

Anda mengatur tingkat peniruan dengan meneruskan nilai RPC_C_IMP_LEVEL_xxx yang sesuai ke CoInitializeSecurity atau CoSetProxyBlanket melalui parameter dwImpLevel.

Layanan autentikasi yang berbeda mendukung peniruan tingkat delegasi ke tingkat yang berbeda. Misalnya, NTLMSSP mendukung peniruan tingkat delegasi lintas alur dan lintas proses, tetapi bukan lintas komputer. Di sisi lain, protokol Kerberos mendukung peniruan tingkat delegasi di seluruh batas komputer, sementara Schannel tidak mendukung peniruan di tingkat delegasi. Jika Anda memiliki proksi pada tingkat peniruan identitas dan ingin mengatur tingkat peniruan ke delegasi, Anda harus memanggil SetBlanket menggunakan konstanta default untuk setiap parameter kecuali tingkat peniruan. COM akan memilih NTLM secara lokal dan protokol Kerberos dari jarak jauh (ketika protokol Kerberos akan berfungsi).

Delegasi dan Penyamaran