Xác định trình cung cấp khoá truy cập bằng AAGUID

Các bên phụ thuộc (RP) có thể xác định nhà cung cấp khoá truy cập đã tạo khoá truy cập bằng cách kiểm tra AAGUID của thông tin xác thực khoá công khai được liên kết.

Thách thức liên quan đến việc quản lý khoá truy cập

Một trong những lợi ích của việc sử dụng khoá truy cập là người dùng có thể tạo nhiều khoá truy cập cho một tài khoản. Với sự linh hoạt này cùng với độ mạnh của khoá truy cập, ngay cả khi người dùng bị khoá khỏi tài khoản do mất một trong các khoá truy cập, họ vẫn có thể đăng nhập vào bên phụ thuộc bằng các khoá truy cập thay thế.

Thách thức đối với những người dùng quản lý nhiều khoá truy cập trên một RP là xác định khoá truy cập phù hợp khi họ cần chỉnh sửa hoặc xoá một khoá truy cập cụ thể trong số các khoá truy cập khác. Một ví dụ điển hình là khi người dùng muốn xoá một khoá truy cập không dùng đến. Bạn nên đính kèm thông tin về khoá truy cập, chẳng hạn như ngày tạo và ngày sử dụng gần đây nhất trong danh sách khoá truy cập. Điều này giúp người dùng tìm thấy một khoá truy cập cụ thể.

RP cũng có thể cho phép người dùng đặt tên cho khoá truy cập ngay khi tạo hoặc sau đó, nhưng nhiều người dùng không làm vậy. Tốt nhất là khoá truy cập được đặt tên tự động phản ánh các tín hiệu được gửi từ ứng dụng hoặc thông tin có trong thông tin xác thực khoá công khai.

Trình duyệt cung cấp một chuỗi tác nhân người dùng mà các bên phụ thuộc có thể sử dụng để đặt tên cho khoá truy cập, nhưng các nền tảng như Android, iOS hoặc trình duyệt trên máy tính có chức năng tiện ích cho phép trình quản lý mật khẩu bên thứ ba tạo khoá truy cập và chuỗi tác nhân người dùng không nhất thiết phải thể hiện bên nào là nhà cung cấp khoá truy cập thực tế.

Với Giá trị nhận dạng duy nhất trên toàn cầu của quy trình chứng thực trình xác thực (AAGUID), có trong thông tin xác thực khoá công khai được trả về khi đăng ký khoá truy cập, RP có thể xác định nhà cung cấp khoá truy cập và sử dụng khoá truy cập đó để người dùng dễ dàng tìm thấy khoá truy cập phù hợp.

Xác định nhà cung cấp khoá truy cập bằng AAGUID

AAGUID là một số duy nhất giúp xác định mô hình của trình xác thực (không phải thực thể cụ thể của trình xác thực). Bạn có thể tìm thấy AAGUID trong dữ liệu trình xác thực của thông tin xác thực khoá công khai.

Bố cục đối tượng chứng thực minh hoạ dữ liệu trình xác thực được đưa vào (chứa dữ liệu thông tin xác thực được chứng thực) và tuyên bố chứng thực.
AAGUID có trong dữ liệu trình xác thực.

RP có thể sử dụng AAGUID để xác định nhà cung cấp khoá truy cập. Ví dụ: nếu người dùng tạo khoá truy cập trên thiết bị Android bằng Trình quản lý mật khẩu của Google, thì RP sẽ nhận được AAGUID là "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4". RP có thể chú thích khoá truy cập trong danh sách khoá truy cập để cho biết khoá truy cập đó được tạo trên Trình quản lý mật khẩu của Google.

Phần cài đặt khoá truy cập trong trang cài đặt bảo mật cho biết thông tin chi tiết về từng khoá truy cập.
Giao diện người dùng quản lý khoá truy cập mẫu.

Để liên kết AAGUID với nhà cung cấp khoá truy cập, RP có thể sử dụng kho lưu trữ AAGUID do cộng đồng cung cấp. Bằng cách tra cứu AAGUID trên danh sách, bạn có thể tìm thấy tên nhà cung cấp khoá truy cập và văn bản dữ liệu svg của biểu tượng đó.

Truy xuất AAGUID là một tính năng mà hầu hết các thư viện WebAuthn đều cung cấp. Ví dụ sau đây cho thấy mã đăng ký phía máy chủ sử dụng 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';

Kết luận

AAGUID là một chuỗi duy nhất giúp xác định nhà cung cấp khoá truy cập đã tạo khoá truy cập. RP có thể sử dụng AAGUID để giúp người dùng dễ dàng quản lý khoá truy cập của họ. Bạn có thể sử dụng kho lưu trữ AAGUID do cộng đồng cung cấp để liên kết AAGUID với trình cung cấp khoá truy cập.