如何在服务器端和客户端脚本之间共享Azure Active Directory身份验证?

时间:2015-06-09 17:51:59

标签: authentication azure oauth-2.0 azure-active-directory

我目前有一个使用 Microsoft.Owin.Security.WSFederation 程序包的MVC应用程序,可以使用Azure的Active Directory进行身份验证。这使我可以使用控制器上的 Authorize 属性将用户重定向到Microsoft登录站点。

我现在要求添加对将在其他域上托管但将使用相同AD存储的WebAPI项目的访问权限。

我已设法使用Azure提供的ADAL JS library汇集了一些内容,但这会产生以下过程:

  • 用户访问网站并重定向到Azure登录
  • 用户登录并返回站点
  • JS代码检查登录并重定向到Azure
  • 用户已经过身份验证,因此使用令牌
  • 重定向回网站
  • JS选择令牌,存储令牌并重定向到原始页面

所以它有效,但涉及4个重定向,这似乎是一个巨大的开销。

我认为可能有某种方法可以从WSFederation成功时返回的授权凭证中提取持有者令牌,但我无法在数据中看到类似内容。而且,即使我可以,我也不知道如何能够从客户端脚本中刷新令牌。所以我强烈怀疑我做了一些根本错误的事情。

在两个站点之间共享身份验证的最佳流程是什么?

0 个答案:

没有答案