多名团队成员在构建代理时通常会进行协作,并且服务会访问代理。使用角色,您可以控制授予对象的访问权限和权限 主账号。
如果您使用的是 API,则您可能还有一个或多个向代理发送请求的应用。在这种情况下,您可以使用服务账号来控制访问权限。
您可以使用以下任一方法控制访问权限: Identity and Access Management (IAM) 或 Dialogflow 控制台。
Dialogflow 控制台为创建代理的用户提供 Agent Admin 角色。此用户会自动获得与代理关联的项目中的 IAM Project Owner 角色。
代理管理员可以在 Dialogflow 中将开发者和审核者添加到代理 控制台。在 Dialogflow 中授予 Developer 或 Reviewer 角色时 控制台,用户将获得 IAM Project Editor 角色或 IAM Project Viewer 角色。如需向代理添加开发者和审核者,您还可以通过在 Google Cloud 控制台中向用户授予相应的 IAM Project Editor 或 IAM Project Viewer 角色来实现。
在某些情况下,您必须使用 Google Cloud 控制台:
- 如果您想要更改管理员,请为一个代理添加多个管理员, 或移除某个代理的管理员 您需要使用 Google Cloud 控制台。
- 如果您与其他 Google Cloud 资源(例如 Cloud Functions)进行了集成, 而您又不想授予对应用的完整项目访问权限 您必须分配 Dialogflow API 角色 (管理员、客户端或读取者)。
- 一部分 IAM 角色具有相应的 Dialogflow 控制台角色。 如果要授予 Dialogflow 控制台上不存在的角色,则需要使用 Google Cloud 控制台。
角色
下表列出了与 Dialogflow 相关的常见角色、 Dialogflow 控制台角色与 IAM 角色之间的定义,以及 与权限有关的详细信息
表中的权限总结使用以下术语:
- 完整访问权限: 拥有修改访问权限,以及创建、删除、修改和读取任何资源的权限。
- 修改权限:创建、删除、修改和读取任何资源的权限。
- 会话访问权限: 在如下对话期间调用运行时专用资源方法的权限: 检测意图、更新上下文、更新会话实体、 或 Agent Assist 对话互动。 此访问权限提供完整访问权限和修改访问权限中包含的部分权限。
- 读取权限:读取任何资源的权限。
Dialogflow 控制台角色 | IAM 角色 | 权限总结 | 权限详细信息 |
---|---|---|---|
Admin | Project > Owner |
向需要所有 Google Cloud 和 Dialogflow 资源的完整访问权限的项目所有者授予:
|
请参阅 IAM 基本角色定义。 |
开发者 | Project > Editor |
向需要所有 Google Cloud 和 Dialogflow 的资源编辑权限的项目修改者授予:
|
请参阅 IAM 基本角色定义。 |
审核者 | Project > Viewer |
向需要所有 Google Cloud 和 Dialogflow 资源读取权限的项目查看者授予:
|
请参阅 IAM 基本角色定义。 |
无 | Project > Browser |
向需要读取权限以浏览项目层次结构(包括文件夹、组织和 IAM 政策)的项目浏览者授予:
|
请参阅 IAM 项目角色定义。 |
不适用 | Dialogflow > Dialogflow API Admin |
向需要 Dialogflow 特定资源完整访问权限的 Dialogflow API 管理员授予:
|
请参阅 Dialogflow IAM 角色定义。 |
无 | Dialogflow > Dialogflow API Client |
授予 Dialogflow API 客户端
使用 API 执行检测意图调用:
|
请参阅 Dialogflow IAM 角色定义。 |
无 | Dialogflow > Dialogflow Console Agent Editor |
向修改现有代理的 Dialogflow 控制台编辑者授予:
|
请参阅 Dialogflow IAM 角色定义。 |
无 | Dialogflow > Dialogflow API Reader |
向使用 Dialogflow API 执行 Dialogflow 特定只读调用的 Dialogflow API 客户端授予:
|
请参阅 Dialogflow IAM 角色定义。 |
使用 Google Cloud 控制台控制访问权限
您可以使用 IAM 设置来控制访问权限。如需详细了解添加、修改和移除权限的说明,请参阅 IAM 快速入门。
要访问以下设置,请打开 Google Cloud 控制台中的 IAM 页面。
将用户或服务账号添加到项目中
您可以为用户或服务账号提供权限 向其授予您的 Google Cloud 项目中的角色。 添加用户的方法是提供该用户的电子邮件地址。 同样,添加服务账号的方法是提供与该服务账号关联的电子邮件地址。 如果要针对多个项目和代理使用一个服务账号,则需要添加服务账号成员。 如需查找与您的服务账号关联的电子邮件地址,请参阅 IAM Google Cloud 控制台中的服务账号页面。
要添加成员,请执行以下操作:
- 点击页面顶部的添加 按钮。
- 输入该成员的电子邮件地址。
- 选择角色。
- 点击保存。
更改权限
- 点击该成员对应的修改 按钮。
- 选择其他角色。
- 点击保存。
移除成员
- 点击该成员对应的删除 按钮。
通过 Dialogflow 控制台控制访问权限
共享选项位于代理的设置中。 要打开代理共享设置,请执行以下操作:
- 转到 Dialogflow ES 控制台。
- 在左侧边栏菜单顶部附近选择您的代理。
- 点击代理名称旁边的设置 按钮。
- 点击共享标签页。如果您没有看到分享标签页, 这是因为您没有所需的 Agent Admin 角色。
添加用户
- 在邀请新人员下方输入用户的电子邮件地址。
- 选择角色。
- 点击添加。
- 点击保存。
更改权限
- 在列表中查找该用户。
- 选择其他角色。
- 点击保存。
移除用户
在列表中查找该用户。
点击该成员对应的删除
按钮。点击保存。
自动创建的服务账号
在创建和使用代理时, Dialogflow 会创建一些服务代理, 。
如需查看已授予这些服务代理的角色,请启用包括 Google 提供的角色授权 选择 IAM 页面。
您不应删除、修改或下载其中任何服务代理的密钥,也不应使用这些服务代理进行直接 API 调用。它们只能由 Dialogflow 服务用于连接到代理使用的各种 Google Cloud 服务。配置某些 Dialogflow 功能时,您可能需要通过电子邮件引用这些服务人员。
下表介绍了其中一些服务代理:
IAM 电子邮件表单 | 用途 |
---|---|
service-project-number @gcp-sa-dialogflow.iam.gserviceaccount.com |
用于将您的代理连接到处理集成流量的服务。 |
firebase-adminsdk-alphanum @project-id.iam.gserviceaccount.com |
用于将代理连接到处理 Google 助理集成流量的服务。 |
project-id @appspot.gserviceaccount.com |
用于将代理连接到处理 Google 助理集成流量的服务。 |
转移管理员角色
如需转移代理的管理员角色,现有管理员需要按照步骤操作(见上文)来添加新的管理员。一旦新管理员接受被授予的角色 可以放心移除旧管理员。
如果现任管理员已从贵组织离职, 并且您需要将管理员角色转移给其他员工, 您有两种选择:
- 此 组织 拥有修改代理管理员的权限。
- 如果您拥有代理的读取权限, 您可以导出代理,也可以导入到目标员工为管理员的代理。 如果代理已迁移并且所有集成服务都已更新,这可能会造成实时生产代理的停机时间。
OAuth
如果您使用 Google 客户端库访问 Dialogflow, 您不需要使用 OAuth 因为这些库会为您处理实现。 不过,如果您要实现自己的客户端,则可能需要实现自己的 OAuth 流程。要访问 Dialogflow API,需要具备以下 OAuth 范围之一:
https://www.googleapis.com/auth/cloud-platform
(对所有项目资源的访问权限)https://www.googleapis.com/auth/dialogflow
(可访问 Dialogflow 资源)
涉及 Cloud Storage 访问的请求
一些 Dialogflow 请求 Cloud Storage 数据读取或写入 当您调用其中一个请求时,Dialogflow 会代表调用方访问 Cloud Storage 数据。这意味着,您的请求身份验证必须具有相应权限 来访问 Dialogflow 和 Cloud Storage 对象。
使用 Google 客户端库和 IAM 角色时 请参阅 Cloud Storage 访问权限控制指南 了解 Cloud Storage 角色。
实现自己的客户端并使用 OAuth 时,您必须使用以下 OAuth 范围:
https://www.googleapis.com/auth/cloud-platform
(有权访问所有项目资源)