รองรับการตรวจสอบสิทธิ์ซ้ำอัตโนมัติใน FedCM

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

ตรวจสอบสิทธิ์ผู้ใช้ซ้ำโดยอัตโนมัติผ่าน 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