แชร์ผ่าน


กำหนดค่าการลงชื่อเข้าระบบครั้งเดียวกับตัวให้บริการ OAuth ทั่วไป

Copilot Studio รองรับการลงชื่อเข้าระบบครั้งเดียว (SSO) กับตัวให้บริการรับรองความถูกต้องที่รองรับ OAuth 2.0 SSO อนุญาตให้ตัวแทนในเว็บไซต์ลงชื่อเข้าใช้ลูกค้าได้หากพวกเขาเข้าสู่ระบบหน้าเว็บหรือแอปที่มีการปรับใช้ ตัวแทน

ข้อกำหนดเบื้องต้น

สร้างหรือใช้พื้นที่ทำงานแบบกำหนดเองที่รองรับโฟลว์ SSO ของตัวให้บริการ OAuth ทั่วไป

เมื่อหัวข้อการรับรองความถูกต้องถูกทริกเกอร์ในตัวแทนที่เชื่อมต่อกับผู้ให้บริการ OAuth 2.0 ทั่วไป Copilot Studio ให้ส่งข้อความที่มี URL ที่ปลอดภัย ซึ่งใช้เพื่อโพสต์โทเค็นการเข้าถึงของผู้ใช้

พื้นที่ทำงานที่กำหนดเองหรือหน้าที่ฝังพื้นที่ทำงานควรใช้รูปแบบต่อไปนี้:

  1. รับโทเค็นการเข้าใช้สำหรับผู้ใช้ที่ลงชื่อเข้าใช้จากตัวให้บริการรับรองความถูกต้อง OAuth 2.0 โดยใช้วิธีที่คุณต้องการ

  2. สกัดกั้นข้อความขาเข้าจาก Copilot Studio และแยก URL ที่ปลอดภัย

  3. โพสต์โทเค็นการเข้าใช้ไปยัง 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

ภาพหน้าจอแสดงการเรียก HTTP ที่เข้าถึง APU ที่ปลอดภัย

ช่องทางที่รองรับ

SSO ที่มีตัวให้บริการรับรองความถูกต้อง OAuth ทั่วไปคือรูปแบบที่กำหนดเอง ซึ่งสามารถนำมาใช้โดยพื้นที่ทำงานที่กำหนดเองหรือไคลเอ็นต์อื่นๆ ที่ทำงานกับ Directline API