代理程式經常是由多名小組成員合作建構,且服務會存取代理程式。使用「角色」即可控管存取權,並將權限授予「主體」。
如果使用 API,可能也有一個或多個應用程式會傳送要求至代理程式。在這種情況下,您可以使用服務帳戶控管存取權。
您可以使用身分與存取權管理 (IAM) 或 Dialogflow 主控台來控管存取權。
Dialogflow 主控台會將代理程式管理員角色提供給建立代理程式的使用者。該使用者會自動取得與代理程式相關聯專案的 IAM 專案擁有者角色。
代理程式管理員可以在 Dialogflow 控制台中,將開發人員和審查人員新增至代理程式。在 Dialogflow 控制台中授予「開發人員」或「審查人員」角色時,使用者會分別獲得 IAM 專案編輯者角色或 IAM 專案檢視者角色。如要將開發人員和審查人員新增至代理程式,也可以在 Google Cloud 控制台中授予使用者對應的 IAM 專案編輯者或 IAM 專案檢視者角色。
在某些狀況下,您必須使用 Google Cloud 控制台:
- 如要變更管理員、為單一代理程式新增多個管理員,或為某個代理程式移除管理員,您必須使用 Google Cloud 主控台。
- 如果您已整合其他 Google Cloud 資源 (例如 Cloud Functions),但不想向應用程式授予整個專案的存取權,則必須在 IAM 的 Google Cloud 主控台中指派 Dialogflow API 角色 (管理員、用戶端或讀取者)。
- 部分 IAM 角色具有對應的 Dialogflow 主控台角色。如果想要授予 Dialogflow 主控台中沒有的角色,則需要使用 Google Cloud 主控台。
角色
下表列出與 Dialogflow 相關的常見角色、Dialogflow 主控台角色與 IAM 角色的關聯,以及權限詳細資料。
表格中的權限摘要使用下列詞彙:
- 完整存取權: 可修改存取權、建立、刪除、編輯及讀取任何資源。
- 編輯權限: 可建立、刪除、編輯及讀取任何資源的權限。
- 工作階段存取權: 在對話期間呼叫僅限執行階段資源的方法,例如偵測意圖、更新情境、更新工作階段實體,或 Agent Assist 對話互動。 這項存取權提供的權限是完整存取權和編輯存取權的子集。
- 讀取權限: 讀取任何資源的權限。
| Dialogflow 主控台角色 | IAM 角色 | 權限摘要 | 權限詳細資料 |
|---|---|---|---|
| 管理員 | 專案 > 擁有者 |
授予需要所有 Google Cloud 和 Dialogflow 資源完整存取權的專案擁有者:
|
請參閱 IAM 基本角色定義。 |
| 開發人員 | 專案 > 編輯者 |
授予需要所有 Google Cloud 和 Dialogflow 資源編輯存取權的專案編輯者:
|
請參閱 IAM 基本角色定義。 |
| 審查者 | 專案 > 檢視者 |
授予需要所有 Google Cloud 和 Dialogflow 資源讀取權的專案檢視者:
|
請參閱 IAM 基本角色定義。 |
| 不適用 | 專案 > 瀏覽者 |
授予專案瀏覽者權限,讓他們擁有瀏覽專案階層的讀取權限,包括資料夾、機構和 IAM 政策:
|
請參閱 IAM 專案角色定義。 |
| 不適用 | Dialogflow > Dialogflow API 管理員 |
授予需要 Dialogflow 特定資源完整存取權的 Dialogflow API 管理員:
|
請參閱 Dialogflow IAM 角色定義。 |
| 不適用 | Dialogflow > Dialogflow API 用戶端 |
授予給使用 API 執行意圖偵測呼叫的 Dialogflow API 用戶端:
|
請參閱 Dialogflow IAM 角色定義。 |
| 不適用 | Dialogflow > Dialogflow 主控台代理程式編輯者 |
授予 Dialogflow 主控台編輯者權限,讓他們編輯現有代理程式:
|
請參閱 Dialogflow IAM 角色定義。 |
| 不適用 | Dialogflow > Dialogflow API 讀取者 |
授予給使用 API 執行 Dialogflow 專屬唯讀呼叫的 Dialogflow API 用戶端:
|
請參閱 Dialogflow IAM 角色定義。 |
使用 Google Cloud 控制台控管存取權
您可以使用 IAM 設定控管存取權。如需新增、編輯及移除權限的詳細操作說明,請參閱身分與存取權管理快速入門導覽課程。
如要存取下列設定,請在 Google Cloud 控制台中開啟「IAM」頁面。
在專案中新增使用者或服務帳戶
您可以將角色授予 Google Cloud 專案中的使用者或服務帳戶,藉此提供權限。只要提供使用者的電子郵件地址即可新增使用者,服務帳戶也是透過提供相關聯的電子郵件地址來進行新增。如果您想在多個專案和代理程式上使用單一服務帳戶,則需要新增服務帳戶成員。如要查看與服務帳戶相關聯的電子郵件地址,請前往 Google Cloud 控制台的 IAM「服務帳戶」頁面。
如何新增成員:
- 按一下頁面頂端的新增 按鈕。
- 輸入成員的電子郵件地址。
- 選取一個角色。
- 按一下 [Save] (儲存)。
變更權限
- 針對要變更權限的成員,按一下對應的編輯 按鈕。
- 選取其他角色。
- 按一下 [Save] (儲存)。
移除成員
- 針對要移除的成員,按一下對應的刪除 按鈕。
使用 Dialogflow 主控台控管存取權
在代理程式的設定中可找到共用選項。如何開啟代理程式的共用設定:
- 前往 Dialogflow ES 主控台。
- 從左側欄選單中接近頂端的位置選取您的代理程式。
- 按一下代理程式名稱旁邊的設定 按鈕。
- 按一下 [Share] (共用) 標籤。如未顯示「共用」分頁標籤,表示您沒有必要的代理程式管理員角色。
新增使用者
- 在「Invite New People」(邀請新人員) 底下輸入使用者的電子郵件地址。
- 選取一個角色。
- 然後按一下 [Add] (新增)。
- 按一下 [Save] (儲存)。
變更權限
- 在清單中找出使用者。
- 選取其他角色。
- 按一下 [Save] (儲存)。
移除使用者
在清單中找出使用者。
針對該使用者上按一下刪除 按鈕。
按一下 [儲存]。
自動建立的服務帳戶
建立及使用代理程式時,Dialogflow 會自動建立一些服務代理程式。
如要查看授予這些服務代理的角色,請在 IAM 頁面上啟用「Include Google-provided role grants」(包含 Google 提供的角色授權) 選項。
您不應刪除、編輯或下載任何這類服務代理程式的金鑰,也不應使用這些服務代理程式直接呼叫 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(可存取所有專案資源)