共用方式為


COM 安全性預設值

您可以使用應用程式的 COM 安全性預設值,而不是指定您自己的安全性設定。 在此情況下,COM 會為您初始化和管理安全性。 您不需要設定登錄,或呼叫程式中的任何安全性函式。

不過,如果已設定或修改特定登錄的具名值,COM 使用的安全性預設值將會受到影響。 下列清單描述 COM 安全性預設值,並說明某些值如何受到登錄設定的影響。

以下是 COM 使用的預設安全性值:

  • 默認安全性服務提供者是由 COM 決定的環境最相容的提供者。 COM 選擇 Kerberos v5 通訊協定或 NTLMSSP,而 Kerberos 通訊協定是預設選擇。 Schannel 所提供的通訊協定都未選擇為預設值。
  • 系統會透過使用者名稱和密碼識別呼叫端,並自動建立安全性系統所使用的識別令牌。
  • 如果 LegacyAuthenticationLevel 具名值存在,而且其值已設定,則會使用該值。 否則,驗證層級會在 connect 上設定 (RPC_C_AUTHN_LEVEL_CONNECT)。 這個層級表示,在用戶端對伺服器進行的第一次呼叫時,COM 會進行驗證檢查。 如果客戶端通過檢查,則不會再執行任何驗證。 AuthenticationLevel 值也可以在AppID 金鑰下設定。
  • 如果 LegacyImpersonationLevel 具名值存在,而且其值已設定,則會使用該值。 否則,模擬層級會設定為識別 (RPC_C_IMP_LEVEL_IDENTIFY)。 用戶端會授與模擬許可權給伺服器。 識別層級表示伺服器可以取得用戶端的身分識別。 伺服器可以模擬客戶端進行訪問控制清單 (ACL) 檢查,但無法以用戶端身分存取系統物件。 如需詳細資訊,請參閱 模擬層級蔽。
  • 如果 AppID 底下的 AccessPermission 具名值存在且已設定,則會使用該值。 否則,COM 會檢查 DefaultAccessPermission 專案。 如果存在,則會使用該值。 如果此值不存在,COM 會建構 ACL,以授與伺服器身分識別和本機系統的許可權。
  • 如果 AppID 底下的 SRPTrustLevel 具名值存在且已設定,則會使用該值。 否則,軟體限制原則 (SRP) 信任等級會設定為 [不允許] (SAFER_LEVELID_DISALLOWED),這表示應用程式是在受限制的環境中執行,而且不允許存取使用者的任何安全性敏感性用戶許可權。

COM 中的安全性