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