2010-07-15 81 views
0

我有需要使用SAML令牌访问WCF Web和数据服务的WinForms和ASP.Net应用程序。使用SAML的WCF Web服务和数据服务

我一直在寻找Windows Identity Foundation(WIF)来使WCF服务能够使用来自STS-IP的SAML令牌。

在客户端上,我是否打电话给STS并获取SAML令牌,然后将令牌传递给WCF服务?如果是这样,我如何获得令牌然后传递给WCF?

客户是否通过用户对WCF Web服务,它得到一个SAML令牌,并就执行操作的凭据(用户名/密码)?

我的理解是WCF Data Services使用REST。那么SAML如何与REST协同工作?

回答

1

可以通过活动客户端场景(WinForms)中的WS-Trust检索SAML令牌。 WS-Trust描述了STS提供的一些获取令牌的服务(Request for Security Token,RST)。令牌为信赖方(WCF服务)签名并可通过WS-Securtiy头传递给它。当然,某些证书必须传递给STS以获得有效的令牌。

在被动的情况下(ASP.Net)它有点不同。网络应用程序通常使用STS处理其用户认证。所以用户有一个有效的关联SAML令牌。 WS-Trust用于获取对依赖方有效的令牌。然后与上面相同的程序。

依赖方(WCF服务)仅处理具有有效SAML令牌的请求。它永远不会为用户获取令牌。所有通过用户名/密码和处理认证后,正是你想避免与基于声明的身份;-)

我想你看看来自MS的"A Guide to Claim-Based Identity and Access Control。当然,WS-Trust/WS-Security与SOAP Web服务一起使用。

+0

感谢您的链接和信息。我仍然不清楚客户端(WinForms或ASP.Net Web应用程序)如何将令牌传递给WCF Web服务。此外,这将如何与REST和WCF数据服务一起工作。 – 2010-07-26 11:13:17

+0

根据http://www.leastprivilege.com/SecuringWCFDataServicesUsingWIF.aspx,它似乎是一个相当手动的过程。 – spa 2010-07-27 15:18:02