當您建立 Copilot Studio Agent 時,所有知道 Agent 識別碼的人會透過示範網站和自訂網站管道立即存取 Agent。 根據預設就會使用這些通道,也不需要進行任何設定。
若為 Microsoft Teams 應用程式,您可以設定進階 Web 通道安全性選項。
注意
如果您擁有僅限團隊使用的許可證,則無法生成用於啟用安全訪問權限的機密。 安全存取權杖是為您自動建立的,並且默認情況下啟用安全存取。
使用者可以直接在 Copilot Studio 中找到 Agent ID,或由他人提供。 但是,根據 Agent 的功能和敏感度,這種存取可能並不理想。
您可以使用基於 Direct Line 的安全性,啟用 Direct Line 祕密或權杖的安全存取,僅允許存取您所控制的位置。
您也可以交換並重新生成秘密和重新整理權杖,當您不想再使用安全存取,也可以輕易地停用。
Note
Copilot Studio 使用 Bot Framework Direct Line 通道將您的網頁或應用程式連接到 Agent。
啟用或停用 web 管道安全性
您可以個別對每個 Agent 強制使用密碼和權杖。
啟用此選項時,管道就需要用戶端使用機密或者使用由機密所產生的權杖 (在執行階段取得),來驗證其要求。
對 Agent 的存取嘗試,若不提供此安全措施都無法運作。
- 移至設定頁面,針對您的 Agent,選取安全性,然後選取Web 管道安全性。
- 開啟要求安全存取。
警告
當啟用或關閉要求安全存取時,系統需要最多需要兩個小時才能傳播設定並生效。 在那之前,先前的設定依然有效。 您不需要發佈 Agent,此變更就會生效。
請提前進行規劃以避免不小心公開您的 Agent 。
如果您需要停用 Web 管道安全性選項,您可以清除要求安全存取切換開關即可達成。 停用安全存取最多會需要兩小時來傳播。
使用秘密或權杖
如果您正在建立服務對服務應用程式,在授權標頭要求中指定秘密可能是最簡單的方法。
如果您正在撰寫的應用程式是在網頁瀏覽器或行動裝置應用程式中執行用戶端,或其他可能被使用者看到程式碼的方式,您必須以您的秘密交換權杖。 如果您不使用權杖,您的秘密可能會被洩漏。 當您要求在服務中取得權杖時,請在授權標頭中指定秘密。
權杖只能用在作單一交談,除非進行重新整理,不然就會到期。
選擇與您的情況最相符的資訊安全模型。
警告
請勿在瀏覽器上執行的任何程式碼中公開機密,無論是硬編碼或透過網路呼叫來輸送。
在服務程式碼中使用機密取得權杖是保護 Copilot Studio Agent 最安全的方式。
取得秘密
您會需要秘密,因為這樣才能在應用程式的授權標頭要求或類似情形中指定它。
在導覽功能表的設定底下,選取安全性。 接著選取 Web 管道安全性圖標。
對秘密 1 或秘密 2 選取複製,把它複製到剪貼簿。 選取可見度圖示
,以顯示祕密。 在顯示之前,會出現警告提示。
交換秘密
當您需要變更您的 Agent 使用者所使用的機密時,不需要任何停機或中斷,就可以變更。
Copilot Studio 提供兩組金鑰,可同時運作。 您可以把你的 Agent 使用的機密和另一個交換。 在機密交換完成且您的使用者全都使用新的機密連線後,您就可以重新產生機密。
重新產生密碼
若要重新產生秘密,請選取秘密旁邊的重新產生。
警告
使用原始祕密或使用從該祕密所取得權杖連接的使用者設定檔已中斷連接。
產生權杖
您可以產生一個可用於開始 Agent 交談的權杖。 更多資訊,請參閱在發佈 Agent 到行動或自訂應用程式一節中的取得 Direct Line 權杖。
取得密碼。
在您的服務程式碼中,發出下列要求以使用機密交換權杖。 使用您在步驟 1 中取得的秘密的值取代
<SECRET>。POST https://directline.botframework.com/v3/directline/tokens/generate Authorization: Bearer <SECRET>
下列程式碼片斷提供產生權杖要求及其回應的範例。
產生權杖要求的範例
POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
產生權杖回應的範例
HTTP/1.1 200 OK
[other headers]
{
"conversationId": "abc123",
"token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
"expires_in": 1800
}
如果要求成功,回應將包含對一個交談有效的權杖,以及 expires_in 的值,表示權杖到期之前的秒數。
若要讓權杖保持可用,您必須在過期前重新整理權杖。
重新整理權杖
權杖只要尚未過期,您可以無限次地重新整理權杖。
您無法重新整理到期的權杖。
若要重新整理權杖,請發送下列要求,並將 <TOKEN TO BE REFRESHED> 替換成您要重新整理的權杖。
POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer <TOKEN TO BE REFRESHED>
下列程式碼片斷提供重新整理權杖要求及其回應的範例。
重新整理要求的範例
POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer CurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn
重新整理回應的範例
如果要求成功,回應將包含一個新權杖,如先前權杖一般對相同交談有效,以及 expires_in 的值,表示新權杖到期之前的秒數。
若要讓新權杖保持可用,請在過期前再次重新整理權杖。
HTTP/1.1 200 OK
[other headers]
{
"conversationId": "abc123",
"token": "RCurR_XV9ZA.cwA.BKA.y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xniaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0",
"expires_in": 1800
}
關於更新權杖的更多資訊,請參閱 Direct Line API - 驗證中的更新 Direct Line 權杖。