概述
工作空间管理员可以使用 SharePoint 控制,允许访问经批准的网站集、阻止访问指定网站集,并排除带有指定 Microsoft Purview 敏感度标签的受支持文件。
SharePoint 网站集也称为 SPSite,可以包含多个网站。网站集规则适用于整个网站集,同时受每个用户现有 Microsoft 权限的约束。它不会授予用户访问其在 Microsoft 365 中无权访问的内容的权限。
网站限制适用于受支持的 SharePoint 搜索、浏览、文件检索以及读写操作。OneDrive 访问权限单独管理。
请选择符合你所需策略的访问模式:
允许的网站:当允许列表非空时,用户只能通过应用访问列表中的网站集。
阻止的网站:用户可以访问拒绝列表之外的网站集,但仍受其 Microsoft 权限的约束。
同一时间只能有一个列表包含条目。空的允许列表不会阻止所有网站。当两个列表都为空时,SharePoint 网站限制将被解除;Microsoft 权限和其他已配置的控制仍然适用。
可用性
这些控制和工作空间管理 API 需要在你的工作空间中启用后才能使用。可用的控制包括网站集允许列表、网站集拒绝列表、CSV 网站导入和敏感度标签排除项。
规则适用于整个网站集。这些网站集控制不支持将范围精确限定为单个网站、文件夹或文件,也不包括执行 Microsoft Sites.Selected 权限限制。
开始之前
确定组织希望允许或阻止访问的网站集。
获取每个网站集的 GUID。完整的 Microsoft Graph 网站 ID 中,中间的值就是网站集 GUID。管理 API 使用网站集 GUID;界面中的 CSV 导入工具也可以从 Graph 网站 ID 三元组中提取 GUID。
在 ChatGPT 权限设置和 Microsoft Entra 中启用 SharePoint 应用所需的 Microsoft 权限,包括
Sites.Read.All和Files.Read.All。这些控制在 OpenAI 端筛选访问范围,并不能替代 Microsoft 的委托权限。如需配置敏感度标签排除项,请向 Microsoft 365 或 Purview 管理员索取每个非加密标签的不可变 GUID。
如需通过 API 进行管理,请获取工作空间 UUID 和 ChatGPT 工作空间管理员密钥;如果需要解析 SharePoint URL,还需获取 Microsoft Graph 令牌。这两种凭据的用途不同。
关于 OpenAI Cookbook
OpenAI Cookbook 是 OpenAI 公开的示例代码和指南合集。本文使用其中的 SharePoint 网站访问指南和 Python 管理脚本,两者均托管在 GitHub 上。你可以在浏览器中打开这些链接来阅读文件。如需运行脚本,请先下载,再按照指南中的设置和命令说明操作。
本文中,“Cookbook”指上述 SharePoint 指南,“Cookbook 工具”指链接中的 Python 脚本。如需查看命令示例或通过 API 管理允许列表,请参阅这些资料。
设置 API 管理凭据
注意:只有工作空间管理员才能创建管理员密钥。了解更多。
创建 ChatGPT 工作空间管理员密钥
打开 ChatGPT 管理控制台,并选择目标工作空间。
前往凭据,并选择管理员密钥。
创建权限为受限的密钥,并将应用设为写入。
请妥善保管密钥。此密钥可授权读取和更改工作空间的 SharePoint 策略。
所需权限为 chatgpt.enterprise.apps.write。请注意,API 平台密钥和 Microsoft Graph 令牌均不能替代 ChatGPT 工作空间管理员密钥。
有关更多信息,请参阅:在“凭据”选项卡中管理管理员密钥。有关脚本的凭据环境变量和安全输入示例,请参阅 Cookbook 凭据说明。
获取 Microsoft Graph 令牌
请使用组织批准的 Microsoft 身份验证流程。如需进行交互式查询,且组织允许使用 Graph Explorer:
打开 Microsoft Graph Explorer,使用 SharePoint 网站所在租户的工作账户登录。
通过修改权限或同意权限,选择读取网站所需的权限,通常为
Sites.Read.All。如果组织有此要求,请向 Microsoft 管理员申请批准访问。打开访问令牌选项卡,并复制令牌以用于 Microsoft Graph。
有关 Microsoft 的操作说明,请参阅使用 Graph Explorer。
Graph 令牌用于将 SharePoint URL 解析为标识符。ChatGPT 管理员密钥用于读取或更新 ChatGPT 策略。Cookbook 工具仅在执行解析 URL 的命令时需要 Graph 令牌;读取或清空现有允许列表只需 ChatGPT 管理员密钥。
请勿将任何一种凭据放入源代码管理系统、共享文档、截图或日志中。
查找网站集 GUID
使用 SharePoint 网站 URL
使用有权访问该网站的 Microsoft 账户登录后,打开 SharePoint 网站。
在网站 URL 末尾添加
/_api/site/id。例如,使用https://contoso.sharepoint.com/sites/Finance/_api/site/id。复制响应中返回的 GUID。
注意:本文中的示例域名和标识符均为占位符。
使用 Microsoft Graph
Microsoft Graph 返回的网站 ID 由三个以逗号分隔的部分组成:主机名、网站集 GUID 和网站 GUID。配置网站集规则时,请使用中间的值。不同的网站 URL 可能解析为同一个网站集 GUID。
有关查询和标识符的示例,请参阅了解 SharePoint 网站标识符。如需在不更改 ChatGPT 策略的情况下解析多个 URL,请参阅 Cookbook 检查操作说明并使用 Python 管理脚本。
有关 Microsoft 的查询要求,请参阅按路径获取 SharePoint 网站。
管理允许和阻止的网站集
使用工作空间控制设置
在工作空间中打开 SharePoint 应用的安全控制。
在访问模式下,选择允许的网站或阻止的网站。
将网站集添加到所选列表。也可以使用下文介绍的 CSV 上传功能。
检查更改并选择保存。
检查已保存的策略并测试配置。
通过管理 API 添加的网站会显示在工作空间控制设置中。在界面中添加的网站也可以通过 API 获取和管理。你可以通过任一方式添加或移除条目;添加网站时采用的方式不会限制后续管理方式。
在允许和阻止网站模式之间切换
同一时间只能有一个列表包含条目。在另一种模式下添加条目前,请先清空现有列表并保存更改。然后选择另一种模式,添加目标网站集并再次保存。
清空当前生效的列表并保存后,访问权限会立即改变。清空允许列表会解除其网站访问范围限制;清空拒绝列表会解除其阻止限制。请与其他管理员一起规划切换过程,因为从清空一个列表到保存另一个列表的间隔期间,用户可能能够访问最终策略将限制的内容。
通过 CSV 上传网站集
CSV 上传仅支持网站集。如需按敏感度标签排除文件,请在排除的非加密敏感度标签下添加标签 GUID。
打开安全控制,并选择所需的访问模式。
准备一个包含网站集 GUID 或 Microsoft Graph 网站 ID 三元组的 CSV 文件。整个文件应使用同一种标识符格式。
选择上传 CSV 文件,然后选择文件。
检查导入结果和所选列表。请先解决所有行错误或警告,再继续操作。
选择保存以应用更改,然后检查已保存的列表。
CSV 要求和处理方式:
文件大小上限:1 MB。
表头可选。
每行填写一个网站集 GUID,或使用 Graph 网站 ID 三元组。三元组可以用引号括起来放在一个字段中,也可以拆分为三列。
Graph 三元组会转换为网站集 GUID。导入三元组不会创建精确限定单个网站的规则。
导入会向所选列表添加条目,并保留现有条目。重复的网站集会被去重;导入计数显示的是新增网站集的数量。
混用格式和格式错误的行会被拒绝。如果上传内容仅包含网站 URL,系统会显示警告,且不会添加网站。请先将 URL 解析为网站集 GUID。
上传只会更改列表草稿。只有选择保存后,才会更新工作空间的访问权限。
此处介绍的 CSV 上传功能用于管理网站集。敏感度标签排除项需单独配置。
如果你有包含 SharePoint URL 的 CSV 文件,可以使用 Cookbook 工具的 CSV 工作流解析这些 URL,并通过 API 管理允许列表。其 site_url 或 url 输入所用的格式和工作流,与界面的标识符上传功能不同。
了解策略和请求限制
策略默认最多支持 10,000 个网站集。更高的工作空间策略限额(最多 120,000 个网站集)需要由 OpenAI 启用;规划更大规模的部署前,请联系负责对接的 OpenAI 团队。
单次 API 更改操作和当前的 Cookbook 脚本每个请求最多接受 10,000 个网站集 GUID。提高工作空间策略限额不会提高此单次请求限额。请统计去重后的网站集数量,而非源 URL 数量:多个 URL 可能指向同一个网站集。
使用工作空间管理 API
使用工作空间 UUID 和 ChatGPT 工作空间管理员密钥访问 https://api.chatgpt.com。
有关持续维护的允许列表命令和请求示例,请参阅 Cookbook:
更改前请检查当前策略,更改后再次读取策略,并测试实际访问情况。移除最后一个允许的网站集或清空允许列表,会解除该列表施加的网站访问范围限制。请勿发送空的添加请求,除非你确实希望解除允许列表限制。
公开的 Cookbook 工具目前仅管理允许列表。它不管理拒绝列表或敏感度标签排除项。请使用上述工作空间控制设置完成这些任务。
排除带有敏感度标签的文件
查找标签 GUID
请向 Microsoft 365 或 Purview 管理员索取目标标签的不可变 GUID。请使用 GUID,而不是标签的显示名称。
管理员可以通过 Microsoft Graph 列出标签。令牌需要具备适用的 SensitivityLabel.Read 或 SensitivityLabels.Read.All 权限。根据目标标签的名称找到对应 ID,并检查其保护设置。
有关要求和示例,请参阅列出敏感度标签和敏感度标签属性。这些标签权限与用于解析 SharePoint URL 的网站读取权限相互独立。
添加标签排除项
打开 SharePoint 应用的安全控制。
在排除的非加密敏感度标签下输入各个非加密标签的 GUID。
保存配置,并使用带有被排除标签的受支持文件进行测试。
带有匹配的受支持标签的文件将从 SharePoint 应用结果中排除。带有启用加密的标签的文件默认已被排除。
测试配置
请使用组织批准的测试文件和账户。测试前,请确认用于测试的同一个 Microsoft 账户可以在 SharePoint 中直接访问每个文件。
在允许的网站模式下,当列表非空时,分别检查允许的网站集中的文件和未列出的网站集中的文件。通过应用应只能访问允许的网站集。
在阻止的网站模式下,分别检查被阻止的网站集和未被阻止的网站集中的文件。被阻止的网站集应无法访问;未被阻止的网站集仍受 Microsoft 权限和其他控制的约束。
检查带有被排除敏感度标签的受支持测试文件。该文件不应出现在应用结果中。
通过 API 进行更改后,请对比界面中保存的列表与 API 返回的策略。
上传 CSV 后,请保存更改并重新打开控制设置,确认目标网站集已保留。
如果结果与预期策略不符,请检查工作空间、所选访问模式、已保存的列表、网站集 GUID、标签 GUID、受支持的文件类型以及用户的 Microsoft 权限。请勿将清空列表作为故障排查步骤,除非你确实希望执行由此带来的访问权限更改。
如果控制选项缺失或访问情况不符合预期,需要寻求帮助,请参阅:联系 OpenAI 支持团队。请勿在支持请求中包含管理员密钥或 Microsoft Graph 令牌。
了解限制
网站集规则涵盖整个网站集。它无法将访问范围限定为某个特定的子网站、文件夹或文件。
SharePoint 网站限制不会自动限制 OneDrive 访问。
敏感度标签筛选仅适用于 Microsoft Graph 提供受支持标签元数据的文件,包括受支持的 Office 文档、PDF 和 MP4 文件。
不支持敏感度标签的文件类型(例如 TXT 和 CSV)会被视为未标记文件。如果其他权限和控制允许访问,这些文件仍可访问。此文件类型限制与通过上传 CSV 配置网站访问权限无关。
CSV 上传功能和公开的示例工具均不能配置敏感度标签排除项。本文不介绍批量标签管理 API。
即使策略已保存或 API 返回成功响应,也仍需使用目标账户测试访问情况。
使用 Python 管理工具
完整的示例代码和命令在 OpenAI Cookbook 中维护:
请使用 Python 3.10 或更高版本。该工具使用 Python 标准库。运行前请阅读指南,并通过试运行检查更改。
当前工具从环境变量中读取凭据;请遵循指南中的安全输入说明。清空允许列表需要明确确认。移除操作无需此类确认即可执行,因此请先通过试运行检查移除操作。
有关重试行为和可选的幂等键,请参阅安全地重试策略更新。仅在工作空间支持幂等键时使用它们;如果操作失败且结果不明确,请检查当前策略。
该工具不会启用工作空间功能,也不会验证策略是否得到执行。其离线测试使用模拟的 Microsoft Graph 和 ChatGPT 管理 API 调用。
涉及多个请求的更改不具备原子性。如果移除多个网站集的操作中途失败,之前的移除操作可能已经成功。重试前请读取当前策略。
常见问题
网站控制会替代 Microsoft 权限吗?
不会。应用仍会使用每个用户的 Microsoft 权限。在向用户和模型展示响应之前,OpenAI 会应用已配置的网站筛选规则。
空的允许列表会阻止所有网站吗?
不会。空的允许列表不代表“全部阻止”。如果拒绝列表中有条目,这些网站集仍会被阻止。当两个列表都不包含条目时,访问权限由用户的 Microsoft 权限和其他已配置的控制决定。
通过管理 API 进行的更改会记入日志吗?
通过管理 API 进行的策略更改会记录在工作空间审计和合规日志中。
