Share via


安全性內容和 Active Directory 網域服務

當應用程式系結至 Active Directory 網域 控制器 (DC)時,它會在安全性主體的安全性內容中執行此作業,而安全性主體可以是使用者或實體,例如計算機或系統服務。 安全性內容是系統在線程嘗試存取安全性實體物件時,用來強制執行安全性的用戶帳戶。 此數據報括使用者安全性標識碼 (SID)、群組成員資格和許可權。

用戶藉由提供驗證的認證來建立安全性內容。 如果認證通過驗證,系統會產生存取令牌,以識別與使用者帳戶相關聯的群組成員資格和許可權。 當您嘗試存取目錄物件時,系統會驗證您的存取令牌。 它會比較存取令牌中的數據與物件安全性描述元授與或拒絕存取的帳戶和群組。

使用下列方法來控制系結至 Active Directory DC 的安全性內容:

  • 搭配使用 ADS_SECURE_AUTHENTICATION 選項與 ADsOpenObject 函式或 IADsOpenDSObject::OpenDSObject 方法系結,並明確指定使用者名稱和密碼。 系統會驗證這些認證,併產生存取令牌,以供該系結期間用於存取驗證。 如需詳細資訊,請參閱 驗證
  • 使用 [ADS_SECURE_AUTHENTICATION] 選項進行系結 ,但未指定認證。 如果您未模擬使用者,系統會使用應用程式的主要安全性內容,也就是啟動應用程式之使用者的安全性內容。 在系統服務的情況下,這是服務帳戶或 LocalSystem 帳戶的安全性內容。
  • 模擬使用者,然後與 ADS_SECURE_AUTHENTICATION系結,但未指定認證。 在此情況下,系統會使用模擬之用戶端的安全性內容。 如需詳細資訊,請參閱 用戶端模擬
  • 使用 ADsOpenObject IADsOpenDSObject::OpenDSObject 搭配 ADS_NO_AUTHENTICATION 選項進行系結。 此方法會系結而不進行驗證,併產生「所有人」作為安全性內容。 只有LDAP提供者支援此選項。

可能的話,請系結而不指定認證。 也就是說,請使用登入使用者或模擬用戶端的安全性內容。 這可讓您避免快取認證。 如果您必須使用替代的使用者認證,請提示輸入認證、與其系結,但不要快取認證。 若要在多個系結作業中使用相同的安全性內容,您可以指定第一個系結作業的使用者名稱和密碼,然後只指定使用者名稱進行後續系結。 如需使用這項技術的詳細資訊,請參閱 驗證

某些安全性內容比其他內容更強大。 例如,域控制器上的 LocalSystem 帳戶具有 Active Directory 網域服務 的完整存取權,而一般使用者只能存取目錄中的一些物件。 一般而言,當功能較弱的安全性內容足以執行作業時,您的應用程式不應該在強大的安全性內容中執行,例如 LocalSystem。 這表示您可能想要將應用程式分成不同的元件,每個元件都會在適合作業執行的安全性內容中執行。 例如,您的應用程式設定可以分割如下:

  • 在屬於 Schema 管理員 istrators 群組成員的使用者內容中執行架構變更和擴充功能。
  • 在屬於 Enterprise 管理員 istrators 群組成員的使用者內容中執行設定容器變更。
  • 在屬於 Domain 管理員 istrators 群組成員的使用者內容中執行網域容器變更。