1

我正在尝试创建一个使用 ACS 提供的身份验证和授权的 OData 服务。

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

怎么做?

4

2 回答 2

2

SCB 的链接是一个很好的开始。听起来除了您的 OData 服务之外,您还希望托管一个能够获取和缓存 ACS 颁发的 SWT 令牌的网站,以便可以使用它代表用户对您的 OData 服务进行经过身份验证的调用。

您可以使用ACS 示例中的基于 WIF 的站点来执行此操作,但您需要提供自己的自定义安全令牌处理程序,以便它理解 SWT 令牌,而 WIF 本身并不支持这些令牌。

查看2011 年 4 月的身份培训套件,它提供了有关如何执行此操作的提示。例如,您可以在 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
于 2012-02-09T22:03:41.610 回答
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

于 2012-02-08T00:12:19.650 回答