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

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

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

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

ผู้ใช้ลงชื่อเข้าใช้ด้วย IdP อื่นโดยใช้ Multi-IdP API

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

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

FedCM อนุญาตการตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติหากนักพัฒนาซอฟต์แวร์ขอ และหากมีบัญชีที่กลับมาบัญชีเดียว ในกรณีของ Multi 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
  • คุณลงชื่อเข้าใช้ 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

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

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

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

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

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

  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
    • สำหรับผู้เข้าร่วมช่วงทดลองใช้จากต้นทางของบุคคลที่สาม
      • ให้บริการโทเค็นแบบเป็นโปรแกรม

API โหมดปุ่มสำหรับ Chrome บน Android

ใน Chrome เวอร์ชัน 128 ช่วงทดลองใช้ต้นทางของ API โหมดปุ่มจะเริ่มต้นใน Chrome บน Android หลังจากช่วงทดลองใช้บนเดสก์ท็อปครั้งแรก เมื่อใช้ 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 สำหรับ Chrome ใน Android

ตั้งแต่ Chrome เวอร์ชัน 128 เป็นต้นไป แพ็กเกจ Continuation API จะพร้อมให้ใช้งานสำหรับ 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 ที่เป็นปัจจุบัน รวมถึงหน้าบันทึกการอัปเดตที่รวบรวมเอาไว้ด้วย