Active-Directory

使用 CNAME DNS 記錄時出現 Kerberos 錯誤 APP_MODIFIED

  • September 25, 2015

我有一個生產伺服器,我稱之為CONTOSO\MachineA,執行 SQL Server。CONTOSO\MachineB我有一個執行 IIS的開發伺服器,我稱之為。兩台伺服器都執行 Windows Server 2008。我有一個域使用者,我將其稱為CONTOSO\MyAppSvc. 我有兩條 CNAME 記錄,myapp => MachineA並且myappdev => MachineB.

我的目標是讓(內部網)客戶端連接到 IISMachineB並通過 Windows 身份驗證進行身份驗證,然後讓應用程序模擬它們並以MachineA自己的身份連接到 SQL。

MachineB 正在執行另一個 SQL Server 實例以進行測試,並且我已經通過執行SELECT * FROM [MachineA].[My App DB].App.SomeTable通過SSMS (on MyWorkstation) => SQL Server (on MachineB) => SQL Server (on Machine A).

MyApp在 IIS 上MachineB,設置了模擬和 Windows 身份驗證(僅限協商)並在MyAppPool其中執行,以MyAppSvc. system.webServer/ security/ authentication/ windowsAuthentication @useAppPoolCredentials是真的,@useKernelMode也是假的。MachineB並且MyAppSvc對於無限制的委託都值得信賴。MyAppSvc:HTTP/myapp和上有兩個 SPN HTTP/myapp.contoso.local

使用wireshark,當我嘗試瀏覽時看到以下內容http://myapp/aPage

  • 我的工作站 => 機器 B

    • 獲取 /aPage
    • 主持人:myapp
  • MachineB => 我的工作站

    • 401未經授權
    • WWW-認證:協商
  • 我的工作站 => 機器 B

    • 獲取 /aPage

    • 主持人:myapp

    • 授權:票:

      • 領域:CONTOSO.LOCAL
      • 名稱:HTTP/MachineB.Contoso.local
  • MachineB => 我的工作站

    • 401未經授權

    • WWW-認證:

      • 錯誤程式碼:ERR-MODIFIED
      • 領域:CONTOSO.LOCAL
      • 下載:MyAppSvc

問題在於 DNS 條目是 CNAME 記錄而不是 A 記錄,以及 SPN 是為主機名MyApp而不是機器名設置的事實MachineB。解決方案是將 DNS 條目更改為MyApp直接指向 IP 地址的 A 記錄,MachineB或者添加 SPNHTTP/MachineBHTTP/MachineB.Contoso.local(舊的可能會被刪除)。

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