2011-12-16 80 views
3

我有一個有趣的情況,我一直無法破解。以下是我的Silverlight應用程序運行的環境。安全模型 - SharePoint 2010 Silverlight Web部件調用WCF服務

我們有一個SharePoint 2010 Intranet,它是應用程序的主要主機。在Web部件頁面上,我們有一個包含應用程序的Silverlight Web部件。我們使用客戶端對象模型來推斷登錄的SharePoint用戶是誰。此應用程序的用戶訪問他們用於登錄的AD域之外的SharePoint網站;這意味着他們有一個AD帳戶,但他們的電腦是不同領域的一部分。 Silverlight應用程序通過SOAP協議通過https調用WCF服務。

問題是,我如何保護這些服務,以便從登錄的SharePoint用戶的上下文中調用唯一有效的請求者是Silverlight應用程序?

每個最終用戶都有一個爲其創建的AD帳戶。 SharePoint網站是一個需要每個用戶使用其AD憑據登錄的Extranet。但是,沒有最終用戶通過屬於域的計算機訪問站點。

我試過使用Windows身份驗證,但我們有一個要求,即在用戶登錄到SharePoint後,不得提示用戶登錄(到Web服務)。我試圖使用客戶端對象模型來將認證/憑證「傳遞」給服務,但沒有運氣。

我們必須在我們開始之前禁用匿名身份驗證,所以我必須找出一種方法來保護服務,但不會讓用戶在應用程序內第二次登錄。

回答

0

開箱無法使用,出於安全考慮,silverlight無法委託給任何外部服務。你可以做的是通過其他方法(例如基於證書)保護你的WCF頻道,並手動發送當前用戶名。在SharePoint端,您可以模擬用戶。

這將是一個相當煩瑣的事情,但去:)

相關問題