3

我有许多使用 Microsoft MVC4 Web Api 创建并使用 WIF 和使用 WS-Fed 的 Windows Azure Active Directory (WAAD) 保护的 Web 服务。

我还有一个纯 HTML5/Javascript 单页应用程序 (SPA) 客户端,需要访问这些 Web api。

Javascript 中是否有任何已知的示例/库来处理与 WAAD 的交互

  • 确定用户是否已经登录。
  • 登录用户并在需要时获取安全令牌
  • 交互完成后退出。

如果没有,是否有任何推荐的链接到实现类似功能所需的文档。

4

1 回答 1

3

页面 (SPA) 是否来自托管 API 的同一台服务器?(同一个域?)如果是这样,那么一切都应该“正常工作”。

WAAD 不参与了解用户是否登录。这通常应该取决于您的网站。但是,令牌过期确实起作用,如果提供的令牌被 API 拒绝,您将不得不像往常一样重新验证用户。

如果 API 在不同的站点上,但在同一个高级域(app.yoursite.com 和 api.yoursite.com)上,您仍然可以在下面设置 cookie 并使用 WIF。确保在两个站点上设置相同的机器密钥。

如果 API 位于完全不同的域中,那么您必须使用不同的方法。在这种情况下,我的建议通常是使用 Json Web Tokens (JWT) 和 CORS。

如果您在 WAAD 实例中配置 ACS 命名空间,我认为 WAAD 可以为您提供 JWT。看看这个描述使用 JWT 保护 WebAPI 的过程的文档(它不是特定于 WAAD,但机制是相同的)。

于 2013-04-26T15:29:20.690 回答