本文介绍如何为编辑器启用其他 iFrame 属性。
先决条件
在清单中启用沙盒放松时,会发生以下情况:
AAD 许可范围:你的工作负载请求两个许可范围:
- 基础架构范围 - 任何工作负荷正常运行所需标准范围
- 结构放松范围 - 特别适用于沙盒放松功能的另一个范围
用户同意流程:当用户首次访问启用了沙盒松散策略的工作负载时,系统会提示他们同意这两个权限。 如果他们拒绝,则 iFrame 不会加载。
其他 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 允许在开发模式下放宽沙箱限制,无需征得用户同意。