扣子编程支持多人协作场景下跨账号的 OAuth 授权,组织超级管理员可以为应用程序授予工作空间中的资源权限。
说明
仅扣子企业版(企业标准版、企业旗舰版)支持多人协作场景,扣子个人版不支持多人协作场景。
使用OAuth 授权码授权、OAuth PKCE、OAuth 设备授权模式时,应用程序获取的 Access Token 默认拥有 OAuth 该企业中所有资源的权限。例如权限列表中包含 chat 权限,通过这个 Token 可以调用 chat 接口,与此账号名下所有空间中的所有智能体对话。
在多人协作场景下,扣子用户往往需要跨账号授权,例如,企业 A 里的成员希望使用企业 B 的应用 B,需要给此应用授予权限。
授权流程如下:
说明
会话、对话、消息为全局资源,不隶属于任何空间,所以指定空间 ID 之后无法授予 Access Token 会话相关的权限,例如创建会话 createConversation。
在 OAuth 授权流程中,应用程序发起授权请求,申请获取授权码(code)时,可以指定空间 ID,并引导空间所有者为空间安装应用。
以授权码授权模式为例,多人协作场景下应用程序发起授权请求的流程如下。
空间协作者可以为应用程序授予工作空间中的资源权限,从而使用工作空间中的资源,例如和工作空间中本人创建的智能体对话、修改本人创建的知识库等。
应用程序申请企业资源权限前需要通过以下方式获取空间 ID:
space 参数后的数字就是 Space ID。例如https://code.coze.cn/space/736163827687053****/bot,空间 ID 为736163827687053****。说明
扣子编程中的资源具有层级关系。授权时如果指定空间,则无法授予 Access Token 与空间平级的其他权限,例如会话相关权限。
当成员单击发起申请后,超级管理员或管理员可以通过如下三种方式安装应用:
对话框中安装应用
应用安装管理页面安装应用
授权成功后,扣子 OAuth Server 会在 API 接口响应中返回授权码 code。应用程序可根据授权码换取 Access Token,在被授予的权限范围内调用扣子 API。详细步骤说明可参考2 获取访问令牌和步骤三:请求令牌部分。