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