上我有以下設置:WCF Kerberos委派到服務在同一臺機器
Client -> MiddleWS (ISS-hosted WCF) -> DestWS1 and DestWS2 (Self-hosted WCF services)
所有的機器上使用Active Directory一個內聯網運行。我需要能夠將來自客戶端的憑證傳播到DestWS1和DestWS2(這兩個憑據在同一臺服務器上的自託管環境中運行,但具有不同的地址)。如果我從客戶端向MiddleWS發出一個請求,然後向DestWS1或者DestWS2發出請求,一切正常。但是,如果我想從MiddleWS向DestWS1和DestWS2發出兩個後續請求,則第二個請求不會成功(提供權限問題)。
DestWS1和DestWS2必須具有不同的地址(f.x.,http://server/DestWS1.svc和http://server/DestWS2.svc)。我有兩個從他們的WSDL生成的WCF客戶端。看起來好像我創建了兩個客戶端(因此有兩個通道),第二個失敗(kerberos令牌發生了一些事情)。如果我只使用一個客戶端,但從它向同一服務進行兩個調用,則這兩個請求都可以正常工作。一旦我關閉了頻道,令牌就不能再傳輸了,看起來像。
任何有類似問題的人?
你有沒有配置適當的SPN和AD的代表團?什麼是錯誤? –
是的,在中間服務器上啓用委派並且有SPN。使用網絡監視器看起來很好(即與DC通信時沒有錯誤)。 我得到的錯誤是用戶沒有權限。從這個錯誤我可以看到用戶是我的機器(MiddleWSServer $),而不是我的AD用戶。 –