ข้อมูลอัปเดตจาก FedCM: Multi IdP API บนเดสก์ท็อป, Button Mode API และ Continuation Bundle สำหรับ Chrome ในช่วงทดลองใช้จากต้นทางของ Android

ตั้งแต่ Chrome 128 เป็นต้นไป Multi-IdP API จะเริ่มช่วงทดลองใช้จากต้นทางบนเดสก์ท็อป และ Button Mode API และ Continuation Bundle จะเริ่มช่วงทดลองใช้จากต้นทางบน Android ฟีเจอร์ Multi IdP ช่วยให้นักพัฒนาแอประบุอาร์เรย์ของผู้ให้บริการข้อมูลประจำตัวที่รองรับได้หลายรายการในการเรียกใช้ get() ครั้งเดียว API โหมดปุ่มจะเพิ่ม UI ใหม่ เมื่อใช้ Button Mode API ผู้ให้บริการข้อมูลประจำตัวจะใช้ FedCM API ได้แม้ว่าผู้ใช้จะไม่มีเซสชัน IdP ที่ใช้งานอยู่ขณะเรียก API กลุ่มต่อเนื่องประกอบด้วย Continuation API และ Parameters API ซึ่งช่วยให้ได้รับประสบการณ์การใช้งานที่คล้ายกับขั้นตอนการให้สิทธิ์ OAuth ซึ่งเกี่ยวข้องกับกล่องโต้ตอบสิทธิ์ที่ IdP ระบุ นอกจากนี้ แพ็กเกจยังมีการเปลี่ยนแปลงอื่นๆ เช่น Fields API, configURL หลายรายการ และป้ายกำกับบัญชีที่กำหนดเอง

ช่วงทดลองใช้จากต้นทาง: Multi IdP API

ฟีเจอร์นี้ช่วยให้ผู้ใช้เลือกบัญชีจากชุดผู้ให้บริการระบุตัวตนที่รองรับได้ และ RP จะได้รับประโยชน์จากอัตราการลงชื่อเข้าใช้และลงชื่อสมัครใช้ที่สูงขึ้น หากผู้ใช้เข้าสู่ระบบด้วย IdP หลายรายการ ระบบจะแจ้งให้ลงชื่อเข้าใช้ RP โดยใช้ IdP รายการใดรายการหนึ่ง

ผู้ใช้ลงชื่อเข้าใช้ด้วย IdP ที่แตกต่างกันโดยใช้ Multi-IdP API

ระบบจะจัดลำดับความสำคัญของ IdP ตามบัญชีที่มีอยู่ของผู้ใช้และการประทับเวลาที่เกี่ยวข้อง

  • หากผู้ใช้เคยเข้าสู่ระบบ RP ด้วย IdP ที่เฉพาะเจาะจง (กล่าวคือมี "บัญชีที่กลับมา") IdP เหล่านั้นจะแสดงเป็นรายการแรก
  • ภายในบัญชีที่กลับมา ระบบจะจัดเรียง IdP ตามการประทับเวลาการใช้งานครั้งล่าสุด โดย IdP ที่ใช้ล่าสุดจะปรากฏที่ด้านบนสุดของรายการ ในบางกรณี Chrome อาจไม่มีข้อมูลการประทับเวลาสําหรับบัญชีที่กลับมา ซึ่งอาจเป็นเพราะผู้ใช้ลงชื่อเข้าใช้ก่อนที่จะมีการใช้บันทึกการประทับเวลาใน FedCM บัญชีเหล่านี้จะแสดงอยู่ใต้บัญชีที่มีการประทับเวลา
  • หากผู้ใช้ไม่มีบัญชีที่กลับมาโดยใช้ IdP ใดๆ ระบบจะยึดตามลำดับที่ RP ระบุ

FedCM อนุญาตการตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติหากนักพัฒนาซอฟต์แวร์ขอ และหากมีบัญชีที่กลับมาบัญชีเดียว ในกรณีของ IdP หลายรายการ หากมีบัญชีที่กลับมาสำหรับ IdP หลายรายการ ระบบจะไม่ตรวจสอบสิทธิ์ผู้ใช้อีกครั้งโดยอัตโนมัติ การมีบัญชีที่กลับมาใช้ใหม่เป็นข้อกำหนดที่สำคัญสำหรับการตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติ เบราว์เซอร์จะเริ่มการตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติก็ต่อเมื่อเบราว์เซอร์จดจำบัญชีดังกล่าวอย่างชัดเจน ซึ่งหมายความว่าผู้ใช้เคยใช้ FedCM กับบัญชีนี้ใน RP นี้มาก่อน

หากสถานะการเข้าสู่ระบบของผู้ใช้ตั้งค่าเป็นออกจากระบบสำหรับ IdP การเรียกใช้ FedCM จะไม่ดึงข้อมูลบัญชีสำหรับ IdP นั้น ในทำนองเดียวกัน หากสถานะของผู้ใช้ออกจากระบบสำหรับ IdP ที่มีอยู่ทั้งหมด ข้อความแจ้งให้ลงชื่อเข้าใช้ FedCM จะไม่แสดงในโหมดวิดเจ็ตโดยอัตโนมัติ

หากเข้าสู่ระบบด้วย IdP สถานะการเข้าสู่ระบบที่บันทึกไว้ในเบราว์เซอร์ของ IdP แต่คำขอดึงข้อมูลไม่แสดงบัญชีสำหรับ IdP นี้ (เช่น หากเซสชันของผู้ใช้หมดอายุ แต่เบราว์เซอร์ยังไม่อัปเดตสถานะการเข้าสู่ระบบ) UI ที่ไม่ตรงกันจะปรากฏสำหรับ IdP โดยแนะนำให้ผู้ใช้ลงชื่อเข้าใช้ด้วย IdP ที่ไม่ตรงกัน

เมื่อสถานะการเข้าสู่ระบบของผู้ใช้เข้าสู่ระบบแล้ว แต่เซสชันหมดอายุ ระบบจะแสดง UI ที่ไม่ตรงกัน

อ่านข้อมูลเพิ่มเติมเกี่ยวกับสถานะการเข้าสู่ระบบได้ในเอกสารประกอบ ดูรายละเอียดการใช้งานเพิ่มเติมได้ที่คู่มือนักพัฒนาซอฟต์แวร์

ช่วงทดลองใช้จากต้นทาง: Multi IdP API

คุณสามารถลองใช้ Multi IdP API ในฐานะผู้ใช้ใน demo RP หรือในฐานะนักพัฒนาซอฟต์แวร์ที่ใช้ Chrome 128 ขึ้นไป

ลองใช้ในฐานะผู้ใช้

ลองด้วยตัวคุณเองในฐานะผู้ใช้ ตรวจสอบว่าเป็นไปตามนี้

  • ไม่ได้กำหนดค่า Chrome ให้บล็อกข้อความแจ้งให้ลงชื่อเข้าใช้ของบุคคลที่สามในหน้าเว็บ: chrome://settings/content/federatedIdentityApi
  • คุณลงชื่อเข้าใช้ผู้ให้บริการระบุตัวตนแบบเดโมหลายราย ทำตามวิธีการในหน้าสาธิต

โปรดทราบว่าหากต้องการลองใช้ Multi-IdP ในเว็บไซต์ที่ไม่ได้ลงทะเบียนต้นทางสำหรับการทดลองใช้ต้นทาง คุณต้องเปิดใช้ Flag ฟีเจอร์ในส่วน chrome://flags/#fedcm-multi-idp

ลองใช้ในฐานะนักพัฒนาแอป

หากผู้ให้บริการเข้าสู่ระบบมี JavaScript SDK ฝังอยู่ใน RP (แนะนำ) ผู้ให้บริการสามารถใช้การเรียก navigator.credentials.get() เพื่อเปิดใช้ IdP หลายรายการได้ และนักพัฒนาซอฟต์แวร์ RP ก็ไม่จำเป็นต้องเปลี่ยนโค้ด ไม่เช่นนั้น RP จะต้องเรียกใช้ FedCM API ด้วยตนเอง

หากต้องการทดสอบ IdP หลายแห่งบน RP ให้ระบุอาร์เรย์ของผู้ให้บริการที่รองรับดังนี้

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

แอตทริบิวต์ configURL ภายในออบเจ็กต์ผลลัพธ์จะจัดเก็บ URL ของไฟล์การกำหนดค่าสำหรับ IdP ที่ผู้ใช้ตรวจสอบสิทธิ์ด้วย RP สามารถกำหนดวิธีจัดการ token ที่ได้ เนื่องจากจะแตกต่างกันไปตาม IdP

เข้าร่วมช่วงทดลองใช้จากต้นทาง

ช่วงทดลองใช้จากต้นทางช่วยให้คุณลองใช้ฟีเจอร์ใหม่ๆ และแสดงความคิดเห็นเกี่ยวกับความสามารถในการใช้งาน ประโยชน์ และประสิทธิภาพของฟีเจอร์เหล่านั้น ดูข้อมูลเพิ่มเติมได้ที่เริ่มต้นใช้งานการทดลองใช้ต้นทาง

คุณสามารถลองใช้ฟีเจอร์ Multi IdP ได้โดยลงทะเบียนเข้าร่วมการทดลองใช้เวอร์ชันต้นทางตั้งแต่ Chrome 128 เป็นต้นไป

หากต้องการลองใช้ IdP หลายรายการ RP สามารถลงทะเบียนต้นทางและเรียกใช้ช่วงทดลองใช้จากต้นทางของบุคคลที่หนึ่งได้ นอกจากนี้ IdP ยังลงทะเบียนช่วงทดลองใช้แหล่งที่มาของบุคคลที่สามและทำให้ฟีเจอร์ Multi IdP พร้อมใช้งานสำหรับ RP ทั้งหมดโดยใช้ SDK ของ JavaScript ได้อีกด้วย

ขั้นตอนในการเข้าร่วมการทดลองใช้จากต้นทาง

  1. ไปที่หน้าการลงทะเบียนช่วงทดลองใช้จากต้นทางของ Multi IdP API
  2. คลิกปุ่มลงทะเบียนและกรอกแบบฟอร์มเพื่อขอโทเค็น
  3. หากต้องการลงทะเบียนช่วงทดลองใช้จากต้นทางของบุคคลที่หนึ่ง ให้ป้อนต้นทางของ RP ในช่อง "ต้นทางเว็บ" สําหรับการทดสอบต้นทางของบุคคลที่สาม ให้ป้อนต้นทางของ JavaScript SDK ของ IdP แล้วเลือกช่อง "การจับคู่ของบุคคลที่สาม"
  4. คลิกส่ง
  5. ระบุโทเค็นที่ออกในหน้า RP ดังนี้
    • สําหรับผู้เข้าร่วมช่วงทดลองใช้ 1P จากต้นทาง
      • ใช้เป็นเมตาแท็กใน <head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • เป็นส่วนหัว HTTP: Origin-Trial: TOKEN_GOES_HERE
    • สําหรับผู้เข้าร่วมช่วงทดลองใช้จากต้นทางที่เป็นบุคคลที่สาม
      • ให้บริการโทเค็นแบบเป็นโปรแกรม

Button Mode API สำหรับ Chrome ใน Android

ใน Chrome เวอร์ชัน 128 ช่วงทดลองใช้ต้นทางของ API โหมดปุ่มจะเริ่มต้นใน Chrome บน Android โดยตามช่วงทดลองใช้บนเดสก์ท็อปครั้งแรก เมื่อใช้ Button Mode API ผู้ให้บริการข้อมูลประจำตัวจะใช้ FedCM API ได้แม้ว่าผู้ใช้จะออกจากระบบ IdP ขณะเรียกใช้ API ก็ตาม ขั้นตอนการลงชื่อเข้าใช้จะเริ่มต้นด้วยการจับคู่นิ้วของผู้ใช้ ซึ่งแสดงถึงเจตนาของผู้ใช้ได้ดียิ่งขึ้น

ใน Chrome 128 มีการเปิดตัวฟีเจอร์ใหม่ที่ช่วยให้ IdP สามารถใส่ไอคอนโลโก้อย่างเป็นทางการของ RP ได้โดยตรงในการตอบกลับปลายทางข้อมูลเมตาไคลเอ็นต์ ซึ่งจะช่วยปรับปรุง UI ในอุปกรณ์เคลื่อนที่ในโหมดปุ่ม

คุณสามารถกำหนดค่าไอคอนของ RP ที่ฝั่ง IdP และแสดงผลในการตอบกลับ client_metadata_endpoint ได้เช่นเดียวกับการสร้างแบรนด์ IdP ในไฟล์การกำหนดค่า

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
ไอคอนโลโก้ของ IdP และ RP
ไอคอนโลโก้ของ IdP และ RP ใน UI การเปิดเผยข้อมูลบนอุปกรณ์เคลื่อนที่

ดูข้อมูลเพิ่มเติมเกี่ยวกับการรองรับไอคอนได้ในเอกสารประกอบสําหรับนักพัฒนาซอฟต์แวร์

หากผู้ใช้ยังไม่ได้ลงชื่อเข้าใช้ FedCM จะแจ้งให้ผู้ใช้ลงชื่อเข้าใช้ IdP โดยใช้ login_url ที่ IdP มีให้ผ่านแท็บที่กำหนดเองของ Chrome (CCT)

ผู้ใช้กำลังลงชื่อเข้าใช้ผ่านโหมดปุ่มในอุปกรณ์เคลื่อนที่

หากผู้ใช้ตรวจสอบสิทธิ์อีกครั้งด้วยบัญชีที่กลับมา ระบบจะไม่แสดง UI การเปิดเผยข้อมูล

ผู้ใช้ลงชื่อเข้าใช้ด้วยบัญชีที่กลับมา UI การเปิดเผยข้อมูลไม่แสดง

หากต้องการลงทะเบียนช่วงทดลองใช้ต้นทาง โปรดดูวิธีการสำหรับ Button Mode API บนเดสก์ท็อป หากคุณลงชื่อสมัครใช้ช่วงทดลองใช้จากต้นทางบนเดสก์ท็อปไว้แล้ว ฟีเจอร์นี้จะพร้อมให้คุณใช้งานโดยอัตโนมัติใน Chrome ใน Android ตั้งแต่ Chrome 128 เป็นต้นไป

Continuation API Bundle สําหรับ Chrome ใน Android

ตั้งแต่ Chrome เวอร์ชัน 128 เป็นต้นไป Continuation API Bundle จะพร้อมใช้งานใน Chrome บน Android โดยเป็นส่วนหนึ่งของช่วงทดลองใช้จากต้นทาง ซึ่งต่อจากการทดลองใช้ครั้งแรกบนเดสก์ท็อป แพ็กเกจนี้ประกอบด้วยฟีเจอร์หลายอย่างของ FedCM รวมถึง Continuation API, Parameters API, Fields API, Multi configURLs และป้ายกำกับบัญชีที่กำหนดเอง

Continuation API เปิดใช้ขั้นตอนการลงชื่อเข้าใช้แบบหลายขั้นตอน Parameters API ช่วยให้ส่งพารามิเตอร์เพิ่มเติมไปยัง IdP ได้ Fields API ช่วยให้ RP ขอแอตทริบิวต์บัญชีที่เฉพาะเจาะจงสำหรับ UI การเปิดเผยข้อมูลในกล่องโต้ตอบ FedCM ได้ นอกจากนี้ configURL หลายรายการยังรองรับไฟล์การกําหนดค่าหลายไฟล์สําหรับ IdP และป้ายกํากับบัญชีที่กําหนดเองช่วยให้ IdP กำกับเนื้อหาบัญชีเพื่อให้ RP กรองบัญชีตามป้ายกำกับเหล่านี้ได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับแพ็กเกจ Continuation API ได้ที่บล็อกโพสต์เรื่องแพ็กเกจ API อย่างต่อเนื่องบนเดสก์ท็อป หากต้องการลงทะเบียนเข้าร่วมช่วงทดลองใช้ต้นฉบับ ให้ทำตามวิธีการเหล่านี้ หากคุณลงชื่อสมัครใช้ช่วงทดลองใช้เวอร์ชันเดิมบนเดสก์ท็อปแล้ว ฟีเจอร์เหล่านี้จะพร้อมใช้งานใน Chrome บน Android โดยอัตโนมัติตั้งแต่ Chrome เวอร์ชัน 128 เป็นต้นไป

มีส่วนร่วมและแชร์ความคิดเห็น

หากคุณมีความคิดเห็นหรือพบปัญหาใดๆ คุณสามารถยื่นปัญหาได้ เราจะอัปเดตคู่มือนักพัฒนาซอฟต์แวร์ FedCM เวอร์ชัน Canonical ที่เป็นปัจจุบัน รวมถึงหน้าบันทึกการอัปเดตที่รวบรวมเอาไว้ด้วย