【问题标题】:Accessing Azure App Proxy service from SharePoint Online从 SharePoint Online 访问 Azure 应用代理服务
【发布时间】:2017-09-24 13:09:55
【问题描述】:

我正在验证我们是否可以在客户端代码中访问通过 Azure App Proxy 向外部公开的内部本地服务。

事物的结构 1. 内部服务 2、Azure App Proxy对外暴露内部服务 3. SharePoint Online 页面 - 在此页面上,我尝试验证是否可以通过应用代理访问服务

流动 1. 用户登录 SharePoint Online 网站 2. 导航到从 azure 应用代理服务中提取数据的页面 3. 用户应该可以看到通过 Azure App Proxy 传递的内部服务的数据,而无需任何身份验证挑战

上述流程可行吗?我尝试了相同的方法,但在对 Azure App Proxy 的调用停止并显示状态码 307 时失败。我怀疑该调用被视为未经身份验证,因此失败。

查看了我访问 SharePoint Online 时传递的各种 cookie - FedAuth 和 rtfa

查看了当我直接访问 Azure App Proxy 并通过登录进行身份验证时传递的各种 cookie - AzureAppProxyUserSessionCookie、ASP.NET_SessionId、AzureAppProxyAccessCookie

考虑到每个经过身份验证的会话都有不同的 cookie 集,我怀疑,所需的流程是合理的。

【问题讨论】:

  • 307 重定向是预期的,它与身份验证问题无关。 Azure AD 会将此请求重定向到 Azure 应用代理(请参阅 here)。要缩小此问题的范围,您可能需要通过参考this link 来检查 Azure 应用代理是否正常工作。
  • 谢谢飞。 Azure 应用代理工作正常。因此,如果我使用它的 url 在浏览器中直接访问它,我会收到身份验证挑战。身份验证后,我可以成功地看到应用代理的结果。我希望在客户端代码中使用相同的工具。
  • 您介意分享更多关于客户端代码方法的细节吗?根据我的理解,Azure 应用代理需要使用 HTTP/HTTPS 协议(参考Application Proxy prerequisites)。
  • 这是从 SharePoint Online 网页到 Azure 应用代理 URL 的 jQuery ajax 调用。

标签: azure proxy azure-active-directory sharepoint-online


【解决方案1】:

目前,Azure 应用代理只允许预认证用户。为此,Azure 应用代理需要 Azure AD 颁发的令牌进行身份验证。当您从 SharePoint 在线页面发起 jQuery ajax 调用请求时,它不包含所需的令牌。

因此,这取决于在您发送请求之前是否可以从您的 AJAX 调用中获取令牌。可以尝试对鉴权请求进行抓包,在一个隐藏的IFrame中构造请求,看是否可以模拟获取token的进度。

有关连接器的更多详细信息,请参阅以下链接:

How to provide secure remote access to on-premises applications

出于安全考虑,此文档很有帮助:

Security considerations for accessing apps remotely with Azure AD Application Proxy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    相关资源
    最近更新 更多