Windows-Server-2003

在 AD 中自動設置受約束的 kerberos 委派

  • December 14, 2012

我有一個使用一些後端伺服器(UNC、HTTP 和 SQL)的 Web 應用程序。為了讓它工作,我需要為執行 IIS AppPool 的帳戶配置 ServicePrincipalNames,然後允許 kerberos 委派給後端服務。

我知道如何通過 AD 使用者和電腦工具的“委託”選項卡進行配置。

但是,該應用程序將被部署到許多 Active Directory 環境中。事實證明,手動配置委派很容易出錯,並且調試錯誤配置導致的問題非常耗時。我想創建一個可以為我執行此操作的安裝腳本或程序。

有誰知道如何在 AD 中編寫腳本或以程式方式設置約束委派?

失敗了,我如何編寫腳本讀取使用者允許的服務以驗證它是否已正確設置?

好的,經過大量的網際網路探勘和一些測試,我已經解決了。

我沒有找到可以從批處理腳本中為我執行此操作的實用程序。但是,我確實發現了底層 LDAP 中需要哪些屬性。所以我必須編寫自己的實用程序來為我做這件事。

以下 C# 程式碼可以設置或檢查約束委派:

DirectoryEntry de = new DirectoryEntry("LDAP://"+usersDN);

if (!de.Properties["msDS-AllowedToDelegateTo"].Contains(backendSpnString))
{
   de.Properties["msDS-AllowedToDelegateTo"].Add(backendSpnString);
   de.CommitChanges();
}

如果使用者啟用了非約束委派,您可能需要在啟用約束之前將其關閉 - 但我沒有完全測試這種情況。

上面的程式碼是 C#,因為這是 webapp 的編寫內容,因此需要送出。如果需要,我希望任何關注此內容的人都可以轉錄成另一種語言。

引用自:https://serverfault.com/questions/208420