2012-02-07 109 views
1

我正在尝试创建一个OData服务,该服务将使用由ACS提供的身份验证&授权。用ACS对IdP进行身份验证后显示SWT令牌

我能够配置ACS,但现在我需要为服务的用户提供能够生成他们的SWT令牌以将其添加到“授权”标头中的能力。我虽然要创建一个网页,将提供可用的IdP列表,并将成功验证后显示SWT令牌。

怎么办?

+0

这听起来像你想举办一个网站,将像一个RP,将用户重定向到ACS,然后到身份提供者和背部,并那么只需显示从ACS接收的SWT。如果是这样SCB的链接应该给你的代码,你需要做到这一点,但我很想知道更多关于你的情况。你的OData客户端的性质是什么?例如,您是否有一个代表用户进行OData呼叫的网站? – 2012-02-08 22:17:58

+0

我的最终目标是创建使用现有OData(.NET)服务的JavaScript应用程序。我想用ACS来保护OData服务。目前我正在努力检索应该在调用我的服务时由Javascript应用程序插入到授权标头中的SWT令牌。 – Glaxalg 2012-02-09 20:02:37

回答

2

SCB的链接在这里一个良好的开端。这听起来像是您的OData服务,您希望托管一个能够获取和缓存由ACS发布的SWT令牌的网站,以便它可以用来代表用户对您的OData服务进行经过验证的调用。

您可以使用基于WIF的网站(如ACS sample)执行此操作,但您需要提供自己的自定义安全令牌处理程序,以便它了解SWT令牌,而WIF本身不支持该令牌。

查看april 2011 identity training kit提供了如何做到这一点的线索。例如,您可以找到在Windows Phone 7示例中的WIF库上构建的SimpleWebToken和SimpleWebTokenHandler类。查看该演练的步骤38,其中显示了如何将SimpleWebTokenHandler添加到您网站的web.config中。

有了这些工作,您还需要在web.config的microsoft.identityModel/service部分中配置saveBootstrapTokens =“true”。这样一来,你的网站可以抓住SWT令牌就像这样:

SimpleWebToken swt = ((IClaimsIdentity)HttpContext.Current.User.Identity).BootstrapToken as SimpleWebToken 
+0

我正在做这样的事情。我得到引导的令牌并能够将其传输到客户端。它看起来像这样:http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier = HM81Sv2xnRD6P%2bm2W2T%2feBAfAhH2ZTMMxSBBOQ1Rxqs%3d&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010 %2f07%2fclaims%2fidentityprovider = URI%3aWindowsLiveID&受众= HTTP%3A%2F%2f77.75.160.102%3a48451%2F&ExpiresOn = 1348788305&发行= HTTPS%3A%2F%2ftraffictheory.accesscontrol.windows。net%2f&HMACSHA256 = hLqNJd%2b1ZzgxqYY%2fXGQuOdmNpHBmWy0X7n1hO0mPVrY%3d问题是: – 2012-09-28 00:16:55

+0

从客户端我不知道如何处理这个令牌,它是否应该直接设置到认证头中? – 2012-09-28 00:17:21

+0

现在我的网站在FederatedAuthentication.WSFederationAuthenticationModule上遇到身份验证失败事件 – 2012-09-28 00:18:12

1

如果我正确理解你的问题,你正试图显示一个列出可用提供者的页面。

微软有一个很好的例子来说明如何连接ACS,其中包括显示自动生成的提供程序列表。

http://www.windowsazure.com/en-us/develop/net/how-to-guides/access-control/

在问候挂钩的OData到ACS的数据访问团队还必须通过一系列在他们的博客非常好走。

http://blogs.msdn.com/b/astoriateam/archive/2011/01/20/oauth-2-0-and-odata-protecting-an-odata-service-using-oauth-2-0.aspx

相关问题