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

Authentication 如何在服务器端和客户端脚本之间共享Azure Active Directory身份验证?,authentication,azure,oauth-2.0,azure-active-directory,Authentication,Azure,Oauth 2.0,Azure Active Directory,我目前有一个MVC应用程序,它使用Microsoft.Owin.Security.WSFederation包与Azure的Active Directory进行身份验证。这使我可以使用控制器上的Authorize属性将用户重定向到Microsoft登录站点 我现在需要添加对WebAPI项目的访问权限,该项目将托管在不同的域中,但将使用相同的广告商店 我已经设法使用Azure提供的工具整合了一些东西,但这提供了以下过程: 用户访问站点并被重定向到Azure登录 用户登录并返回到站点 JS代码检查登

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

我现在需要添加对WebAPI项目的访问权限,该项目将托管在不同的域中,但将使用相同的广告商店

我已经设法使用Azure提供的工具整合了一些东西,但这提供了以下过程:

  • 用户访问站点并被重定向到Azure登录
  • 用户登录并返回到站点
  • JS代码检查登录并重定向到Azure
  • 用户已通过身份验证,因此使用令牌重定向回站点
  • JS获取令牌,存储它,并重定向到原始页面
所以它是可行的,但涉及4个重定向,这似乎是一个巨大的开销

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

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