當您建立 Copilot Studio Agent 時,它會立即在示範網站和自訂網站通道上提供給知道 Agent ID 的任何人。 根據預設就會使用這些通道,也不需要進行任何設定。
對於 Microsoft Teams 應用程式,您可以設定進階網頁通道安全選項。
注意
如果您擁有僅限團隊使用的許可證,則無法生成用於啟用安全訪問權限的機密。 安全存取權杖是為您自動建立的,並且默認情況下啟用安全存取。
使用者可以直接在 Copilot Studio 中找到 Agent ID,或由他人提供。 但是,根據代理程式的功能和敏感度,這種情況可能並不理想。
使用基於 Direct Line 的安全性,您可以透過啟用 Direct Line 金鑰或權杖的安全存取,只允許受控位置存取。
您也可以交換並重新生成秘密和重新整理權杖,當您不想再使用安全存取,也可以輕易地停用。
注意
Copilot Studio 使用 Bot Framework Direct Line 通道將您的網頁或應用程式連接到 Agent。
啟用或停用 web 管道安全性
您可以個別對每個代理程式強制使用密碼和權杖。
當啟用此選項,通道就需要用戶端使用秘密或者使用由秘密所產生的權杖 (在執行階段取得),來驗證其要求。
嘗試存取未提供此安全措施的代理程式無法運作。
- 移至代理程式的 [設定 ] 頁面,選取 [安全性],然後選取 [Web 通道安全性]。
- 啟用 [需要安全存取]。
警告
當啟用或停用「要求安全存取」時,系統需要最多會需要兩個小時才能傳播設定並生效。 在那之前,先前的設定將生效。 您不需要發佈代理程式,此變更就會生效。
您應該提前進行規劃以避免不小心公開您的代理程式。
如果您需要停用 Web 通道安全性選項,您可以清除 需要安全存取 切換。 停用安全存取最多會需要兩小時來傳播。
使用秘密或權杖
如果您正在建立服務對服務應用程式,在授權標頭要求中指定秘密可能是最簡單的方法。
如果您正在撰寫的應用程式是在網頁瀏覽器或行動裝置應用程式中執行用戶端,或其他可能被使用者看到程式碼的方式,您必須以您的秘密交換權杖。 如果您不使用權杖,您的秘密可能會被洩漏。 當您要求在服務中取得權杖時,請在授權標頭中指定秘密。
權杖只能用在作單一交談,除非進行重新整理,不然就會到期。
選擇與您的情況最相符的資訊安全模型。
警告
我們強烈反對在瀏覽器上執行的任何程式碼中公開秘密,無論是硬式編碼或透過網路呼叫來輸送。
在服務程式碼中使用金鑰取得權杖是保護 Copilot Studio Agent 最安全的方式。
取得秘密
您會需要秘密,因為這樣才能在應用程式的授權標頭要求或類似情形中指定它。
在導覽功能表的設定底下,選取安全性。 接著選取 Web 管道安全性圖標。
對秘密 1 或秘密 2 選取複製,把它複製到剪貼簿。 選取可見度圖示
以顯示秘密。 在顯示之前,會出現警告提示。
交換秘密
當您需要變更您的代理程式所使用的密碼時,不需要任何停機或中斷,就可以執行。
Copilot Studio 提供兩組金鑰,可同時運作。 正在使用的秘密可以用另一個秘密交換。 在秘密交換完成並且您的使用者全都使用新的秘密連線之後,您就可以放心地重新產生秘密。
重新產生密碼
若要重新產生秘密,請選取秘密旁邊的重新產生。
警告
任何使用原始金鑰或由該金鑰取得的權杖連線的使用者資料檔案將被中斷連線。
產生權杖
您可以產生一個可用於開始代理程式交談的權杖。 更多資訊,請參閱在發佈 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 權杖。