回答
答案並不簡單,但下面的步驟構成的「建議模式」和下面的MSDN文章中記載: Identity Delegation with AD FS 2.0 Step-by-Step Guide
總之
允許您的Web應用程序訪問特殊令牌(Bootstrap令牌),該令牌可用於代表使用STS進行身份驗證的用戶請求服務,方法是添加一個i TEM在web.config:
saveBootstrapTokens="true"
創建WCF WIF功能的服務和STS之間新的信任,因此「知道」是該服務可以作爲另一個身份驗證的用戶(ActsAS)採取行動。 希望你使用ADFS v2,因爲我想象用ActsA寫一個自定義STS的所有管道是行不通的。
當調用WCF服務創建專門傳遞BootStap令牌的新渠道:
channel = factory.CreateChannelActingAs(callerToken);
我有點擔心的性能,因爲所有頻道創建的,以及如何WCF服務和Web應用程序需要與STS服務進行交談。
@大衛埃文斯 - 我沒有追加到你的答案的聲望。但是,我相信最後一步是不正確的,並且可能非常混亂,因爲您可以在ActingAs調用中有效地傳遞引導令牌。
問題是您聲明您應該傳遞引導令牌。然而,發生的事情是,在建立ActAs信任的過程中,會創建ActAs \ Issued Token。該令牌不是引導令牌。事實上,您需要用戶的引導令牌來創建這個新的令牌,它代表依賴派對作爲特定的經過驗證的用戶。
因此,第二步是Create ActAs標記(涉及您提到的所有內容)。 第三步將使用ActAs令牌調用WCF服務,而不是引導令牌。
Microsoft使用WIF 4.5提供具有不同身份示例的Identity Traningskit。示例InvokingViaDelegatedAccess in there demonstrates perfectly the usage of the ActAs- delegation scenario. However, it cost me days to bring the
InvokingViaDelegatedAccess`示例啓動並運行。在做了很多解決方法之後,我終於能夠運行設置並執行這個例子。我寫了一個安裝手冊,你可以在這裏下載:
enter link description here 享受))
的例子但是在具有的Visual Studio 2012安裝在Windows 7虛擬機上運行。
這是正確的,你必須保存引導令牌。登錄到Web應用程序後,必須首先緩存從SecurityTokenService發出的令牌。使用WIF 4.5這可以用在web.config以下命令來完成:
<identityConfiguration saveBootstrapContext="true">
的WCF的ChannelFactory具有然後不同的方法(CreateChannelWithActAsToken,CreateChannelWithIssuedToken,WithOnBehalfOfToken)從後端應用到WCF支撐委派方案服務。使用ActAs方案,CreateChannelWithActAsToken正在提取引導令牌,將引導令牌發送給STS,STS使用新(或複製)的聲明值創建新的SecurityToken,然後使用ActAs- SecurityToken調用後端服務。使用此方法,每次調用服務時都會發佈一個新的ActAs- SecurityToken。如果你不想這樣做,CreateChannelWithIssuedToken可能會成爲你的bether方法,因爲你可以將緩存的標記緩存到一個cookie中,並重新用於其他調用。
/帕特里克·塞勒,開發.NET www.itconsulting24.com
- 1. 將ADFS令牌傳遞給服務
- 2. WIF安全令牌緩存
- 3. Wif安全的WCF服務,緩存令牌 - 異步wcf方法丟失身份
- 4. 將相關令牌傳遞給WCF服務?
- 5. 將SAML令牌傳遞給Asp.Net的WCF服務
- 6. 將令牌/ cookie傳遞給WCF服務的最佳策略?
- 7. https上的wcf安全令牌服務
- 8. 將安全令牌傳遞給非IIS服務的最佳方式
- 9. 使用WIF安全令牌服務將用戶的asp.net會話限制爲1
- 10. 將業務層傳遞給WCF服務
- 11. WIF 4.5 BootstrapContext安全令牌null
- 12. 如何通過WCF路由服務傳遞STS令牌?
- 13. 將類傳遞給WCF服務
- 14. 將NetworkCredentials對象傳遞給WCF服務
- 15. 將大文件傳遞給WCF服務
- 16. 將數組傳遞給WCF服務
- 17. 將DataSet傳遞給WCF服務
- 18. 將字典傳遞給WCF服務
- 19. 通過安全令牌WCF
- 20. 使用帶WCF的WIF STS令牌
- 21. WCF如何將用戶名令牌發送到WCF服務
- 22. 將Windows用戶'令牌'傳遞給WCF進行認證
- 23. AngularJS服務InterDependency將驗證令牌傳遞給Http標頭
- 24. 如何將JSON參數傳遞給/使用RESTful WCF服務?
- 25. WCF錯誤處理來自安全令牌服務
- 26. WCF:身份驗證服務或基於令牌的安全性?
- 27. WCF路由服務+ WIF安全+ SL =悲傷
- 28. 客戶端應該如何將Facebook訪問令牌傳遞給服務器?
- 29. 將身份驗證令牌傳遞給wcf一次
- 30. Sharepoint 2010中的安全令牌服務
我希望你會得到一個答案。這是默認設計:Web App - > WCF服務。我們鼓勵.Net開發者使用WIF,但我所看到的實施建議不是規定性的。 – 2010-10-01 15:52:14