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