กำหนดผู้ให้บริการพาสคีย์โดยใช้ AAGUID

ฝ่ายที่เชื่อถือ (RP) สามารถระบุผู้ให้บริการพาสคีย์ที่สร้างพาสคีย์ได้โดยตรวจสอบ AAGUID ของข้อมูลเข้าสู่ระบบคีย์สาธารณะที่เชื่อมโยง

ความท้าทายในการจัดการพาสคีย์

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

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

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

เบราว์เซอร์มีสตริง User Agent ที่ Relying Party ใช้ตั้งชื่อพาสคีย์ได้ แต่แพลตฟอร์มอย่าง Android, iOS หรือเบราว์เซอร์บนเดสก์ท็อปที่มีความสามารถในการใช้ส่วนขยายจะอนุญาตให้เครื่องมือจัดการรหัสผ่านของบุคคลที่สามสร้างพาสคีย์ได้ และสตริง User Agent ไม่ได้แสดงถึงผู้ให้บริการพาสคีย์ที่แท้จริงเสมอไป

เมื่อใช้ตัวระบุที่ไม่ซ้ำกันทั่วโลกของ Attestation ของ Authenticator (AAGUID) ซึ่งรวมอยู่ในข้อมูลเข้าสู่ระบบคีย์สาธารณะที่ส่งคืนเมื่อลงทะเบียนพาสคีย์ RP จะระบุผู้ให้บริการพาสคีย์และช่วยให้ผู้ใช้ค้นหาพาสคีย์ที่เหมาะสมได้

ระบุผู้ให้บริการพาสคีย์ด้วย AAGUID

AAGUID คือหมายเลขที่ไม่ซ้ำกันซึ่งระบุรุ่นของเครื่องมือตรวจสอบสิทธิ์ (ไม่ใช่อินสแตนซ์ที่เฉพาะเจาะจงของเครื่องมือตรวจสอบสิทธิ์) คุณดู AAGUID ได้ในส่วนข้อมูลเครื่องมือตรวจสอบสิทธิ์ของข้อมูลเข้าสู่ระบบคีย์สาธารณะ

เลย์เอาต์ออบเจ็กต์การรับรองที่แสดงข้อมูลเครื่องมือตรวจสอบสิทธิ์ที่รวมไว้ (มีข้อมูลเข้าสู่ระบบที่รับรอง) และคำสั่งการรับรอง
คุณดู AAGUID ได้ในข้อมูลเครื่องมือตรวจสอบสิทธิ์

RP สามารถใช้ AAGUID เพื่อระบุผู้ให้บริการพาสคีย์ได้ เช่น หากผู้ใช้สร้างพาสคีย์ในอุปกรณ์ Android โดยใช้เครื่องมือจัดการรหัสผ่านบน Google ทาง RP จะได้รับ AAGUID ของ "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4" RP สามารถใส่คำอธิบายประกอบพาสคีย์ในรายการพาสคีย์เพื่อระบุว่าสร้างขึ้นในเครื่องมือจัดการรหัสผ่านบน Google

การตั้งค่าพาสคีย์ภายในหน้าการตั้งค่าความปลอดภัยจะแสดงข้อมูลโดยละเอียดเกี่ยวกับพาสคีย์แต่ละรายการ
ตัวอย่าง UI การจัดการพาสคีย์

หากต้องการแมป AAGUID กับผู้ให้บริการพาสคีย์ RP สามารถใช้ที่เก็บ AAGUID ที่มาจากชุมชน การค้นหา AAGUID ในรายการจะช่วยให้ทราบชื่อผู้ให้บริการพาสคีย์และข้อความข้อมูล SVG ของไอคอน

การดึง AAGUID เป็นฟีเจอร์ที่ไลบรารี WebAuthn ส่วนใหญ่มีให้ ตัวอย่างต่อไปนี้แสดงโค้ดการลงทะเบียนฝั่งเซิร์ฟเวอร์โดยใช้ SimpleWebAuthn

// Import a list of AAGUIDs from a JSON file
import aaguids from './aaguids.json' with { type: 'json' };

...

 // Use SimpleWebAuthn handy function to verify the registration request.
const { verified, registrationInfo } = await verifyRegistrationResponse({
  response: credential,
  expectedChallenge,
  expectedOrigin,
  expectedRPID,
  requireUserVerification: false,
});

...

const { aaguid } = registrationInfo;
const provider_name = aaguids[aaguid]?.name || 'Unknown';

บทสรุป

AAGUID คือสตริงที่ไม่ซ้ำกันซึ่งระบุผู้ให้บริการพาสคีย์ที่สร้างพาสคีย์ RP สามารถใช้ AAGUID เพื่อให้ผู้ใช้จัดการพาสคีย์ได้ง่ายขึ้น ที่เก็บ AAGUID ที่มาจากชุมชนสามารถใช้เพื่อแมป AAGUID กับผู้ให้บริการพาสคีย์ได้