【问题标题】:Which security context an iframe uses to load its source page?iframe 使用哪个安全上下文来加载其源页面?
【发布时间】:2014-10-12 00:00:42
【问题描述】:

我有一个共享点页面,里面是另一个 asp.net 站点的 iframe。

1) 我只是想知道 iframe 使用哪个安全上下文加载 asp.net 页面? * 当前登录用户到共享点 * 当前windows身份(登录PC的人)

在我的测试中,显然是后者,但不太确定。

2) 如何设置 iframe 以使用 sharepoint 用户凭据加载 asp.net 页面?

感谢您的帮助。

【问题讨论】:

  • 我认为您可能需要提供更多信息。正在使用什么形式的身份验证(对于两个站点)。两个站点都托管在哪里(同一服务器上的不同站点?)。如果您在 Sharepoint 上进行 Windows 身份验证,并且 IFRAMEd ASP.NET 站点位于完全不同的外部网站上,那么您将不走运,因为您将混合/匹配您的身份验证凭据。
  • 我把它留给你建议认证。他们俩目前都在使用 NTLM,但我怀疑这是正确的身份验证。不同服务器上的不同站点。即使我将两个站点放在同一台服务器上,我认为它不会有所不同,不是吗? iframe 仍将使用用户的凭据而不是 SharePoint 凭据 - 或者如果错误请更正我。

标签: security sharepoint iframe credentials


【解决方案1】:

如果您在 iframe 中加载内容,这一切都发生在客户端上,因此它相当于导航到另一个站点上的页面。除非您有某种 SSO 机制,否则您将需要在该其他站点上再次进行身份验证。

【讨论】:

  • 感谢 SPDoctor。我在第二个站点上启用了 SSO,但 SSO 读取的是 Windows 身份而不是共享点身份。那么如何将sharepoint用户身份传递给iframe呢?
  • 它实际上并不是这样工作的——你不能将身份传递给周围,也不能传递给 iframe。 iframe 只是指示浏览器导航到另一个站点,就像您在新的浏览器窗口中打开它一样。
【解决方案2】:

一种方法是这样的:

  1. 从自定义 sharepoint sso 登录页面(您可以使用 FBA 或 Windows 身份验证),向身份验证 Web 服务发出请求,该服务接受用户的用户名、散列密码和域,并将它们存储在内存中或数据库以及 userKeyToken。它验证输入参数,当它们有效并且可以通过身份验证时,它会发回一个 userKeyToken,这是一个代表登录用户的加密值。可以使用对称加密算法;不确定哪一个最安全。

  2. 客户端站点上的登录页面,将此密钥存储为 cookie 或在其会话中;也许会话更好,因为它在内存中。

  3. iframe 将此密钥作为查询字符串(或 cookie?)发送到第二个站点,第二个站点检查 userKeyToken,如果它仍然有效则继续...

希望它能帮助遇到同样问题的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 2011-11-13
    • 2018-03-08
    • 1970-01-01
    • 2019-07-03
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多