บุคคลที่เชื่อถือ (RP) สามารถระบุผู้ให้บริการพาสคีย์ที่สร้างพาสคีย์ได้โดยการตรวจสอบ AAGUID ของข้อมูลเข้าสู่ระบบด้วยคีย์สาธารณะที่เกี่ยวข้อง
ปัญหาเกี่ยวกับการจัดการพาสคีย์
ประโยชน์อย่างหนึ่งของการใช้พาสคีย์คือช่วยให้ผู้ใช้สร้างพาสคีย์หลายรายการสำหรับบัญชีเดียวได้ ความยืดหยุ่นนี้และความน่าเชื่อถือของพาสคีย์ทำให้ผู้ใช้ยังคงลงชื่อเข้าใช้กับฝ่ายที่เชื่อถือได้โดยใช้พาสคีย์อื่นได้ แม้ว่าจะเสียสิทธิ์เข้าถึงบัญชีเนื่องจากพาสคีย์สูญหายก็ตาม
ปัญหาสําหรับผู้ใช้ที่จัดการพาสคีย์หลายรายการใน RP คือ การระบุพาสคีย์ที่ถูกต้องเมื่อต้องการแก้ไขหรือลบพาสคีย์ที่ต้องการออกจากรายการอื่นๆ ตัวอย่างที่ดีคือเมื่อผู้ใช้ต้องการนำพาสคีย์ที่ไม่ได้ใช้ออก เราขอแนะนำให้ RP แนบข้อมูลเกี่ยวกับพาสคีย์ เช่น วันที่สร้างและวันที่ใช้ล่าสุดในรายการพาสคีย์ ซึ่งจะช่วยให้ผู้ใช้ค้นหาพาสคีย์ที่ต้องการได้
นอกจากนี้ RP ยังอนุญาตให้ผู้ใช้ตั้งชื่อพาสคีย์ได้ทันทีที่สร้างหรือในภายหลัง แต่ผู้ใช้จำนวนมากไม่ได้ตั้งชื่อ โดยหลักการแล้ว ระบบจะตั้งชื่อพาสคีย์โดยอัตโนมัติโดยอิงตามสัญญาณที่ส่งจากไคลเอ็นต์หรือข้อมูลที่อยู่ในข้อมูลเข้าสู่ระบบด้วยคีย์สาธารณะ
เบราว์เซอร์จะมีสตริง User Agent ที่ฝ่ายที่เชื่อถือสามารถใช้ตั้งชื่อพาสคีย์ได้ แต่แพลตฟอร์มต่างๆ เช่น Android, iOS หรือเบราว์เซอร์บนเดสก์ท็อปที่รองรับส่วนขยายจะอนุญาตให้เครื่องมือจัดการรหัสผ่านของบุคคลที่สามสร้างพาสคีย์ได้ และสตริง User Agent ไม่จำเป็นต้องระบุตัวตนของผู้ให้บริการพาสคีย์จริง
เมื่อใช้ตัวระบุที่ไม่ซ้ำกันทั่วโลกสำหรับการรับรองโปรแกรมตรวจสอบสิทธิ์ (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 ที่มาจากชุมชน