2

我的任務是構建一個基本的管理應用程序。 該應用程序需要一個ASP.NET前端,該前端使用WCF與許多後端服務通信。ASP.NET - > WCF服務需要Windows身份驗證

一個要求是應用程序的用戶使用Windows身份驗證進行身份驗證。如果應用程序邏輯包含在ASP.NET應用程序中,我可以做到這一點,但我不知道如何在後端WCF服務中執行身份驗證?

  • 是否可以將憑據傳遞給WCF服務並讓它執行身份驗證?

回答

3

這取決於...(注大部分是基於HTTP/IIS作爲傳輸,可能是不同的,如果使用TCP或其他綁定)

WCF本身可以被設置爲使用傳輸或消息使用當前運行的憑據進行安全

如果WCF服務(它需要使用當前憑據談什麼)是在同一個盒子作爲ASP> NET前端,你可能會好起來

...否則可能會走向爲「Double Hop身份驗證」麻煩。基本上,Windows身份驗證將在Web服務器上獲得「模仿」身份,這在本地很好,但它沒有權限從Web服務器進行身份驗證。要做到這一點,你需要一個「授權」身份。

我知道獲取委派身份的選項是Kerberos和基本身份驗證。

所以,如果當你說「windows身份驗證」,你真的意味着每個人(客戶端和所有服務器)都在同一個AD域上,你可以。

0

我有一個使用Windows身份驗證的ASP.NET站點,需要調用啓用了匿名和Windows身份驗證的WCF服務。我遇到的問題是將Windows憑據傳遞給WCF服務。

要做到這一點,我做了以下

  1. 在站點的Web.config,我確信我的WCF綁定使用Windows身份驗證: 安全模式= 「TransportCredentialOnly」

    運輸clientCredentialType =「Windows」

  2. 在IIS中,我使用.Net 4和經典管理流水線模式創建了應用程序池

  3. 在我的網站身份驗證設置

    匿名驗證 - 禁用

    ASP.NET模擬 - 啓用

    Windows驗證 - 啓用

這是對我工作。