Kerberos
對 Kerberos、委派和 SPN 的困惑
我已經在 SO 上發布了這個問題,但它的本質是在程式和伺服器配置之間,所以我也會在這裡重新發布。
我正在嘗試編寫一個執行 Kerberos 委託的概念驗證應用程序。我已經編寫了所有程式碼,並且它似乎可以正常工作(我的身份驗證很好),但是生成的安全上下文沒有設置 ISC_REQ_DELEGATE 標誌。
所以我在想也許端點之一(客戶端或伺服器)被禁止委託。但是,我沒有針對 SPN 進行身份驗證。只有一個域使用者對抗另一個域使用者。作為 SPN,
InitializeSecurityContext()
我將傳遞“someuser@mydomain.lan”(這是執行伺服器應用程序的使用者帳戶)。據我了解,域使用者預設啟用委派。無論如何,我要求管理員檢查,並且“帳戶敏感且不能委派”複選框已關閉。我知道如果我的伺服器作為網路服務執行並且我使用 SPN 連接到它,那麼我需要 AD 中的電腦帳戶選中“信任電腦以進行委派”複選框(預設情況下關閉),但是……事實並非如此,對吧?或者是嗎?
另外 - 當電腦帳戶中的複選框被設置時,更改會立即發生,還是我必須重新啟動伺服器 PC 或等待一段時間?
根據我使用應用程序和 Kerberos 委派的經驗,服務帳戶(執行應用程序)需要為您要執行委派的服務配置一個 SPN,並且必須將其設置為受信任的委派(所有 SPN 或僅特定的 SPN,否則稱為約束委派)。