Chrome รองรับการตรวจสอบสิทธิ์ซ้ำอัตโนมัติใน FedCM
Federated Credential Management API (FedCM) คือ Web API สำหรับการรวมศูนย์ข้อมูลประจำตัวที่รักษาความเป็นส่วนตัว ด้วยการรวมศูนย์ข้อมูลประจำตัว RP (ฝ่ายที่พึ่งพา) ใช้ IdP (ผู้ให้บริการข้อมูลประจำตัว) เพื่อให้ผู้ใช้ได้รับ ได้โดยไม่ต้องมีชื่อผู้ใช้และรหัสผ่านใหม่
FedCM ช่วยให้เบราว์เซอร์เข้าใจบริบทที่ RP และ IdP แลกเปลี่ยนข้อมูล แจ้งผู้ใช้เกี่ยวกับข้อมูลและสิทธิ์ มีการแชร์ระดับและป้องกันการละเมิดโดยไม่ตั้งใจ FedCM พร้อมให้บริการแล้วใน Chrome ตั้งแต่เวอร์ชัน 108
ใน Chrome 115 นั้น FedCM ได้รับการสนับสนุนสำหรับการตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติ ซึ่งจะช่วยปรับปรุง ประสบการณ์ของผู้ใช้และช่วยให้ RP ตรวจสอบสิทธิ์ซ้ำได้อย่างมีประสิทธิภาพมากขึ้น หลังได้รับความยินยอมครั้งแรก
การตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติ
ปัจจุบัน หลังจากที่ผู้ใช้สร้างบัญชีแบบรวมศูนย์ในกลุ่ม RP ที่มี IdP แล้ว ผ่าน FedCM API ครั้งถัดไปที่ เข้าชมเว็บไซต์ที่ต้องดำเนินการตามขั้นตอนเดียวกันนี้ในอินเทอร์เฟซผู้ใช้ ซึ่งหมายความว่าผู้ใช้จะต้องยืนยันด้วยตนเองอีกครั้งอย่างชัดแจ้ง ตรวจสอบสิทธิ์อีกครั้งและดำเนินการขั้นตอนการลงชื่อเข้าใช้
แม้ว่าประสบการณ์ของผู้ใช้ที่ชัดเจนนั้นสมเหตุสมผลกว่าที่ผู้สร้างจะสร้างขึ้น บัญชีแบบรวมศูนย์เพื่อป้องกันการติดตาม (ซึ่งเป็นหนึ่งในเป้าหมายหลักของ FedCM) การดำเนินการอาจยุ่งยากโดยไม่จำเป็นหลังจากที่ผู้ใช้ได้อ่านเนื้อหามาแล้ว 1 ครั้ง โดย ผู้ใช้ให้สิทธิ์เพื่ออนุญาตการสื่อสารระหว่าง RP และ IdP ไม่มีประโยชน์ด้านความเป็นส่วนตัวหรือความปลอดภัยในการบังคับใช้ผู้ใช้ที่ไม่เหมาะสมรายอื่น การยืนยันสำหรับสิ่งที่พวกเขาได้รับทราบไปก่อนหน้านี้แล้ว เราจึงจะเปิดตัว UX ที่มีประสิทธิภาพมากขึ้นซึ่ง RP เลือกใช้ได้ ผู้ใช้ที่กลับมา
FedCM การตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติ (เรียกสั้นๆ ว่า "auto-reauthn") ทำให้ผู้ใช้ตรวจสอบสิทธิ์อีกครั้งได้โดยอัตโนมัติ กลับมาหลังจากการตรวจสอบสิทธิ์ครั้งแรกโดยใช้ FedCM "แท็กเริ่มต้น การตรวจสอบสิทธิ์" หมายความว่าผู้ใช้สร้างบัญชีหรือลงชื่อเข้าใช้ ได้โดยแตะปุ่ม "ดำเนินการต่อในฐานะ..." ในกล่องโต้ตอบการลงชื่อเข้าใช้ของ FedCM เป็นครั้งแรกในอินสแตนซ์ของเบราว์เซอร์เดียวกัน
เลือกตัวเลือกสำหรับการตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติ
เรากำลังเปิดตัวการตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติเพื่อมอบ UX ที่ดียิ่งขึ้นและเพื่อให้สอดคล้องกับ
ประสบการณ์ของผู้ใช้จะแตกต่างออกไปโดยไม่ต้องใช้โค้ดใดๆ
เปลี่ยน เมื่อมีการตรวจสอบสิทธิ์ซ้ำอัตโนมัติ เบราว์เซอร์จะเปลี่ยนลักษณะการทำงานโดยขึ้นอยู่กับ
ในตัวเลือกที่คุณเลือกในตัวเลือก mediation
ที่นักพัฒนาแอปมีให้
navigator.credentials.get()
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/fedcm.json",
clientId: "1234",
}],
},
mediation: 'optional', // this is the default
});
mediation
คือพร็อพเพอร์ตี้ในการจัดการข้อมูลเข้าสู่ระบบ
API
ก็จะทำงานเหมือนเดิม
เท่ากัน
ทำเพื่อ
PasswordCredential
และ
FederatedCredential
และมีการสนับสนุนบางส่วนโดย
PublicKeyCredential
ได้เป็นอย่างดี พร็อพเพอร์ตี้ยอมรับค่า 4 ค่าต่อไปนี้
'required'
: ต้องใช้สื่อกลางเพื่อดำเนินการต่อไป ตัวอย่างเช่น การคลิก "ต่อไป" ใน UI เลือกตัวเลือกนี้หากผู้ใช้คาดว่าจะ ให้สิทธิ์อย่างชัดเจนทุกครั้งที่ต้องตรวจสอบสิทธิ์'optional'
(ค่าเริ่มต้น): ตรวจสอบสิทธิ์ใหม่โดยอัตโนมัติหากเป็นไปได้ ต้องใช้สื่อกลาง หากไม่สามารถทำได้ พ เราขอแนะนำให้เลือกตัวเลือกนี้ในหน้าลงชื่อเข้าใช้'silent'
: ตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติหากเป็นไปได้ จะดำเนินการไม่สำเร็จโดยไม่มีข้อขัดข้อง สื่อกลางหากไม่ใช่ เราขอแนะนำให้เลือกตัวเลือกนี้ในหน้าเว็บอื่นที่ไม่ใช่ สำหรับลงชื่อเข้าใช้โดยเฉพาะ แต่คุณต้องการให้ผู้ใช้ลงชื่อเข้าใช้ เช่น หน้าสินค้าในเว็บไซต์การจัดส่งหรือหน้าบทความในข่าว เว็บไซต์ของคุณ'conditional'
: ใช้สำหรับ WebAuthn และใช้กับ FedCM ไม่ได้ในขณะนี้
การตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติจะเกิดขึ้นภายใต้เงื่อนไขต่อไปนี้
- FedCM พร้อมให้ใช้งานแล้ว เช่น ผู้ใช้ไม่ได้ปิดใช้ FedCM ทั่วโลกหรือสำหรับ RP ในการตั้งค่า
- ผู้ใช้ใช้เพียงบัญชีเดียวที่มี FedCM API เพื่อลงชื่อเข้าใช้เว็บไซต์ใน เบราว์เซอร์
- ผู้ใช้ลงชื่อเข้าใช้ IdP ด้วยบัญชีนั้น
- การตรวจสอบสิทธิ์ซ้ำอัตโนมัติไม่ได้เกิดขึ้นในช่วง 10 นาทีที่ผ่านมา
- RP ยังไม่ได้โทรหา
หลังจากนั้น
navigator.credentials.preventSilentAccess()
การลงชื่อเข้าใช้ก่อนหน้า
เมื่อมีคุณสมบัติตรงตามเงื่อนไขข้างต้น ระบบจะพยายามตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติ
ผู้ใช้จะเริ่มต้นทันทีที่มีการเรียก navigator.credentials.get()
ของ FedCM
บังคับใช้สื่อกลางด้วย preventSilentAccess()
การตรวจสอบสิทธิ์ผู้ใช้อีกครั้งโดยอัตโนมัติทันทีที่ออกจากระบบไม่ได้เป็นการ ประสบการณ์ที่ดีของผู้ใช้ ด้วยเหตุนี้ FedCM จึงมีเวลาเงียบใน 10 นาทีหลังจาก การตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติเพื่อป้องกันปัญหานี้ ซึ่งหมายความว่าการตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติจะเกิดขึ้น ไม่เกิน 1 ครั้งในทุก 10 นาที เว้นแต่ผู้ใช้จะลงชื่อเข้าใช้อีกครั้งภายใน 10 นาที RP ควรเรียก navigator.credentials.preventSilentAccess() ไปยัง ขอให้เบราว์เซอร์ปิดใช้การตรวจสอบสิทธิ์ซ้ำอัตโนมัติอย่างชัดแจ้งเมื่อผู้ใช้ออกจากระบบ RP อย่างชัดแจ้ง เช่น การคลิกปุ่มออกจากระบบ
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
ผู้ใช้สามารถเลือกไม่ใช้การตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติได้ในการตั้งค่า
ผู้ใช้สามารถเลือกไม่ใช้การตรวจสอบสิทธิ์ซ้ำอัตโนมัติได้จากเมนูการตั้งค่า ดังนี้
- ใน Chrome บนเดสก์ท็อป ให้ไปที่
chrome://password-manager/settings
> ลงชื่อเข้าใช้ โดยอัตโนมัติ - เปิดการตั้งค่า > ใน Android Chrome เครื่องมือจัดการรหัสผ่าน > แตะ รูปเฟืองที่มุมขวาบน > ลงชื่อเข้าใช้อัตโนมัติ
เมื่อปิดใช้การสลับ ผู้ใช้จะสามารถเลือกไม่ใช้ลักษณะการทำงานของการตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติทั้งหมดได้ ระบบจะจัดเก็บและซิงค์ข้อมูลการตั้งค่านี้ในอุปกรณ์ต่างๆ หากผู้ใช้ ลงชื่อเข้าใช้บัญชี Google ในอินสแตนซ์ของ Chrome และการซิงค์ข้อมูล เปิดอยู่
แชร์ความคิดเห็น
หากคุณกำลังทดสอบ FedCM คุณสามารถแชร์ความคิดเห็นหรือปัญหาที่พบ ที่ crbug.com ภายใต้คอมโพเนนต์ "Blink>Identity>FedCM"
รูปภาพโดย Noah Samuel Franz ใน Unsplash