authentication - 使用 REST 通过 ACS 对 Microsoft 帐户用户进行身份验证

标签 authentication azure acs

我想利用 ACS 对网站上的 Windows 帐户用户(以及将来来自其他身份提供商的最终用户)进行身份验证。

我发现了很多有关 ACS 的资源,但大多数都围绕使用 WIF/在 UI 层中使用托管代码来验证用户。我想避免这种情况。是否可以通过使用 javascript/jQuery 对 ACS 进行基于 REST 的调用来检索 Microsoft 帐户用户的 token ,从而从 ACS 检索 token ?

我看到的一个很接近的例子是这个链接,但是它使用服务身份而不是利用身份提供者。 http://code.msdn.microsoft.com/windowsazure/MVC4-Web-API-With-SWT-232d69da

这是我的最终目标:

  1. 该网站将有两层:UI 层 (MVC 4) 和服务层 (MVC WebAPI)。这两个层都需要在 Azure 中独立扩展。
  2. 我想让 UI 层调用 ACS 来确定当前 session 是否已通过身份验证。如果是,我希望 ACS 将 token 返回给客户端。我想将该 token 存储在客户端上,以便在步骤 3 中使用。
  3. 用户登录后,我希望客户端对服务层进行基于 REST 的调用,并在每个请求的 header 中传递 Microsoft 帐户/ACS 用户 token ,从而完全绕过 UI 层第二个服务请求。服务层将根据每个请求对用户进行身份验证。
  4. 客户端将通过重定向到登录页面或显示结果来处理来自服务层的响应代码(200、401 等)。

我不确定步骤 2。客户端浏览器如何从 ACS 检索 token 并将其传递到服务层?

我本质上想做维托里奥描述的here ,但我想使用 MVC4 Web 应用程序而不是 Windows 8 商店应用程序。

最佳答案

在步骤 2 中,您的 MVC4 Web 应用程序是依赖方,因此依赖于主体/用户提供的 token 中的声明。因此,它实际上只是将用户重定向到 ACS 进行身份验证,而不是 UI 调用 ACS。无论如何,根据您的要求和描述,我相信这就是您正在寻找的解决方案。

http://blogs.msdn.com/b/vbertocci/archive/2013/01/09/using-the-jwt-handler-for-implementing-poor-man-s-delegation-actas.aspx

希望这有帮助。 -瑞克

关于authentication - 使用 REST 通过 ACS 对 Microsoft 帐户用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15347668/

相关文章:

c# - ASP.NET Core 2.0 LDAP 事件目录身份验证

node.js - passport.js RESTful 身份验证

node.js - 当调用post方法时,当密码对应时,它会进入if语句,但我的if语句中的res被忽略,为什么?

Azure ACS 和 SimpleMembership

php - Laravel 什么是守卫?

azure - Azure 基础设施上的 DDoS 攻击缓解

c# - Azure B2C。使用 Azure 门户编辑自定义属性

javascript - 如何让用户看到正在下载的 Azure blob 存储文件,而不是在 Angular 的网络选项卡本身中下载完整的流

c# - 跨计划发送自定义 ACS claim 的最佳方式是什么?

azure - Azure 上的 Kubernetes : connectex