您可以直接在 Agent 交談中啟用使用者驗證。 您可以將使用者的基本屬性 (例如名稱和 ID) 指派給變數。 您也可以提示使用者使用主題中的驗證節點登入,該驗證節點會擷取使用者權杖,然後使用該權杖從後端系統檢索使用者的資訊。
注意
在 Copilot Studio 和 Microsoft Teams 中建立的 Agent 系統會自動設定為使用 Microsoft Entra ID 驗證。
您也可以設定單一登入 (SSO),讓您的使用者不需要手動登入。 如需詳細資訊,請參閱使用 Microsoft Entra ID 設定單一登入。
先決條件
將使用者驗證新增至主題,以允許客戶直接在交談中登入。 接著就可以透過使用者變數將交談個人化,並代表使用者存取後端系統。
使用 Microsoft Entra ID 設定手動驗證
您必須先設定使用 Microsoft Entra ID 的使用者驗證,才能在主題中使用驗證。
請依照使用 Microsoft Entra ID 設定使用者驗證中的說明進行操作。
使用登入系統主題新增使用者驗證
當你建立一個 Agent 時,Copilot Studio 會自動加入名為「登入」的系統主題。 要使用它,您必須將 Agent 的驗證設定為手動並要求使用者登入。 當客戶開始與 Agent 交談時,將觸發登入主題並提示使用者登入。 您可以根據您的 Agent 的情況自訂登入主題。
重要
我們建議 Sign in主題僅用於提供Copilot Studio所提供的驗證方式。 不應對其進行修改以呼叫任何其他動作或流程,或其他驗證方法。
- 在 Copilot Studio 中開啟 Agent,選取頁面頂端的設定,然後選取安全性。
- 選取驗證。
- 選取手動驗證,然後選取要求使用者登入。
- 根據需要設定所有手動驗證欄位。
- 選取儲存。
使用自訂主題新增使用者驗證
登入主題在交談開始時,會對使用者進行驗證。 若要允許使用者稍後再登入,您可以將驗證節點新增至任何自訂主題。
當客戶輸入其使用者名稱和密碼時,系統可能會提示他們輸入驗證碼。 他們登入後,即使到達另一個驗證節點,也不會再次收到提示。
選取頁面頂端的設定,然後選取安全性。
選取驗證圖格。
注意
您必須選取手動驗證才能將使用者驗證新增至自訂主題。
選取手動驗證,並取消選取要求使用者登入核取方塊。
根據需要設定所有手動驗證欄位。
選取儲存。
選取頁面頂端的主題。
選取新增節點 (
) >進階>認證。透過識別提供者所設定的使用者來測試主題。
提示
對於成功的登入和失敗的登入,都務必要建立路徑。 登入可能因多種原因而失敗,包括識別提供者的登入體驗出錯。
驗證變數
當您為 Agent 設定使用者驗證時,您可以在主題中使用驗證變數。 下表根據您選擇的驗證選項來比較這些變數的可用性。
| 驗證變數 | 無驗證 | 使用 Microsoft 進行驗證 | 手動驗證 |
|---|---|---|---|
| User.DisplayName | 無法使用 | 可用 | 可用 |
| User.FirstName | 無法使用 | 可用 | 可用 |
| User.LastName | 無法使用 | 可用 | 可用 |
| User.PrincipalName | 無法使用 | 可用 | 可用 |
| User.Email | 無法使用 | 可用 | 可用 |
| User.Id | 無法使用 | 可用 | 可用 |
| User.IsLoggedIn | 無法使用 | 可用 | 可用 |
| User.AccessToken | 無法使用 | 無法使用 | 可用 |
| SignInReason | 無法使用 | 可用 | 可用 |
User.DisplayName
警告
這個變數可能不包含一個值。 使用識別提供者中的使用者進行測試,以確保主題可以正確運作。
User.DisplayName 變數包含儲存在身分提供者中的顯示名稱。 使用此變數來問候或提及使用者,而無需明確向 Agent 提供名稱,從而使交談更加個人化。
Copilot Studio 會自動從識別提供者所提供的 name 宣告設定 User.DisplayName 的值,前提是於設定手動驗證時已定義 profile 範圍。 如需詳細資訊,請參閱使用 Microsoft Entra ID 設定使用者驗證。
User.Id
警告
這個變數可能不包含一個值。 使用識別提供者中的使用者進行測試,以確保主題可以正確運作。
User.Id 變數包含儲存在身分提供者中的使用者識別碼。 在 Power Automate 流程中使用此變數來呼叫將 UserID 作為值的 API。
Copilot Studio 會依身份提供者所提供的 sub 聲明,自動設定 User.DisplayName 的值。
User.IsLoggedIn
User.IsLoggedIn 是一個布林值變數,用來儲存使用者的登入狀態。
true 的值表示使用者已登入。 您可以使用此變數來建立主題中檢查是否成功登入的分支邏輯,或只在使用者登入時,才擷取使用者資訊。
User.AccessToken
警告
確定您只是將 User.AccessToken 變數傳遞給可信來源。 它包含使用者驗證資訊,如果洩漏的話,可能會損害使用者。
User.AccessToken 變數包含在使用者登入後所取得的使用者權杖。 您可以將此變數傳遞至 Power Automate 流程,這樣它們便可以連接至後端 API 並擷取使用者資訊,或代表使用者執行動作。
不要在訊息節點或您不信任的流程中使用 User.AccessToken。
SignInReason
SignInReason 是一個選擇類型變數,指示使用者何時必須登入。 其有兩個可能的值:
SignInRequired表示使用者必須在交談一開始時使用登入系統主題登入。 要求使用者必須登入必須已開啟。Initializer表示當使用者未登入且到達交談中使用驗證變數的某個階段時,系統會提示他們登入。