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