เว็บ API สําหรับการรวมศูนย์ข้อมูลระบบการระบุตัวตนที่รักษาความเป็นส่วนตัว
FedCM คืออะไร
FedCM (การจัดการข้อมูลเข้าสู่ระบบแบบรวมศูนย์) เป็นแนวทางที่รักษาความเป็นส่วนตัวสำหรับบริการข้อมูลประจำตัวแบบรวมศูนย์ (เช่น "ลงชื่อเข้าใช้ด้วย...") ที่ไม่ใช้คุกกี้ของบุคคลที่สามหรือการเปลี่ยนเส้นทางการนําทาง
สถานะการติดตั้งใช้งาน
- Chrome Platform Status
- FedCM shipped in Chrome 108.
- The FedCM proposal is open for public discussion.
- FedCM isn't supported in other browsers yet.
- Mozilla is implementing a prototype for Firefox and Apple has expressed general support and interest in working together on the FedCM proposal.
นับจากนี้ไป เราวางแผนที่จะเปิดตัวฟีเจอร์ใหม่ๆ หลายรายการโดยอิงตามความคิดเห็นที่เราได้รับจากผู้ให้บริการข้อมูลประจำตัว (IdP) ผู้อ้างอิง (RP) และผู้ให้บริการเบราว์เซอร์ แม้ว่าเราจะหวังว่าผู้ให้บริการข้อมูลระบุตัวตนจะนำ FedCM ไปใช้ แต่โปรดทราบว่า FedCM ยังเป็น API ที่อยู่ระหว่างการพัฒนา
เราขอแนะนํา 2 แนวทางสําหรับผู้ให้บริการข้อมูลประจําตัวเพื่อลดปัญหาในการทําให้การเปลี่ยนแปลงที่ไม่เข้ากันได้แบบย้อนหลังใช้งานได้
- สมัครรับข้อมูลจดหมายข่าวของเรา ซึ่งเราจะส่งข้อมูลอัปเดตเมื่อ API พัฒนาขึ้น
- เราขอแนะนําให้ผู้ให้บริการระบุตัวตนเผยแพร่ FedCM API โดยใช้ SDK ของ JavaScript ขณะที่ API กำลังพัฒนา และไม่ให้ RP โฮสต์ SDK ด้วยตนเอง วิธีนี้จะช่วยให้มั่นใจว่าผู้ให้บริการระบุตัวตนจะทำการเปลี่ยนแปลงได้เมื่อ API พัฒนาไปเรื่อยๆ โดยไม่ต้องขอให้บุคคลที่เชื่อถือทั้งหมดทำให้ใช้งานได้อีกครั้ง
เหตุใดจึงต้องใช้ FedCM
ในช่วง 10 ปีที่ผ่านมา การรวมข้อมูลระบุตัวตนมีบทบาทสำคัญในการยกระดับมาตรฐานการตรวจสอบสิทธิ์บนเว็บในด้านความน่าเชื่อถือ ความสะดวกในการใช้งาน (เช่น การลงชื่อเพียงครั้งเดียวแบบไม่ต้องใช้รหัสผ่าน) และความปลอดภัย (เช่น การปรับปรุงการต่อต้านฟิชชิงและการโจมตีด้วยข้อมูลเข้าสู่ระบบที่ซ้ำกัน) เมื่อเทียบกับชื่อผู้ใช้และรหัสผ่านของแต่ละเว็บไซต์
เมื่อใช้การรวมข้อมูลประจำตัว RP (บุคคลที่เชื่อถือ) จะอาศัย IdP (ผู้ให้บริการข้อมูลประจำตัว) เพื่อสร้างบัญชีให้ผู้ใช้โดยไม่ต้องใช้ชื่อผู้ใช้และรหัสผ่านใหม่
แต่น่าเสียดายที่กลไกที่การรวมข้อมูลระบุตัวตนใช้ (iframe, การเปลี่ยนเส้นทาง และคุกกี้) กำลังถูกละเมิดเพื่อติดตามผู้ใช้ทั่วทั้งเว็บ เนื่องจาก User Agent ไม่สามารถแยกความแตกต่างระหว่างการรวมข้อมูลระบุตัวตนกับการติดตาม การบรรเทาปัญหาการละเมิดประเภทต่างๆ จึงทําให้การติดตั้งใช้งานการรวมข้อมูลระบุตัวตนมีความยากขึ้น
Federated Credential Management API (FedCM) ให้การแยกแยะเฉพาะกรณีการใช้งานสำหรับขั้นตอนการระบุตัวตนแบบรวมศูนย์บนเว็บ โดยแสดงกล่องโต้ตอบที่สื่อผ่านเบราว์เซอร์ซึ่งช่วยให้ผู้ใช้เลือกบัญชีจากผู้ให้บริการระบุตัวตนเพื่อเข้าสู่ระบบเว็บไซต์ได้
FedCM เป็นเส้นทางแบบหลายขั้นตอนเพื่อปรับปรุงตัวตนบนเว็บให้ดียิ่งขึ้น ในขั้นตอนแรก เราจะมุ่งเน้นที่การลดผลกระทบจากข้อจำกัดของคุกกี้ของบุคคลที่สามที่มีต่อข้อมูลระบุตัวตนที่รวมศูนย์ (ดูขั้นตอนเพิ่มเติม 2-3 ขั้นตอนในส่วนแผนงาน)
เราคาดว่าจะได้รับผลกระทบอะไรบ้าง
จากความพยายามของชุมชนและการวิจัย เราพบว่าการผสานรวมที่เกี่ยวข้องกับการรวมข้อมูลระบุตัวตน 2-3 รายการได้รับผลกระทบจากข้อจำกัดเกี่ยวกับคุกกี้ของบุคคลที่สาม ดังนี้
- ช่องทางด้านหน้าของ OpenID Connect ออกจากระบบ
- การจัดการเซสชัน OpenID Connect
- การต่ออายุโทเค็นเบื้องหลังที่อิงตาม iframe
- วิดเจ็ตการเข้าสู่ระบบที่อิงตาม iframe
เป้าหมายแรกของ FedCM คือลดผลกระทบจากข้อจํากัดของคุกกี้ของบุคคลที่สามที่มีต่อการรวมข้อมูลระบุตัวตน และนี่คือขอบเขตที่เราคาดว่าจะได้รับผลกระทบ หากมี Use Case เพิ่มเติมที่ไม่ได้ระบุไว้ คุณสามารถมีส่วนร่วมและแชร์ความคิดเห็นได้
FedCM เป็นเครื่องหมายรับรองความน่าเชื่อถือสําหรับ API อื่นๆ
นอกจากจัดการข้อมูลประจำตัวแบบรวมศูนย์แล้ว FedCM ยังทำหน้าที่เป็นสัญญาณความน่าเชื่อถือสำหรับ Privacy Sandbox API อื่นๆ ด้วย
ตั้งแต่ Chrome เวอร์ชัน 131 เป็นต้นไป Storage Access API (SAA) ใช้ FedCM เป็นสัญญาณความน่าเชื่อถือ การผสานรวมนี้มีประโยชน์สําหรับเว็บไซต์ที่ใช้ทั้ง FedCM ในการรับรองความถูกต้องและ SAA เพื่อเปิดใช้ iframe ข้ามแหล่งที่มาในการเข้าถึงพื้นที่เก็บข้อมูลที่จําเป็น
เมื่อผู้ใช้ตรวจสอบสิทธิ์ด้วย FedCM โดยมี RP เลือกใช้ เนื้อหาของ IdP ที่ฝังอยู่ในเว็บไซต์ของ RP จะเรียกใช้เมธอด requestStorageAccess()
เพื่อรับสิทธิ์เข้าถึงพื้นที่เก็บข้อมูลโดยอัตโนมัติให้กับคุกกี้ระดับบนสุดของตนเองได้โดยไม่ต้องแสดงข้อความแจ้งให้ผู้ใช้ดำเนินการเพิ่มเติม ระบบจะมอบสิทธิ์โดยอัตโนมัติเฉพาะในกรณีที่ผู้ใช้ลงชื่อเข้าใช้ด้วย FedCM และสถานะการลงชื่อเข้าใช้ FedCM ใช้งานได้ อ่านรายละเอียดเพิ่มเติมได้ในเอกสารประกอบ Storage Access API
ผู้ที่ควรใช้ FedCM
เราคาดว่า FedCM จะมีประโยชน์กับคุณก็ต่อเมื่อเงื่อนไขทั้งหมดต่อไปนี้มีผล
- คุณเป็นผู้ให้บริการข้อมูลประจำตัว (IdP)
- คุณได้รับผลกระทบจากข้อจํากัดเกี่ยวกับคุกกี้ของบุคคลที่สาม
- RP คือเว็บไซต์ของบุคคลที่สาม หาก RP เป็นเว็บไซต์ที่เกี่ยวข้องอย่างมีความหมาย คุณอาจได้รับประโยชน์จากชุดเว็บไซต์ที่เกี่ยวข้องมากกว่า
คุณคือ IdP
FedCM ต้องมีการรองรับจากผู้ให้บริการข้อมูลประจำตัว บุคคลที่เชื่อถือใช้ FedCM ได้อย่างอิสระไม่ได้ หากคุณเป็น RP คุณสามารถขอให้ IdP ระบุวิธีการ
คุณได้รับผลกระทบจากข้อจํากัดเกี่ยวกับคุกกี้ของบุคคลที่สาม
คุณควรใช้ FedCM เฉพาะในกรณีที่การผสานรวมปัจจุบันได้รับผลกระทบจากข้อจํากัดคุกกี้ของบุคคลที่สาม
หากไม่แน่ใจว่าการรวมข้อมูลระบุตัวตนจะยังคงทำงานต่อไปหรือไม่เมื่อไม่มีคุกกี้ของบุคคลที่สาม คุณสามารถทดสอบผลลัพธ์ในเว็บไซต์ได้โดยการบล็อกคุกกี้ของบุคคลที่สามใน Chrome
หากไม่พบผลกระทบที่ตรวจพบได้กับการรวมข้อมูลประจำตัวโดยไม่ใช้คุกกี้ของบุคคลที่สาม คุณจะใช้การผสานรวมปัจจุบันต่อไปได้โดยไม่ต้องใช้ FedCM
หากไม่แน่ใจว่าต้องตรวจสอบอะไรบ้าง โปรดอ่านเพิ่มเติมเกี่ยวกับฟีเจอร์ที่ทราบซึ่งคาดว่าข้อจำกัดเกี่ยวกับคุกกี้ของบุคคลที่สามจะส่งผลกระทบ
RP ของคุณเป็นบุคคลที่สาม
หากคุณเป็นผู้ให้บริการข้อมูลประจำตัวที่ RP มีความสัมพันธ์กับ IdP ในลักษณะของบุคคลที่หนึ่ง เราคาดว่าชุดเว็บไซต์ที่เกี่ยวข้องอาจเป็นตัวเลือกที่ดีกว่า ชุดเว็บไซต์ที่เกี่ยวข้อง (RWS) เป็นวิธีที่องค์กรประกาศความสัมพันธ์ระหว่างเว็บไซต์ต่างๆ เพื่อให้เบราว์เซอร์อนุญาตการเข้าถึงคุกกี้ของบุคคลที่สามแบบจํากัดเพื่อวัตถุประสงค์บางอย่าง ซึ่งจะช่วยให้คุกกี้ของบุคคลที่สามทํางานได้กับชุดเว็บไซต์ที่เกี่ยวข้องอย่างมีความหมาย แม้ว่าจะมีการจํากัดคุกกี้ของบุคคลที่สามก็ตาม
ผู้ใช้จะโต้ตอบกับ FedCM อย่างไร
เป้าหมายหลักของ FedCM คือลดผลกระทบจากการจํากัดคุกกี้ของบุคคลที่สาม ผู้ใช้สามารถเปิดหรือปิดใช้ FedCM ในการตั้งค่าผู้ใช้ของ Chrome
FedCM ได้รับการออกแบบมาให้ใช้ได้กับทุกโปรโตคอลและมีฟังก์ชันการทำงานต่อไปนี้ที่เกี่ยวข้องกับการตรวจสอบสิทธิ์
ดูการสาธิตเพื่อดูวิธีการทำงานของฟีเจอร์นี้
ลงชื่อเข้าใช้กับบุคคลที่เชื่อถือ
เมื่อผู้ใช้ไปที่เว็บไซต์ของบุคคลที่เชื่อถือ (RP) กล่องโต้ตอบการลงชื่อเข้าใช้ FedCM จะปรากฏขึ้นหากผู้ใช้ลงชื่อเข้าใช้ IdP อยู่
หากผู้ใช้ไม่มีบัญชีใน RP ที่มี IdP กล่องโต้ตอบการลงชื่อสมัครใช้จะปรากฏขึ้นพร้อมข้อความการเปิดเผยข้อมูลเพิ่มเติม เช่น ข้อกำหนดในการให้บริการและนโยบายความเป็นส่วนตัวของ RP หากมี
ผู้ใช้ลงชื่อเข้าใช้ได้โดยการแตะต่อไปในฐานะ... หากดำเนินการสำเร็จ เบราว์เซอร์จะจัดเก็บข้อมูลว่าผู้ใช้ได้สร้างบัญชีที่รวมศูนย์ใน RP ด้วย IdP
RP ควรทํางานในเบราว์เซอร์ที่ไม่รองรับ FedCM ผู้ใช้ควรใช้กระบวนการลงชื่อเข้าใช้ที่มีอยู่ซึ่งไม่ใช่ FedCM ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของการลงชื่อเข้าใช้ใน FedCM
การตั้งค่าเพื่อเปิดหรือปิดใช้ FedCM
ผู้ใช้สามารถเปิดหรือปิดใช้ FedCM ได้ในการตั้งค่าของ Chrome ใน Android ไปที่การตั้งค่า > การตั้งค่าเว็บไซต์ > การลงชื่อเข้าใช้ของบุคคลที่สาม แล้วเปลี่ยนปุ่มสลับ
ผู้ใช้สามารถดำเนินการเดียวกันนี้ใน Chrome บนเดสก์ท็อปได้โดยไปที่
chrome://settings/content/federatedIdentityApi
ระยะเวลาพักของพรอมต์
หากผู้ใช้ปิด UI ด้วยตนเอง ระบบจะเพิ่มรายการลงใน UI การตั้งค่าชั่วคราว และ UI จะไม่แสดงในเว็บไซต์เดียวกันเป็นระยะเวลาหนึ่ง ระบบจะเปิดใช้ UI อีกครั้งหลังจากสิ้นสุดระยะเวลาดังกล่าว แต่ระยะเวลาจะเพิ่มขึ้นแบบทวีคูณเมื่อปิด UI ติดต่อกัน เช่น ใน Chrome
ปิดติดต่อกันหลายครั้ง | ระยะเวลาที่ระบบระงับข้อความแจ้งของ FedCM |
---|---|
1 | 2 ชั่วโมง |
2 | หนึ่งวัน |
3 | 1 สัปดาห์ |
4+ | 4 สัปดาห์ |
เบราว์เซอร์อื่นๆ อาจกำหนดระยะเวลาพักที่แตกต่างกัน
ผู้ใช้สามารถเปิดใช้ FedCM ใน RP อีกครั้งด้วยตนเองโดยไปที่หน้าการตั้งค่า หรือคลิก UI ของ PageInfo (ไอคอนแม่กุญแจข้างแถบ URL) แล้วรีเซ็ตสิทธิ์
แผนการใช้งาน
เรากําลังทําการเปลี่ยนแปลงหลายรายการใน FedCM ดูรายละเอียดเพิ่มเติมได้ในส่วนอัปเดต
- บันทึกการเปลี่ยนแปลง: การอัปเดต Federated Credential Management API
เราทราบดีว่ายังมีบางสิ่งที่ต้องทำ รวมถึงปัญหาที่เราได้ยินจากผู้ให้บริการ IdP, RP และเบราว์เซอร์ เราเชื่อว่าเราทราบวิธีแก้ปัญหาเหล่านี้
- การรองรับ iframe ข้ามแหล่งที่มา: IdP สามารถเรียกใช้ FedCM จากภายใน iframe ข้ามแหล่งที่มา (อัปเดต)
- ปุ่มที่ปรับเปลี่ยนในแบบของคุณ: IdP สามารถแสดงข้อมูลประจำตัวของผู้ใช้ที่กลับมาในปุ่มลงชื่อเข้าใช้จากภายใน iframe ข้ามแหล่งที่มาที่เป็นของ IdP (อัปเดต)
- ปลายทางเมตริก: ให้เมตริกประสิทธิภาพแก่ IdP
นอกจากนี้ เรายังพยายามหาวิธีแก้ปัญหาที่ยังไม่ได้รับการแก้ไขอยู่อย่างต่อเนื่อง รวมถึงข้อเสนอที่เฉพาะเจาะจงซึ่งเรากำลังประเมินหรือสร้างต้นแบบอยู่
- CORS: เรากําลังหารือกับ Apple และ Mozilla เพื่อปรับปรุงข้อกําหนดของการดึงข้อมูล FedCM
- API สำหรับ IdP หลายรายการ: เรากําลังหาวิธีรองรับIdP หลายรายการให้ทํางานร่วมกันในเครื่องมือเลือกบัญชี FedCM
- API สถานะการลงชื่อเข้าใช้ IdP: Mozilla พบปัญหาการโจมตีตามลำดับเวลา และเรากำลังหาวิธีให้ IdP แจ้งสถานะการลงชื่อเข้าใช้ของผู้ใช้ให้เบราว์เซอร์ทราบเพื่อบรรเทาปัญหา (อัปเดต)
- ลงชื่อเข้าใช้ IdP API: เพื่อรองรับสถานการณ์ต่างๆ เมื่อผู้ใช้ไม่ได้ลงชื่อเข้าใช้ IdP เบราว์เซอร์จะแสดง UI ให้ผู้ใช้ลงชื่อเข้าใช้โดยไม่ต้องออกจาก RP
สุดท้ายนี้ ยังมีสิ่งที่เราเชื่อว่ายังต้องดำเนินการอยู่ โดยอิงตามความคิดเห็นจาก Mozilla, Apple และผู้ตรวจสอบของ TAG เรากําลังประเมินวิธีแก้ปัญหาที่ดีที่สุดสําหรับคําถามที่ยังไม่ได้รับการตอบเหล่านี้
- การปรับปรุงความเข้าใจของผู้ใช้และการจับคู่ความตั้งใจ: ตามที่ Mozilla ได้กล่าวไว้ เราต้องการสำรวจรูปแบบ UX และพื้นที่ต่างๆ เพิ่มเติม รวมถึงเกณฑ์การทริกเกอร์
- แอตทริบิวต์ของข้อมูลระบุตัวตนและการเปิดเผยข้อมูลแบบเลือก: ตามที่ผู้ตรวจสอบ TAG ได้ระบุไว้ เราต้องการมอบกลไกในการแชร์แอตทริบิวต์ของข้อมูลระบุตัวตน (เช่น อีเมล ช่วงอายุ หมายเลขโทรศัพท์ และอื่นๆ) มากขึ้นหรือน้อยลงแบบเลือกได้
- การยกระดับพร็อพเพอร์ตี้ความเป็นส่วนตัว: ตามคำแนะนำของ Mozillaในจุดยืนด้านมาตรฐาน เราต้องการสำรวจกลไกต่างๆ ต่อไปเพื่อมอบการรับประกันความเป็นส่วนตัวที่ดียิ่งขึ้น เช่น การเปิด/ปิดใช้ IdP, ตัวระบุที่กําหนดเป้าหมาย
- ความสัมพันธ์กับ WebAuthn: ตามที่ Apple แนะนำ เรายินดีอย่างยิ่งที่ได้ดูความคืบหน้าเกี่ยวกับ พาสคีย์ และพยายามมอบประสบการณ์การใช้งานที่เชื่อมโยงกันระหว่าง FedCM, รหัสผ่าน, WebAuthn และ WebOTP
- สถานะการเข้าสู่ระบบ: เราเห็นด้วยกับคำแนะนำของ Apple ในAPI สถานะการเข้าสู่ระบบของ CG ความเป็นส่วนตัวที่ว่าสถานะการเข้าสู่ระบบของผู้ใช้เป็นข้อมูลเล็กๆ น้อยๆ ที่เป็นประโยชน์ซึ่งช่วยให้เบราว์เซอร์ตัดสินใจได้อย่างมีข้อมูล และเราหวังว่าจะได้เห็นโอกาสใหม่ๆ ที่เกิดขึ้นจากสถานะดังกล่าว (อัปเดต)
- องค์กรและการศึกษา: ดังที่เห็นได้ชัดใน CG ของ FedID ยังมีกรณีการใช้งานจำนวนมากที่ FedCM ไม่สามารถให้บริการได้ดีเท่าที่ควร ซึ่งเราต้องการแก้ไข เช่น การออกจากระบบในช่องทางด้านหน้า (ความสามารถของ IdP ในการส่งสัญญาณไปยัง RP เพื่อออกจากระบบ) และการสนับสนุน SAML
- ความสัมพันธ์กับ mDL/VC/อื่นๆ: พยายามทำความเข้าใจว่าสิ่งเหล่านี้ทำงานร่วมกับ FedCM อย่างไร เช่น Mobile Document Request API
ใช้ FedCM API
คุณต้องมีบริบทที่ปลอดภัย (HTTPS หรือ localhost) ทั้งบน IdP และ RP ใน Chrome เพื่อใช้ FedCM
หากต้องการผสานรวมกับ FedCM คุณต้องสร้างไฟล์ที่รู้จักกันดี ไฟล์การกําหนดค่า และปลายทางสําหรับรายการบัญชี การสร้างการยืนยัน และข้อมูลเมตาของไคลเอ็นต์ (ไม่บังคับ) จากนั้น FedCM จะแสดง JavaScript API ที่ RP สามารถใช้เพื่อลงชื่อเข้าใช้ด้วย IdP
ดูวิธีใช้ FedCM API ได้ที่คู่มือนักพัฒนาซอฟต์แวร์ FedCM
มีส่วนร่วมและแชร์ความคิดเห็น
- GitHub: อ่านคำอธิบาย แจ้งปัญหา และติดตามการพูดคุย
- การสนับสนุนนักพัฒนาซอฟต์แวร์: ถามคําถามและเข้าร่วมการสนทนาในที่เก็บการสนับสนุนนักพัฒนาซอฟต์แวร์ Privacy Sandbox
การปฏิบัติตามกฎหมายว่าด้วยความเป็นส่วนตัวทางอิเล็กทรอนิกส์
การใช้ FedCM ไม่ว่าจะในฐานะ IdP หรือ RP ก็ตาม เกี่ยวข้องกับการจัดเก็บข้อมูลในอุปกรณ์ปลายทางของผู้ใช้หรือการเข้าถึงข้อมูลที่จัดเก็บไว้แล้วในอุปกรณ์ดังกล่าว และด้วยเหตุนี้จึงเป็นกิจกรรมที่อยู่ภายใต้กฎหมายความเป็นส่วนตัวทางอิเล็กทรอนิกส์ในเขตเศรษฐกิจยุโรป (EEA) และสหราชอาณาจักร ซึ่งโดยทั่วไปแล้วต้องได้รับความยินยอมจากผู้ใช้ คุณมีหน้าที่รับผิดชอบในการพิจารณาว่าการใช้ FedCM ของคุณจําเป็นอย่างยิ่งในการให้บริการออนไลน์ที่ผู้ใช้ร้องขออย่างชัดเจนหรือไม่ และด้วยเหตุนี้จึงได้รับการยกเว้นจากข้อกําหนดความยินยอม หากต้องการข้อมูลเพิ่มเติม เราขอแนะนำให้คุณอ่านคำถามที่พบบ่อยเกี่ยวกับการปฏิบัติตามข้อกำหนดด้านความเป็นส่วนตัวใน Privacy Sandbox