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

Natalia Markoborodova
Natalia Markoborodova

ตั้งแต่ 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

โปรดทราบว่าหากต้องการลองใช้ 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

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

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

คุณลองใช้ฟีเจอร์ IdP หลายรายการได้โดยลงทะเบียนเพื่อทดลองใช้ต้นทางตั้งแต่ Chrome 128 เป็นต้นไป

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

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

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

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

ตั้งแต่ Chrome เวอร์ชัน 128 เป็นต้นไป ช่วงทดลองใช้จากต้นทางของ Button Mode 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 การเปิดเผยข้อมูลไม่แสดง

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

ชุด API การดำเนินการต่อสำหรับ Chrome บน Android

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

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

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

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

หากมีข้อเสนอแนะหรือพบปัญหา โปรดแจ้งปัญหา เราจะคอยอัปเดตคำแนะนำสำหรับนักพัฒนาแอป FedCM ที่เป็น Canonical รวมถึงหน้าบันทึกการอัปเดตที่สะสมไว้