ฝ่ายที่เชื่อถือ (RP) สามารถระบุผู้ให้บริการพาสคีย์ที่สร้างพาสคีย์ได้โดยตรวจสอบ AAGUID ของข้อมูลเข้าสู่ระบบคีย์สาธารณะที่เชื่อมโยง
ความท้าทายในการจัดการพาสคีย์
ข้อดีอย่างหนึ่งของการใช้พาสคีย์คือพาสคีย์ช่วยให้ผู้ใช้สร้างพาสคีย์หลายรายการสำหรับบัญชีเดียวได้ ความยืดหยุ่นนี้ควบคู่ไปกับความแข็งแกร่งของพาสคีย์จะช่วยให้ผู้ใช้ยังคงลงชื่อเข้าใช้ผู้ให้บริการได้โดยใช้พาสคีย์สำรอง แม้ว่าระบบจะล็อกไม่ให้ผู้ใช้เข้าถึงบัญชีเนื่องจากทำพาสคีย์หายไปก็ตาม
ความท้าทายสำหรับผู้ใช้ที่จัดการพาสคีย์หลายรายการใน RP คือการระบุพาสคีย์ที่ถูกต้องเมื่อต้องการแก้ไขหรือลบพาสคีย์ใดพาสคีย์หนึ่ง ตัวอย่างที่ดีคือเมื่อผู้ใช้ต้องการนำพาสคีย์ที่ไม่ได้ใช้ออก เราขอแนะนำให้ RP แนบข้อมูลเกี่ยวกับพาสคีย์ เช่น วันที่สร้างและวันที่ใช้งานล่าสุด ในรายการพาสคีย์ ซึ่งจะช่วยให้ผู้ใช้ค้นหาพาสคีย์ที่ต้องการได้
นอกจากนี้ RP ยังอนุญาตให้ผู้ใช้ตั้งชื่อพาสคีย์ทันทีที่สร้างหรือในภายหลังได้ด้วย แต่ผู้ใช้จำนวนมากไม่ได้ตั้งชื่อ ในอุดมคติ ระบบจะตั้งชื่อพาสคีย์โดยอัตโนมัติซึ่งสะท้อนถึงสัญญาณที่ส่งจากไคลเอ็นต์หรือข้อมูลที่รวมอยู่ในข้อมูลเข้าสู่ระบบคีย์สาธารณะ
เบราว์เซอร์มีสตริง User Agent ที่ Relying Party ใช้ตั้งชื่อพาสคีย์ได้ แต่แพลตฟอร์มอย่าง Android, iOS หรือเบราว์เซอร์บนเดสก์ท็อปที่มีความสามารถในการใช้ส่วนขยายจะอนุญาตให้เครื่องมือจัดการรหัสผ่านของบุคคลที่สามสร้างพาสคีย์ได้ และสตริง User Agent ไม่ได้แสดงถึงผู้ให้บริการพาสคีย์ที่แท้จริงเสมอไป
เมื่อใช้ตัวระบุที่ไม่ซ้ำกันทั่วโลกของ Attestation ของ Authenticator (AAGUID) ซึ่งรวมอยู่ในข้อมูลเข้าสู่ระบบคีย์สาธารณะที่ส่งคืนเมื่อลงทะเบียนพาสคีย์ RP จะระบุผู้ให้บริการพาสคีย์และช่วยให้ผู้ใช้ค้นหาพาสคีย์ที่เหมาะสมได้
ระบุผู้ให้บริการพาสคีย์ด้วย AAGUID
AAGUID คือหมายเลขที่ไม่ซ้ำกันซึ่งระบุรุ่นของเครื่องมือตรวจสอบสิทธิ์ (ไม่ใช่อินสแตนซ์ที่เฉพาะเจาะจงของเครื่องมือตรวจสอบสิทธิ์) คุณดู AAGUID ได้ในส่วนข้อมูลเครื่องมือตรวจสอบสิทธิ์ของข้อมูลเข้าสู่ระบบคีย์สาธารณะ

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

หากต้องการแมป 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 กับผู้ให้บริการพาสคีย์ได้