กำหนดค่าการลงชื่อเข้าระบบครั้งเดียวกับตัวให้บริการ OAuth ทั่วไป
Copilot Studio รองรับการลงชื่อเข้าระบบครั้งเดียว (SSO) กับตัวให้บริการรับรองความถูกต้องที่รองรับ OAuth 2.0 SSO อนุญาตให้ตัวแทนในเว็บไซต์ลงชื่อเข้าใช้ลูกค้าได้หากพวกเขาเข้าสู่ระบบหน้าเว็บหรือแอปที่มีการปรับใช้ ตัวแทน
ข้อกำหนดเบื้องต้น
- กำหนดค่าการรับรองความถูกต้องของผู้ใช้ด้วยตัวให้บริการ OAuth 2.0 ทั่วไป
- เพิ่มการรับรองความถูกต้องของผู้ใช้ไปยังหัวข้อ
- ปรับแต่งรูปลักษณ์ของเอเจนต์
สร้างหรือใช้พื้นที่ทำงานแบบกำหนดเองที่รองรับโฟลว์ SSO ของตัวให้บริการ OAuth ทั่วไป
เมื่อหัวข้อการรับรองความถูกต้องถูกทริกเกอร์ในตัวแทนที่เชื่อมต่อกับผู้ให้บริการ OAuth 2.0 ทั่วไป Copilot Studio ให้ส่งข้อความที่มี URL ที่ปลอดภัย ซึ่งใช้เพื่อโพสต์โทเค็นการเข้าถึงของผู้ใช้
พื้นที่ทำงานที่กำหนดเองหรือหน้าที่ฝังพื้นที่ทำงานควรใช้รูปแบบต่อไปนี้:
รับโทเค็นการเข้าใช้สำหรับผู้ใช้ที่ลงชื่อเข้าใช้จากตัวให้บริการรับรองความถูกต้อง OAuth 2.0 โดยใช้วิธีที่คุณต้องการ
สกัดกั้นข้อความขาเข้าจาก Copilot Studio และแยก URL ที่ปลอดภัย
โพสต์โทเค็นการเข้าใช้ไปยัง URL ที่ปลอดภัย
แยก URL ที่ปลอดภัยและโพสต์โทเค็น
พื้นที่ทำงานที่กำหนดเองจะสกัดกั้นข้อความขาเข้าโดยใช้แนวคิดมิดเดิลแวร์ ซึ่งเป็นโค้ดที่ทำงานในบริบทของการรับข้อความจาก Copilot Studio
หากต้องการตอบกลับคำขอลงชื่อเข้าใช้ พื้นที่ทำงานที่กำหนดเองจะต้องสกัดกั้นข้อความพร้อมไฟล์แนบที่มีชนิดเนื้อหา application/vnd.microsoft.card.oauth
ไฟล์แนบ OAuthCard ประกอบด้วยคุณสมบัติ content.tokenPostResource.sasUrl
ซึ่งสามารถดึง URL ที่ปลอดภัยออกมาได้ สุดท้ายนี้ พื้นที่ทำงานที่กำหนดเองควรโพสต์โทเค็นการเข้าใช้ของผู้ใช้ไปยัง URL ที่ปลอดภัย
โค้ด JavaScript ต่อไปนี้เป็นตัวอย่างของโค้ดมิดเดิลแวร์ที่แยก URL ที่ปลอดภัยและโพสต์โทเค็น หากโพสต์สำเร็จ มิดเดิลแวร์จะส่งกลับ false
หากโพสต์ไม่สำเร็จ หรือหากกิจกรรมไม่มีคุณสมบัติ application/vnd.microsoft.card.oauth
จะมีการส่งคืน next(…args)
const activityMiddleware = () => next => (...args) => {
if (args[0].activity.attachments?.[0]?.contentType === 'application/vnd.microsoft.card.oauth') {
var postEndpoint = args[0].activity.attachments?.[0].content.tokenPostResource.sasUrl;
// Perform an HTTP POST to the secure URL with the body of:
// {
// "token": <user_token>
// }
if(success)
return false;
else
return next(...args);
} else {
return next(...args);
}
};
โค้ดตัวอย่างแบบเต็ม
การใช้งานพื้นที่ทำงานหรือแอปแบบกำหนดเองที่ได้รับโทเค็นสำหรับผู้ใช้ที่ลงชื่อเข้าใช้ และโพสต์โทเค็นไปที่ Copilot Studio จะแตกต่างกันไปขึ้นอยู่กับตัวให้บริการรับรองความถูกต้องของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือตัวให้บริการรับรองความถูกต้องของคุณสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับขั้นตอนการลงชื่อเข้าใช้และการได้รับโทเค็นการเข้าใช้ สำหรับตัวอย่างอ้างอิงที่ใช้ OKTA โปรดดู SSO บุคคลที่สามกับ OKTA
การใช้โทเค็นใน Copilot Studio
โทเค็นที่โพสต์โดยใช้ URL ที่ปลอดภัยจะถูกเติมลงในตัวแปร System.User.AccessToken
ใน Copilot Studio ผู้สร้าง ตัวแทน สามารถใช้ตัวแปรระบบนี้เพื่อเข้าถึง API ที่ได้รับการป้องกันซึ่งเชื่อมต่อกับผู้ให้บริการที่ได้รับการรับรองความถูกต้องที่สร้างโทเค็น
ในตัวอย่างต่อไปนี้ การเรียก HTTP ได้รับการกำหนดค่าด้วยส่วนหัวของข้อมูลรับรองความถูกต้องที่ใช้ System.User.AccessToken
ช่องทางที่รองรับ
SSO ที่มีตัวให้บริการรับรองความถูกต้อง OAuth ทั่วไปคือรูปแบบที่กำหนดเอง ซึ่งสามารถนำมาใช้โดยพื้นที่ทำงานที่กำหนดเองหรือไคลเอ็นต์อื่นๆ ที่ทำงานกับ Directline API