天天看點

關于Kerberos delegation

 概念:Kerberos delegation允許一台伺服器,模拟客戶的身份,代表客戶去通路遠端的資源。Delegation 指得是伺服器程序帳戶(用于伺服器程序運作的User帳戶或者本地SYSTEM帳戶)代表用戶端帳戶(用戶端通路伺服器的帳戶)去通路遠端資源。

執行個體:一台IIS伺服器,一台Exchange伺服器,一台域控制器。用戶端有一個帳戶(假設為test\clienttest,是test域的一個使用者)需要通路遠端Exchange伺服器取得相應的資訊(如郵件,月曆,任務等資訊)。由于程序是在IIS伺服器上運作的,伺服器上的帳戶(假設為test\servertest,也是test域的一個使用者)和用戶端的帳戶一般是不同的,而通路的過程是通過伺服器上的帳戶,顯然是不能驗證通過的。

解決方案:通過Kerberos delegation。讓test\servertest帳戶模拟test\clienttest帳戶,去通路Exchange 伺服器上的資源。驗證過程是這樣的:test\servertest帳戶取得test\clienttest帳戶的Credential,利用這個Credential去Exchange伺服器上驗證,顯然是能通過的。驗證通過以後,将取回的資訊傳回給用戶端。

      注意的問題:

<b>1</b><b>.</b>test\servertest帳戶模拟test\clienttest帳戶去通路遠端伺服器(假設名為Exch),此時Exch看到的是一個空Session,而不是test\servertest帳戶的一個登入。

<b>2</b><b>.</b>Kerberosdelegation要求用戶端和伺服器端的時間保持同步,如果不同步,驗證将不能通過。是以造成有時候能通過驗證有時候(往往是就幾個小時以後)能夠通過的可能原因是:與精确性低的時間源同步或網絡條件不太好造成了伺服器和用戶端之間的時間差。

繼續閱讀