委派和模擬

在用戶端/伺服器案例中,一部伺服器通常會呼叫另一部伺服器,代表用戶端完成某些工作。 伺服器有權代表客戶端採取行動的情況稱為 委派

從安全性的觀點來看,委派有兩個問題:

  • 代理用戶端時,伺服器應該允許執行什麼動作?
  • 當伺服器代表用戶端呼叫其他伺服器時,伺服器會顯示哪些身分識別?

為了處理這些問題,COM 提供下列功能。 用戶端可以設定 模擬層級 ,以判斷伺服器能夠做為用戶端的程度。 如果用戶端授與足夠的授權給伺服器,伺服器就可以 模擬 客戶端(假裝)用戶端。 模擬用戶端時,伺服器只能存取用戶端有權使用的物件或資源。 做為客戶端的伺服器也可以啟用 遮蔽 自己的身分識別,並在呼叫其他 COM元件時投影用戶端的身分識別。

Diagram that shows how the server acting as the client can enable cloaking.

請考慮上圖所說明的案例,其中 A 和 B 是來自 C 的不同電腦上的進程。進程 A 會呼叫 B,而 B 呼叫 C。用戶端 A 會設定模擬層級。 B 會設定遮蓋功能。 如果 A 設定允許模擬層級,B 可以代表 A 呼叫 C 時模擬 A。 呈現給處理 C 的身分識別會是 A 的身分識別或 B 的身分識別,視 B 是否啟用遮蓋而定。如果已啟用遮蓋,呈現給處理 C 的身分識別將會是 A 的身分識別。如果未啟用遮蓋,B 的身分識別將會呈現給 C。

如需詳細資訊,請參閱下列主題: