如何:调整 iFrame 的限制

本文介绍如何为编辑器启用其他 iFrame 属性。

先决条件

在清单中启用沙盒放松时,会发生以下情况:

  1. AAD 许可范围:你的工作负载请求两个许可范围:

    • 基础架构范围 - 任何工作负荷正常运行所需标准范围
    • 结构放松范围 - 特别适用于沙盒放松功能的另一个范围
  2. 用户同意流程:当用户首次访问启用了沙盒松散策略的工作负载时,系统会提示他们同意这两个权限。 如果他们拒绝,则 iFrame 不会加载。

  3. 其他 iFrame 功能:授予许可后,iFrame 会收到以下其他沙盒属性:

    • allow-downloads - 启用从工作负载下载文件
    • allow-forms - 允许向外部服务提交表单
    • allow-popups - 启用打开新的窗口或选项卡

    默认沙盒(无放宽):allow-same-origin allow-scripts 放宽的沙盒(经同意):allow-same-origin allow-scripts allow-downloads allow-forms allow-popups

最佳做法

仅在必要时请求放松沙盒限制,因为每个宽松权限都会带来潜在的安全隐患。

在清单中启用

enableSandboxRelaxation 设置添加到工作负荷清单:

    <RemoteServiceConfiguration>
      <CloudServiceConfiguration>
        <Cloud>Public</Cloud>
        <AADFEApp>
          <AppId>0000000-0000-0000-0000-000000000000</AppId>
        </AADFEApp>
        <EnableSandboxRelaxation>true</EnableSandboxRelaxation>  

重要

必须包含该行 <EnableSandboxRelaxation>true</EnableSandboxRelaxation> 才能启用此功能。

开发模式

对于本地开发,可以使用放宽沙盒限制和通过开发覆盖绕过同意。 添加到开发参数

const devParameters = {
  name: process.env.WORKLOAD_NAME,
  url: "http://127.0.0.1:60006",
  devAADFEAppConfig: {
    appId: process.env.DEV_AAD_CONFIG_FE_APPID,
  },
  devSandboxRelaxation: true
};

注释

该行 devSandboxRelaxation: true 允许在开发模式下放宽沙箱限制,无需征得用户同意。