Kredensial Autentikasi Klien
Setiap klien yang diautentikasi harus memberikan kredensial autentikasi ke server. Di bawah RPC, klien menyimpan kredensial autentikasinya dalam pengikatan antara klien dan server. Untuk melakukan ini, klien memanggil RpcBindingSetAuthInfo atau RpcBindingSetAuthInfoEx.
Ada dua jenis kredensial—implisit dan eksplisit:
- Kredensial eksplisit ada saat klien menyediakan nama pengguna, kata sandi, dan domain.
- Kredensial implisit ada ketika klien menggunakan kredensial dari utas atau token proses yang memanggil RpcBindingSetAuthInfo atau fungsi RpcBindingSetAuthInfoEx.
Klien harus menahan diri untuk tidak menyediakan kredensial eksplisit karena menyimpan, memanipulasi, dan mengambil kata sandi pengguna dapat memperkenalkan kerentanan keamanan ke dalam sistem terdistribusi jika kredensial eksplisit digunakan.
Untuk menggunakan kredensial implisit, klien memanggil RpcBindingSetAuthInfo(Ex). Sistem keamanan dan RPC mendapatkan kredensial dari utas atau token proses untuk digunakan dalam sesi autentikasi.
Jika klien menggunakan kredensial eksplisit, parameter kelima dari kedua fungsi ini berjenis RPC_AUTH_IDENTITY_HANDLE. Ini adalah jenis fleksibel yang merupakan penunjuk ke struktur data. Konten struktur data dapat berbeda dengan setiap layanan autentikasi. Saat ini, SSP yang didukung RPC mengharuskan aplikasi Anda mengatur RPC_AUTH_IDENTITY_HANDLE untuk menunjuk ke struktur SEC_WINNT_AUTH_IDENTITY. Struktur SEC_WINNT_AUTH_IDENTITY berisi bidang untuk nama pengguna, domain, dan kata sandi.