回答
答案并不简单,但下面的步骤构成的“建议模式”和下面的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. WIF安全令牌缓存
- 2. Wif安全的WCF服务,缓存令牌 - 异步wcf方法丢失身份
- 3. 将相关令牌传递给WCF服务?
- 4. 将令牌/ cookie传递给WCF服务的最佳策略?
- 5. 将SAML令牌传递给Asp.Net的WCF服务
- 6. 使用WIF安全令牌服务将用户的asp.net会话限制为1
- 7. 将业务层传递给WCF服务
- 8. 如何通过WCF路由服务传递STS令牌?
- 9. 将大文件传递给WCF服务
- 10. 将字典传递给WCF服务
- 11. 将类传递给WCF服务
- 12. 将数组传递给WCF服务
- 13. 使用带WCF的WIF STS令牌
- 14. WCF如何将用户名令牌发送到WCF服务
- 15. WCF:身份验证服务或基于令牌的安全性?
- 16. WCF错误处理来自安全令牌服务
- 17. 客户端应该如何将Facebook访问令牌传递给服务器?
- 18. WCF路由服务+ WIF安全+ SL =悲伤
- 19. 将身份验证令牌传递给wcf一次
- 20. 基于令牌的Web服务安全
- 21. Sharepoint 2010中的安全令牌服务
- 22. 如何将用户证书从服务器安全地传递给客户端?
- 23. 如何将所有对象属性传递给WCF服务?
- 24. 如何在Visual Studio中将Soap Header传递给SOAP WCF服务?
- 25. 如何将ASP.NET身份验证传递给WCF服务
- 26. 如何将客户端对象传递给WCF服务
- 27. 如何将Uri中的数组传递给WCF WEB API服务?
- 28. 如何将请求标头传递给跨域的WCF服务?
- 29. 如何将数据库凭据传递给wcf服务?
- 30. 如何将LINQ查询传递给WCF服务
我希望你会得到一个答案。这是默认设计:Web App - > WCF服务。我们鼓励.Net开发者使用WIF,但我所看到的实施建议不是规定性的。 – 2010-10-01 15:52:14