用戶端驗證認證
每個已驗證的用戶端都必須提供驗證認證給伺服器。 在 RPC 下,用戶端會在用戶端與伺服器之間的系結中儲存其驗證認證。 若要這樣做,用戶端會呼叫 RpcBindingSetAuthInfo 或 RpcBindingSetAuthInfoEx。
認證有兩種類型:隱含和明確:
- 當用戶端提供使用者名稱、密碼和網域時,就會有明確的認證。
- 當用戶端使用來自 呼叫 RpcBindingSetAuthInfo 或 RpcBindingSetAuthInfoEx 函式之執行緒或進程權杖的認證時,就會存在隱含認證。
用戶端應該避免提供明確認證,因為如果使用明確認證,儲存、操作和擷取使用者密碼可能會造成分散式系統的安全性弱點。
若要使用隱含認證,用戶端會呼叫 RpcBindingSetAuthInfo (Ex) 。 安全性系統和 RPC 會從執行緒或進程權杖取得認證,以用於驗證會話。
如果用戶端使用明確認證,則這兩個函式的第五個參數類型 為 RPC_AUTH_IDENTITY_HANDLE。 這是彈性類型,這是資料結構的指標。 資料結構的內容可能會與每個驗證服務不同。 目前,RPC 支援的 SSP 要求您的應用程式設定 RPC_AUTH_IDENTITY_HANDLE 指向 SEC_WINNT_AUTH_IDENTITY 結構。 SEC_WINNT_AUTH_IDENTITY結構包含使用者名稱、網域和密碼的欄位。