2010-03-15 94 views
1

我正在嘗試編寫一個執行Kerberos委派的概念驗證應用程序。我編寫了所有的代碼,並且它似乎正在工作(我正在進行身份驗證),但是生成的安全上下文沒有設置ISC_REQ_DELEGATE標誌。關於Kerberos,委派和SPN的混淆

所以我在想,也許其中一個端點(客戶端或服務器)被禁止委託。但是,我沒有對SPN進行身份驗證。只有一個域用戶針對另一個域用戶。作爲InitializeSecurityContext()的SPN,我傳遞了「[email protected]」(這是運行服務器應用程序的用戶帳戶)。據我所知,域用戶默認啓用了委託。無論如何,我要求管理員檢查,並且「帳戶敏感且無法委派」複選框已關閉。

我知道如果我的服務器是作爲NETWORK SERVICE運行的,並且我使用SPN連接到它,那麼我需要AD中的計算機帳戶才能選中「信任計算機委派」複選框默認),但是......情況並非如此,對嗎?或者是?

此外 - 當設置了計算機帳戶中的複選框時,立即進行更改,還是必須重新啓動服務器PC或等待一段時間?

+0

Vilx也在[ServerFault]上發佈了這個(http://serverfault.com/questions/122552/confusion-about-kerberos-delegation-and-spns)。爲了他人的利益而鏈接到這裏。 :) – Chiramisu 2012-11-09 21:57:07

回答

2

根據this如果您使用約束委派,ISC_REQ_DELEGATE僅被忽略。我非常肯定會發生受限委派,您必須明確說明允許帳戶在Active Directory中委派的服務(AD管理單元中的用戶或計算機的委派選項卡)。

我不確定使用UPNs和SPNs的規則。您是否試過打開Kerberos event logging並查看事件日誌?這些消息通常是隱祕的,但通常可以解密。

您對NETWORK SERVICE方案的描述是準確的。委派信任默認關閉,但NETWORK SERVICE可能有權自行註冊SPN(我認爲這可以由組策略確定)。

當您勾選框時,更改立即發生,但可能必須在域中的所有域控制器中傳播(我通常在測試域中使用單個DC進行測試)。因此,重新啓動您的服務應用程序就足夠了,您無需重新啓動。

遏制票據駐留在客戶機上。這些都有到期時間,並且可以使用klist或kerbtray手動刷新。