如何针对AAD(oauth)

时间:2016-06-02 17:01:59

标签: javascript asp.net-mvc iframe sharepoint oauth-2.0

A(SharePoint Online)页面具有.NET MVC应用程序的iframe。 MVC应用程序位于单独的域中。 SharePoint Online和MVC应用程序都使用AAD并允许访问相同的用户(AAD租户)

现在,当用户打开SharePoint页面(在Windows 7中)时,iframe无法将用户重定向到AAD登录页面(因为不允许这样做 - 请参阅OAuth not working inside an iframehttps://tools.ietf.org/html/draft-ietf-oauth-v2-23#section-10.13

谷歌搜索不成功之后,我决定玩一下这个,然后想出一些有效的东西,但很难看:

  1. 用户登录SharePoint。页面上的iframe是隐藏的
  2. 页面上的JavaScript(jquery)对MVC应用程序进行jsonp调用
  3. 如果通话成功,我们会显示iframe并且很开心

    1. 如果调用失败,我们会将用户重定向到MVC页面(完全重定向)。我们在querystring中携带当前的URL
    2. 用户对AAD进行身份验证
    3. MVC页面将用户重定向回我们的SharePoint Online页面
    4. 现在iframe成功地显示了内容,我们很高兴,除了上面的解决方案有很多代码需要维护:

      • JavaScript重定向逻辑
      • jsonp请求(错误处理不是那么简单。实际上这是基于超时的)
      • 用于重定向用户的额外MVC操作
      • 不理想的ux(一些等待和重定向。后退按钮会导致麻烦)

      什么是更好的解决方案或通常如何解决这些问题?

      (另一个问题是为什么我的家用电脑似乎只在网上登录一次后显示iframe内容)

0 个答案:

没有答案