将 Azure ACS(访问控制服务)与 ASP.NET Web API 结合使用



我现在正在一个项目中使用新的 ASP.NET Web API,这将需要用户身份验证和授权才能执行一些操作:例如,更新配置文件页面。

在不使用 API 要求的 MVC 3 的同一项目的以前版本中 ASP.NET 我在使用 Azure ACS 和基于角色的访问控制(基于本教程(方面取得了很大成功。

我希望能够通过 Web API 再次使用 ACS,但我不了解 ACS 的工作原理,无法知道是否支持此功能。是否有可能/我可能会遇到任何挑战?

但我不明白 ACS 如何很好地工作,无法知道这是否受支持。

ASP.NET Web API允许我们构建REST服务。ACS 支持任何类型的 REST 服务。本文中描述的常规声明验证过程将起作用。我们只需要将 WCF 更改为 Web API。

此致敬意

徐明.

根据我的经验,您指出的链接可能无济于事,因为它用于客户端(WPF/Windows Phone/等(。在服务端使用 ACS,我们将处理索赔,我们可以配置 ACS 以返回我们喜欢的任何索赔。声明可以是用户名,但也可以是角色。例如,我们可以创建一个规则来将特定用户映射到角色,然后 ACS 会将角色声明返回给我们。

但是,如果我们想与 ASP.NET 角色集成,我们需要分析声明(即使它是一个角色声明(,并将声明分配给 Thread.CurrentPrincipal。如果我们将 ACS 配置为返回 SAML 令牌,WIF 会为我们执行此操作。如果 ACS 返回 SWT 令牌,我们需要自己做,或者使用别人为我们编写的库。其中一个库是 DPE。OAuth,由DPE团队编写。你可以从 http://msdn.microsoft.com/en-us/IdentityTrainingCourse_ACSAndWindowsPhone7 那里得到它。虽然本教程告诉我们如何在 Windows Phone 中使用 ACS,但服务端 OAuth 库可以重用。

此致敬意

徐明.

最新更新