Trang này được dịch tự động. Đọc phiên bản gốc bằng tiếng Anh tại đây.
Whitepaper Passkey cho enterprise. Hướng dẫn thực tế, mẫu triển khai và KPI cho chương trình passkeys.
| Nền tảng | Trình xác thực nền tảng (Platform Authenticators) | Khóa bảo mật (Security Keys) |
|---|---|---|
| Trình duyệt web | Windows Hello: ["internal"]Google Password Manager: ["internal", "hybrid"]iCloud Keychain: ["internal", "hybrid"] | ["usb", "nfc"] |
| Ứng dụng Native Android | ["internal", "hybrid"] | ["usb", "nfc"] |
| Ứng dụng Native iOS | ⚠️ Trống [] (iCloud Keychain) | ["usb", "nfc"] |
Lưu ý: Theo đặc tả WebAuthn, chuỗi transport trống có nghĩa là thông tin transport không khả dụng hoặc bị giữ lại vì mục đích quyền riêng tư. Thường được các trình duyệt hiểu là mọi transport đều có thể khả thi.
internal
và hybrid thống trị các triển khai trong môi trường production, trong khi các trình
xác thực nền tảng của iOS lại có đặc điểm duy nhất là trả về các mảng transport trống.[] cho các trình xác thực nền
tảng iCloud Keychain, không giống như các trình duyệt web và Credential Manager của
Android báo cáo dữ liệu transport chính xác.internal và hybrid để kiểm soát các tùy chọn UI xác thực nào sẽ xuất hiện.["internal", "hybrid"] là phổ biến nhất; các transport của
khóa bảo mật phần cứng (usb, nfc) rất hiếm, chủ yếu được sử dụng trong môi
trường doanh nghiệp hoặc các kịch bản bảo mật cao.hybrid đạt khoảng 60–78% trên web
Windows và 66–86% trên web macOS nói chung, với các luồng ưu tiên định danh
(identifier-first) ở mức thấp hơn (52–67% trên web Win, 59–76% trên web macOS) và ngữ
cảnh đẩy (nudge) trên cùng một thiết bị ở mức cao hơn (79–98% trên web Win, 83–98% trên
web macOS). hybrid là transport có chi phí cao nhất và nên được định tuyến phù hợp
(Corbado Passkey Benchmark 2026, Q1 2026).Khi triển khai passkey trên các nền tảng, các nhà phát triển phải đối mặt với một quyết định quan trọng:
Câu trả lời nằm ở việc hiểu rõ các WebAuthn transport-một chi tiết kỹ thuật xác định cách các trình xác thực giao tiếp với các relying party. Mặc dù các transport có vẻ đơn giản trên lý thuyết, nhưng việc triển khai chúng lại khác nhau đáng kể giữa các trình duyệt web, ứng dụng iOS native và ứng dụng Android native, đặc biệt là đối với việc xử lý internal và hybrid transport.
Bài viết này xem xét cách các WebAuthn transport hoạt động trên các nền tảng khác nhau và trình bày hai cách tiếp cận riêng biệt để xử lý internal và hybrid transport-mỗi cách đều có những ưu nhược điểm riêng.
Bài viết gần đây
♟️
Tại sao bạn cần Khả năng quan sát xác thực cho CIAM
🔑
Giải thích về Device Bound Session Credentials (DBSC)
📖
WebAuthn Relying Party ID (rpID) & Passkeys: Tên miền & Ứng dụng gốc
♟️
Chiến lược Passkey: Tại sao việc triển khai Passkey của bạn sẽ thất bại
♟️
Các vấn đề Passkey Ngày 2: 5 rủi ro sau khi ra mắt
Bài viết này bao gồm:
WebAuthn transport định nghĩa các phương thức giao tiếp giữa trình xác thực và thiết bị máy khách. Đặc tả WebAuthn Level 3 định nghĩa sáu loại transport:
usb: Được sử dụng bởi các
khóa bảo mật phần cứng kết nối qua
cổng USB, chẳng hạn như YubiKey hoặc các token
bảo mật FIDO2 khác.
nfc: Cho phép giao tiếp với các trình
xác thực thông qua Near Field Communication
(Giao tiếp trường gần), cho phép người dùng chạm khóa bảo mật của họ
hoặc thiết bị hỗ trợ NFC.
ble: Tạo điều kiện cho việc xác thực qua Bluetooth Low
Energy (Năng lượng thấp), cho phép giao tiếp không dây với các
trình xác thực bên ngoài.
smart-card: Được sử dụng cho các đầu đọc
thẻ thông minh, cho phép xác thực qua
thẻ thông minh.
hybrid: Cho phép xác thực liên thiết bị, điển hình là khi người dùng quét
mã QR để xác thực trên các thiết bị-chẳng
hạn như sử dụng điện thoại để xác thực trên trình duyệt máy tính để bàn hoặc ngược lại.
Transport này có thể kích hoạt lời nhắc
mã QR trên cả thiết bị di động và máy
tính để bàn, điều này có thể không phải lúc nào cũng mong muốn tùy thuộc vào ngữ cảnh. Lưu
ý: hybrid đã được thêm vào trong WebAuthn Level 3.
internal: Trình xác thực được nhúng bên trong chính thiết bị-như
iCloud Keychain (được xác minh qua
Face ID hoặc Touch ID) trên iPhone,
Windows Hello trên PC, hoặc
Google Password Manager trên thiết bị
Android. Đây là các trình xác thực nền tảng
(platform authenticators).
Khi passkey được tạo, trình xác thực sẽ báo
hiệu các transport mà nó hỗ trợ. Thông tin này được gửi đến
relying party (backend của bạn), bộ phận này sẽ lưu trữ nó cùng
với thông tin xác thực (credential). Trong quá trình xác thực,
relying party sẽ gửi các transport này trở lại máy khách trong
danh sách allowCredentials, giúp trình duyệt hoặc nền tảng xác định phương thức xác thực
nào sẽ được cung cấp cho người dùng.
Việc xử lý transport có sự khác biệt đáng kể giữa các nền tảng, tạo ra những thách thức về khả năng tương thích mà các nhà phát triển phải đối mặt.
Trình duyệt nhận thông tin transport từ các trình xác thực và tuân thủ nó trong quá trình xác thực. Khi bạn tạo một passkey trong Chrome, Safari hoặc Edge, trình quản lý thông tin xác thực của trình duyệt cung cấp dữ liệu transport thay đổi dựa trên trình xác thực bên dưới:
Trình xác thực nền tảng (Platform authenticators):
Windows Hello chỉ cung cấp ["internal"], phản ánh tính chất
gắn liền với thiết bị của nó. Tuy nhiên, khi
Chrome sử dụng Google Password Manager làm
trình xác thực, nó sẽ cung cấp ["internal", "hybrid"] vì
Google Password Manager hỗ trợ xác thực liên
thiết bị qua Điện thoại Android.
Khóa bảo mật phần cứng (Hardware security keys): Cung cấp các transport cụ thể như
["usb", "nfc"] dựa trên khả năng thực tế của chúng.
Trình quản lý thông tin xác thực đồng bộ đám mây:
iCloud Keychain trong Safari và Google Password Manager trong
Chrome thường cung cấp ["internal", "hybrid"] để hỗ trợ cả luồng xác thực cục bộ và liên
thiết bị.
Thông tin này luân chuyển một cách đáng tin cậy trong các ngữ cảnh web, mặc dù các transport cụ thể phụ thuộc vào trình xác thực nào mà trình duyệt chọn để lưu trữ thông tin xác thực.
Tài liệu: Đặc tả W3C WebAuthn
API Credential Manager của Android hoạt động tương tự như trình duyệt web. Khi tạo passkey trong ứng dụng Android native, Credential Manager cung cấp thông tin transport phản ánh hành vi của web-các trình xác thực nền tảng báo cáo khả năng của chúng một cách chính xác và hệ thống xử lý dữ liệu transport một cách nhất quán. Các nhà phát triển Android có thể tin cậy vào thông tin này mà không cần xử lý đặc biệt.
Tài liệu: Android Credential Manager
iOS thể hiện một tình huống phức tạp hơn. Framework AuthenticationServices của Apple xử lý transport theo các cách khác nhau tùy thuộc vào loại trình xác thực:
Trình xác thực nền tảng (iCloud Keychain, được xác minh qua Face ID hoặc Touch ID): Thường trả về mảng transport trống trong quá trình tạo passkey. Điều này cho thấy thông tin transport không khả dụng hoặc bị giữ lại vì quyền riêng tư-theo đặc tả WebAuthn, các user agent có thể trả về các chuỗi trống khi không biết thông tin transport hoặc để bảo vệ quyền riêng tư. Các relying party nên coi các transport như các gợi ý thay vì là những đảm bảo.
Khóa bảo mật: Cung cấp thông tin transport (ví dụ: ["usb"], ["nfc"]) khi được sử
dụng với các thiết bị iOS, tuân theo mẫu được mong
đợi.
Tài liệu: Apple AuthenticationServices
Dữ liệu production thực tế từ các ứng dụng web và native tiết lộ các mẫu transport sau, được sắp xếp theo tần suất. Lưu ý rằng các phân phối này bị ảnh hưởng bởi các chi tiết cụ thể về triển khai và đặc điểm nhân khẩu học của máy khách (sử dụng thiết bị di động so với máy tính để bàn, tính khả dụng của các ứng dụng native), nhưng chúng cung cấp thông tin chi tiết có giá trị về việc sử dụng transport thông thường:
| Mẫu Transport | Tần suất | Nguồn |
|---|---|---|
["internal", "hybrid"] | Rất phổ biến | Các trình quản lý thông tin xác thực đồng bộ đám mây (iCloud Keychain, Google Password Manager) trên web và native |
["hybrid", "internal"] | Rất phổ biến | Giống như trên, thay đổi thứ tự |
[] (mảng trống) | Rất phổ biến | Trình xác thực nền tảng iOS native |
["internal"] | Phổ biến | Windows Hello, trình xác thực gắn liền với thiết bị |
["internal", "cable"] | Hiếm | Ký hiệu cũ cho hybrid (cable = thuật ngữ cũ) |
["nfc", "usb"] | Rất hiếm | Khóa bảo mật phần cứng |
["usb"] | Rất hiếm | Khóa bảo mật chỉ hỗ trợ USB |
["hybrid"] | Rất hiếm | Cấu hình chỉ hỗ trợ hybrid |
Thông tin chi tiết chính:
Trình xác thực nền tảng thống trị: Phần lớn các passkey sử dụng transport internal,
thường kết hợp với hybrid để hỗ trợ xác thực liên thiết bị. Điều này phản ánh sự tập
trung của người tiêu dùng vào các trình xác thực nền tảng (iCloud Keychain, Google
Password Manager).
Mảng trống rất phổ biến: Các ứng dụng iOS native thường trả về các mảng transport trống cho các trình xác thực nền tảng, đại diện cho một phần đáng kể thông tin xác thực trên production. Như đã thảo luận trong phần 2.2.3, điều này cho thấy thông tin transport không khả dụng chứ không phải là hỗ trợ transport toàn diện.
Khóa bảo mật rất hiếm:
Khóa bảo mật phần cứng (usb,
nfc) chỉ chiếm một tỷ lệ rất nhỏ trong các passkey trên production, cho thấy việc sử
dụng chúng chủ yếu trong môi trường doanh nghiệp hoặc các kịch bản
bảo mật cao thay vì các ứng dụng cho người tiêu
dùng.
Tồn tại các biến thể về thứ tự: Thứ tự các transport trong mảng
(["internal", "hybrid"] vs ["hybrid", "internal"]) thay đổi tùy theo nền tảng và cách
triển khai trình xác thực nhưng không có sự khác biệt về mặt chức năng - cả hai đều biểu
thị khả năng hỗ trợ cho cùng một phương thức transport.
Thuật ngữ kế thừa: Định danh transport cable đôi khi xuất hiện trong các triển khai
cũ và đồng nghĩa với hybrid (caBLE = cloud-assisted Bluetooth Low
Energy, tên ban đầu cho hybrid transport).
Sự phân phối này củng cố tầm quan trọng của việc xử lý chính xác internal và hybrid
transport, vì chúng chiếm đại đa số các triển khai passkey trong thế giới thực.
Tính khả dụng của transport cho thấy những gì trình xác thực báo cáo, không phải là luồng
kết quả có hoàn thành hay không.
Phân tích tỷ lệ hoàn thành xác thực liên thiết bị của Corbado Passkey Benchmark 2026
đo lường mức độ hoàn thành hybrid-transport trong Quý 1 năm 2026 ở mức 60–78% trên web
Windows và 66–86% trên web macOS nói chung, được chia thành 79–98% (Win) / 83–98% (macOS)
cho các yêu cầu trên cùng một thiết bị so với 52–67% (Win) / 59–76% (macOS) cho các luồng
ưu tiên định danh. Hãy coi hybrid là transport có chi phí cao nhất trong logic định
tuyến và ưu tiên các luồng giữ người dùng trên thiết bị đang giữ thông tin xác thực.
Cùng một trình xác thực thường báo cáo các mẫu transport khác nhau dựa trên nền tảng, phiên bản và ngữ cảnh triển khai. Sự thay đổi này là bình thường và đã được lường trước:
iCloud Keychain thể hiện ba mẫu:
["internal", "hybrid"] - Phổ biến nhất, thường từ trình duyệt web[] (mảng trống) - Rất phổ biến, từ các ứng dụng iOS native["hybrid", "internal"] - Ít phổ biến hơn, thay đổi thứ tự["internal"] hoặc ["hybrid"] - Các trường hợp biên hiếm gặpGoogle Password Manager cho thấy sự biến đổi nhiều nhất:
["hybrid", "internal"] - Mẫu phổ biến nhất["internal", "hybrid"] - Thứ tự thay thế phổ biến["internal", "cable"] - Cài đặt cũ (cable = thuật ngữ cũ cho hybrid)[] (mảng trống) - Từ một số ngữ cảnh native nhất địnhWindows Hello là nhất quán nhất:
["internal"] - Mẫu thống trị (được thiết kế để gắn với thiết bị)Các trình quản lý mật khẩu như 1Password, Bitwarden, Dashlane, và LastPass đều có các mẫu biến đổi tương tự:
["internal", "hybrid"] và ["hybrid", "internal"][] từ bối cảnh ứng dụng native["internal"]Samsung Pass (hệ sinh thái Android) chủ yếu sử dụng:
["hybrid", "internal"] và ["internal", "hybrid"] - Cả hai thứ tự đều phổ biếnSự khác biệt về nền tảng: Cùng một trình xác thực hoạt động khác nhau trên web so với native, iOS so với Android hoặc Windows so với macOS.
Sự phát triển của phiên bản: Việc báo cáo transport đã phát triển theo thời gian. Các
phiên bản cũ hơn có thể sử dụng cable thay vì hybrid, hoặc báo cáo các tổ hợp khác
nhau.
Lựa chọn triển khai: Một số trình xác thực ưu tiên internal trước, số khác lại ưu
tiên hybrid. Thứ tự không có tác động chức năng nhưng khác nhau tùy theo cách triển
khai.
Tính nhạy cảm với ngữ cảnh: Các ứng dụng native, đặc biệt là trên iOS, thường nhận được mảng trống ngay cả từ các trình xác thực có báo cáo transport đầy đủ trong bối cảnh web.
Điểm chính cần nhớ: Đừng cho rằng các mảng transport sẽ nhất quán cho một trình xác thực nhất định. Thiết kế quá trình triển khai của bạn để xử lý tất cả các biến thể một cách linh hoạt, tập trung vào sự hiện diện của các transport cụ thể thay vì đối sánh chính xác các mảng.
Các nhà phát triển phải đối mặt với một sự lựa chọn: tuân theo nghiêm ngặt đặc tả, hoặc tối ưu hóa internal và hybrid transport để mang lại trải nghiệm người dùng tốt hơn. Mỗi phương pháp đều có điểm mạnh và hạn chế.
Cách tiếp cận này tuân theo đúng đặc tả WebAuthn: sử dụng các transport y như được cung cấp bởi trình xác thực trong quá trình đăng ký credential và gửi lại chúng mà không thay đổi trong quá trình xác thực.
Thực hiện: Khi một passkey được tạo, lưu
mảng transports từ phản hồi của trình xác thực. Trong quá trình xác thực, bao gồm các
transport chính xác này vào danh sách allowCredentials:
{ "allowCredentials": [ { "id": "credential-id-base64", "type": "public-key", "transports": ["internal", "hybrid"] } ] }
Ưu điểm:
Nhược điểm:
Tốt nhất cho: Ứng dụng ưu tiên sự tuân thủ tiêu chuẩn, môi trường doanh nghiệp với các loại trình xác thực đa dạng.
Cách tiếp cận này ưu tiên trải nghiệm người dùng bằng cách sửa đổi có chọn lọc các internal và hybrid transport dựa trên các mục tiêu tối ưu hóa cụ thể. Thay vì một quy tắc chung, hãy xem xét các kịch bản tối ưu hóa phổ biến sau:
Vấn đề: Các trình xác thực nền tảng của iOS trả về mảng transport trống. Khi để trống hoặc được điền bởi backend, người dùng có thể thấy các lời nhắc khóa bảo mật (USB, NFC) cùng với các tùy chọn nền tảng, gây nhầm lẫn trong các ứng dụng dành cho người tiêu dùng.
Giải pháp: Thiết lập rõ ràng transport thành ["hybrid", "internal"] cho các trình
xác thực nền tảng iOS. Điều này đảm bảo chỉ các xác thực nền tảng và luồng liên thiết bị
được cung cấp, ẩn đi các tùy chọn khóa bảo mật.
// Khi lưu giữ các credential của trình xác thực nền tảng iOS if (platform === "iOS" && authenticatorAttachment === "platform") { transports = ["hybrid", "internal"]; }
Kết quả: UI xác thực sạch sẽ mà không có lời nhắc khóa bảo mật cho các passkey được tạo trên iOS.
Vấn đề: Khi xác thực trên thiết bị di động, việc hiển thị mã QR để xác thực liên thiết bị tạo ra UX kém-người dùng đã ở trên một thiết bị di động có sẵn passkey của họ.
Giải pháp: Xóa transport hybrid khi người dùng đang xác thực từ một thiết bị di
động, chỉ để lại ["internal"].
// Khi xây dựng allowCredentials cho việc xác thực const transports = isMobileDevice ? credentials.transports.filter((t) => t !== "hybrid") : credentials.transports;
Kết quả: Người dùng thiết bị di động chỉ thấy các tùy chọn xác thực trực tiếp mà không có các lời nhắc mã QR không cần thiết.
⚠️ Thận trọng: Việc thao tác transport không phải lúc nào cũng mang lại kết quả nhất quán trên các nền tảng. Thử nghiệm mở rộng cho thấy các tổ hợp trình duyệt và HĐH xử lý transport khác nhau:
hybrid bị loại trừ khỏi transporthybrid được bao gồmRủi ro đi vào ngõ cụt: Lọc transport quá hạn chế có thể tạo ra các ngõ cụt xác thực
nơi người dùng không thể đăng nhập chút nào. Ví dụ: việc xóa hybrid có thể ngăn cản các
kịch bản xác thực liên thiết bị hợp pháp khi người dùng cần xác thực từ một thiết bị mượn.
Luôn cung cấp các phương thức xác thực dự phòng và kiểm tra kỹ lưỡng trên các nền tảng mục
tiêu của bạn trước khi triển khai các tối ưu hóa transport.
Đây là các gợi ý tối ưu hóa: WebAuthn cung cấp các cơ chế khác để tối ưu hóa UX xác thực ngoài việc thao tác transport-chẳng hạn như hints.
Hành vi transport không thể đoán trước: Xác thực liên thiết bị (CDA) qua transport
hybrid thể hiện hành vi không nhất quán giữa các tổ hợp trình duyệt và HĐH. Thử nghiệm
thực tế chứng minh rằng các giá trị transport không đảm bảo hành vi giao diện người dùng
cụ thể-các nền tảng diễn giải và xử lý transport theo cách khác nhau, dẫn đến kết quả
không mong đợi.
Sự phức tạp theo từng nền tảng cụ thể: Khi kiểm soát rõ ràng các transport, bạn phải tính đến sự khác biệt của nền tảng:
["internal"]; việc thêm hybrid sẽ kích hoạt các mã QR
không mong muốnhybrid trong mảng transportYêu cầu hiểu biết toàn diện từ đầu đến cuối: Việc kiểm soát rõ ràng các transport có nghĩa là chịu trách nhiệm cho toàn bộ luồng. Bạn phải hiểu cách mỗi tổ hợp transport hoạt động trên tất cả các nền tảng mục tiêu của mình và kiểm tra kỹ lưỡng. Thao tác với transport có thể tạo ra các ngõ cụt xác thực mà ở đó không có con đường xác thực hợp lệ nào tồn tại cho người dùng.
Ưu điểm:
Nhược điểm:
Tốt nhất cho: Ứng dụng tiêu dùng có yêu cầu UX cụ thể, đội ngũ có nguồn lực để duy trì logic theo nền tảng, kịch bản ưu tiên tối ưu quy trình xác thực hơn là việc tuân thủ khắt khe các tiêu chuẩn.
Xử lý WebAuthn transport không tồn tại độc lập-đây là một phần trong chiến lược triển khai passkey tổng thể của bạn. Hai phương pháp phổ biến nổi lên trong việc triển khai thực tế, mỗi phương pháp có hàm ý khác nhau đối với việc sử dụng internal và hybrid transport.
Phương pháp này ưu tiên tính linh hoạt và tuân thủ các tiêu chuẩn, cho phép người dùng xác thực với bất kỳ trình xác thực nào tương thích.
Đặc điểm Thực hiện:
[], cho phép bất kỳ credential nào đều
khớpusb, nfc, ble)Ảnh hưởng của Transport:
Với allowCredentials trống, transport trở nên ít quan trọng hơn trong quá trình xác
thực-nền tảng sẽ hiển thị tất cả tùy chọn có sẵn. Tuy nhiên, điều này đồng nghĩa với việc
người dùng có thể thấy lời nhắc khóa bảo mật, mã QR và tùy chọn nền tảng cùng một lúc, gây
bối rối trong các ứng dụng hướng đến người tiêu dùng.
Tốt nhất cho: Môi trường doanh nghiệp, ứng dụng có cơ sở người dùng đa dạng yêu cầu hỗ trợ khóa bảo mật, kịch bản ưu tiên tính linh hoạt tối đa khi xác thực.
Phương pháp này tối ưu hóa trải nghiệm cho người dùng bằng cách giới hạn việc tạo passkey đối với trình xác thực nền tảng và sử dụng các luồng ưu tiên định danh (identifier-first).
Đặc điểm Thực hiện:
authenticatorAttachment: "platform" để tập trung vào các trình
xác thực có sẵn ngay lập tứcauthenticatorAttachment, cho phép những người dùng nâng cao (power users) chọn bất kỳ
trình xác thực nào, bao gồm khóa bảo mậtpreferImmediatelyAvailableCredentials để xác
thực ẩn (silent), ngay lập tức mà không có lời nhắc nhập khóa bảo mật hoặc quét mã QRpreferImmediatelyAvailableCredentials (người dùng thường xác thực trên chính
thiết bị lưu trữ passkey của họ)internal và hybridẢnh hưởng của Transport:
Vì allowCredentials chứa các credential cụ thể đi kèm các transport tương ứng, việc xử
lý transport trở nên cực kỳ quan trọng trong việc tối ưu hóa trải nghiệm xác thực.
Thực tế Về Khóa Bảo mật: Khóa bảo mật chiếm một phần rất nhỏ trong việc sử dụng passkey ở các hệ thống người tiêu dùng quy mô lớn-chủ yếu là cho những người dùng nâng cao hoặc những người có yêu cầu bảo mật cụ thể. Cách tiếp cận chú trọng người tiêu dùng thừa nhận thực tế này bằng cách vẫn hỗ trợ khóa bảo mật nhưng không tối ưu hóa các luồng chính dựa trên chúng.
Chiến lược Tạo Hai Tầng: Triển khai có thể cân bằng tính tương thích của khóa bảo mật và UX được tối ưu hóa thông qua hai con đường tạo khóa:
authenticatorAttachment: "platform",
hướng dẫn người dùng sử dụng passkey khả
dụng ngay lập tức với tỉ lệ thành công caoauthenticatorAttachment, cho
phép người dùng nâng cao sử dụng khóa bảo mật,
trình quản lý mật khẩu
của bên thứ ba, hoặc bất kỳ trình xác thực nào khácMô hình này xuất hiện trong các hệ thống lớn: khóa bảo mật hoạt động trong phần cài đặt, nhưng gợi ý tới người dùng thì được tối ưu hóa cho trường hợp sử dụng chính yếu - những trình xác thực nền tảng cung cấp khả năng xác thực ẩn, lập tức.
Tốt nhất cho: Ứng dụng người tiêu dùng, ứng dụng native di động, những trường hợp ưu tiên UX mượt mà thay vì tính linh hoạt của trình xác thực, các nền tảng có các luồng ưu tiên định danh sẵn có.
| Đặc điểm | Tuân thủ Tiêu chuẩn | Hướng đến Người tiêu dùng |
|---|---|---|
| allowCredentials | Mảng trống | Các credential cụ thể của người dùng |
| Loại trình xác thực | Tất cả (nền tảng, khóa bảo mật, CDA) | Nền tảng + CDA (chính), khóa bảo mật (qua cài đặt) |
| API ứng dụng Native | Tiêu chuẩn WebAuthn | preferImmediatelyAvailableCredentials |
| Khóa bảo mật | Được hỗ trợ trong mọi luồng | Được hỗ trợ qua cài đặt |
| Mức độ liên quan của Transport | Thấp (allow list trống) | Cao (dựa trên credential cụ thể) |
| Mã QR di động | Có thể xuất hiện | Có thể được tối ưu hóa để ẩn đi |
| Trải nghiệm người dùng | Nhiều tùy chọn hơn, phức tạp hơn | Luồng chính mượt mà, cung cấp các tùy chọn cho power user |
| Độ phức tạp triển khai | Thấp hơn | Cao hơn (logic transport nhận biết bối cảnh) |
| Ma sát của người dùng | Cao hơn (nhiều lựa chọn xác thực) | Thấp hơn (tối ưu hóa cho các trường hợp sử dụng chủ yếu) |
Đối với những nền tảng làm rò rỉ việc tồn tại của tài khoản hoặc sử dụng luồng ưu tiên định danh (người dùng nhập email trước khi thấy các tùy chọn đăng nhập), cách tiếp cận nhắm vào người tiêu dùng phù hợp một cách tự nhiên. Một khi người dùng cung cấp định danh:
allowCredentials với các thông tin xác thực cụ thể và transport của chúngTrong các tình huống này, transport có thể trở thành công cụ tối ưu hóa thay vì rủi ro bảo mật. Bạn có thể tùy chỉnh các tùy chọn xác thực dựa vào bối cảnh thiết bị (di động vs máy tính để bàn) và khả năng của thông tin xác thực.
Khuyến nghị: Đối với các nền tảng vốn đã có luồng ưu tiên định danh, hoặc nơi rò rỉ
tài khoản không phải là vấn đề, phương pháp tập trung vào người tiêu dùng với việc quản lý
rõ ràng transport giúp cải thiện giao diện (UX) vượt trội, đặc biệt đối với các ứng dụng
di động native, nơi preferImmediatelyAvailableCredentials mang lại trải nghiệm
xác thực sinh trắc học liền mạch.
Dù bạn chọn cách nào để xử lý internal và hybrid transport, hãy làm theo các phương pháp này để giảm thiểu sự cố:
Lưu Transport Trong Khi Đăng Ký: Luôn lưu giữ mảng transports nhận từ phản hồi của
trình xác thực bên cạnh ID và public key của thông tin xác thực. Dữ liệu này cần thiết cho
các quy trình xác thực.
Xử Lý Mảng Trống Một Cách Khéo Léo: Khi nhận được mảng transport trống từ trình xác thực nền tảng iOS:
["internal", "hybrid"] để kiểm soát các tùy chọn
xác thực được hiển thịChiến Lược Transport Cho Web vs. Native: Phân biệt cách quản lý theo bối cảnh:
preferImmediatelyAvailableCredentials cho xác
thực ẩn; các transport được gửi dựa trên trạng thái đã lưuXử lý Xác thực Bằng Khóa Bảo Mật: Khi người dùng đã đăng ký các khóa bảo mật:
Thử nghiệm Khắp Các Nền Tảng Mục Tiêu: Cần lập bảng thử nghiệm gồm tất cả tổ hợp:
preferImmediatelyAvailableCredentialsauthenticatorAttachmentHiểu Rõ Ngữ Nghĩa Của Transport: Thấy rõ khác biệt giữa mảng transport trống với thiếu thuộc tính transport:
[]: Chỉ ra rằng thông tin transport không có hoặc bị giấu đi
do vấn đề riêng tư. Các
user agent sẽ đưa ra dãy rỗng nếu
không thể/không muốn báo cáo năng lực. Đây không có nghĩa "mọi transport được hỗ
trợ"-hãy xem như gợi ý khi thông tin vắng mặt.Theo Dõi Các Thay Đổi Của Nền Tảng: Việc triển khai WebAuthn phát triển không ngừng. Apple, Google và Microsoft thường xuyên cập nhật cách hoạt động của trình xác thực. Hãy liên tục cập nhật các biến đổi liên quan tới quản lý transport.
WebAuthn transport-đặc biệt là internal và hybrid transport-là những chi tiết kỹ thuật có ảnh hưởng thực tế lớn tới việc xác thực liên thiết bị. Cách chiến lược vận dụng transport của bạn phải khớp với cách triển khai passkey nói chung và các nền tảng hướng tới.
Quyết Định Transport Là Thuộc Trong Chiến Lược Lớn Hơn: Cách bạn xử lý transport tuỳ vào việc phát triển để linh hoạt hết cỡ (để allowCredentials trống) hay tính đến UX của người tiêu dùng (ưu tiên định danh và dùng các thông tin xác thực cụ thể). Với phần sau, vai trò tối ưu hóa của transport rất trọng yếu.
Khác Biệt Nền Tảng Đòi Hỏi Sự Quản Lý: Web và Android thông báo chính xác về
transport, thế nhưng trình xác thực nền tảng iOS trả lại mảng trống. Windows Hello duy
nhất truyền về ["internal"]. Nhận biết rõ các khác biệt đó đặc biệt then chốt trong môi
trường production.
Hai Hướng Tiếp Cận Transport Phù Hợp: Tuân thủ tiêu chuẩn (tin dùng transport từ trình xác thực) mang tác dụng cao ở phía doanh nghiệp và cho phép linh hoạt. Kiểm soát rõ ràng (tối ưu hoá transport) sẽ thỏa mãn những ứng dụng dân dụng với luồng ưu tiên định danh cũng như ứng dụng di động native.
Luồng Ưu tiên Định danh Kích hoạt Khả năng Tối ưu hóa Transport: Một khi người dùng khai báo định danh lúc đầu, việc kiểm soát transport thành một vũ khí UX mạnh mẽ. Bạn sẽ phòng trừ được việc mã QR nổi lên điện thoại vô ích, lấp tuỳ chọn dùng khoá bảo mật, rút gọn thao tác đăng nhập-không phải phiền lòng khi dò tìm tài khoản.
Dành Cho Doanh nghiệp / Linh Hoạt Tuyệt Đối:
allowCredentials nhằm bảo trợ mọi dòng trình xác thựcĐối Với Ứng dụng Tiêu dùng / Ứng dụng Native:
authenticatorAttachment: "platform" nhằm tạo trải nghiệm xác thực ngay lập tức đạt tỉ
lệ thành công caoauthenticatorAttachment hỗ trợ nhóm
power user mong muốn mã/khoá an ninh (security key)allowCredentials đầy đủ với các thông tin xác thực cụ thể và transport đã điều
chỉnhpreferImmediatelyAvailableCredentials thực hiện đăng nhập
ngầm/ẩn["hybrid", "internal"]hybrid đối với dế cưng để ngưng hiển thị mã QR sai mục đíchDành Cho Những Cơ Sở Có Sẵn Các Luồng Ưu Tiên Định Danh:
Bắt đầu với tuân thủ tiêu chuẩn, kế tiếp tối ưu bám sát chiến lược:
Sân chơi WebAuthn biến hoá liên tục. Nhà bán phát triển thi thoảng tái cấu trúc bộ nhận diện. Cộng thêm các tài liệu Đặc tả WebAuthn Level 3 công bố thêm vô vàn thuộc tính mới. Do vậy khi hệ thống mềm dẻo khớp theo kế hoạch đã dự kiến sẽ đảm bảo tính ứng dụng passkey bền vững và dọn đường tận hưởng trọn vẹn tính tiện nghi trong lúc cả khối hạ tầng tiếp tục hoàn thiện.
Corbado là Passkey Intelligence Platform dành cho các đội CIAM vận hành xác thực consumer ở quy mô lớn. Chúng tôi giúp bạn nhìn thấy điều mà log IDP và các công cụ analytics thông thường không thấy: những thiết bị, phiên bản OS, trình duyệt và trình quản lý credential nào hỗ trợ passkey, tại sao quá trình đăng ký không chuyển thành đăng nhập, luồng WebAuthn fail ở đâu, và khi nào một bản cập nhật OS hay trình duyệt làm hỏng đăng nhập một cách âm thầm — tất cả mà không cần thay thế Okta, Auth0, Ping, Cognito hay IDP nội bộ của bạn. Hai sản phẩm: Corbado Observe bổ sung observability cho passkey và mọi phương thức đăng nhập khác. Corbado Connect mang đến managed passkey với analytics tích hợp (song hành cùng IDP của bạn). VicRoads vận hành passkey cho hơn 5M người dùng với Corbado (kích hoạt passkey +80%). Trao đổi với chuyên gia Passkey →
iOS AuthenticationServices giấu nhẹm thông tin transport từ những trình xác thực nền tảng
như iCloud Keychain, và trả mảng rỗng chiếu theo đặc quyền
tính riêng tư về chỉ thị WebAuthn. Khóa bảo mật đối với iOS ngược lại nạp vào giá trị
transport chẳng hạn ["usb"] hoặc ["nfc"]. Relying party do vậy nên đón nhận mọi
transport chỉ như dữ liệu mách nước, hơn là lấy ra đảm bảo hoàn hảo năng lực khả thi.
cable và hybrid trong WebAuthn là gì?#cable là từ lóng lạc hậu đồng nghĩa với hybrid, nó viết tắt cho caBLE (cloud-assisted
Bluetooth Low Energy). Hai thuật ngữ vẽ nên xác nhận ở các thiết
bị dị biệt chẳng hạn khi rọi mã quét QR hoàn tất phiên PC bằng điện thoại. hybrid trở
thành cách gọi chuẩn chỉ xuất hiện vào WebAuthn Level 3 nên
vận dụng vào những cài đặt nâng cấp hơn.
Đới với các app dân sự đang tích hợp hệ thống ưu tiên định danh, hãy ấn định rạch ròi các
transport thành ["hybrid", "internal"] với dạng trình xác thực nền tảng iOS gửi về mảng
rỗng trong lúc tạo lập. Giải pháp này ngắt thông báo khoá thiết bị USB và NFC khỏi lộ diện
phía giao diện của xác nhận. Còn phương thức hợp đúng quy cách (spec-compliant) kia chỉ
định chừa trống array hoặc vứt hẳn mảng transport đó qua một bên.
Lấy transport hybrid ra lúc ở mobile sẽ bít việc hiện bảng quét mã QR giả như người truy
cập vốn dùng ngay trên phương tiện mang các khoá passkey trong tay. Mặc dầu vậy, chơi đùa
qua mặt các transport nảy sinh một cơ số biểu hiện trái tính: vài nền tảng thả mã QR lộ
liễu kể khi hybrid bị đuổi khỏi hệ thống, nhiều hãng khác chôn giấu nó ở bất kỳ trạng
huống nào. Chắc cú nhất là tra khảo kỹ lưỡng qua đủ các mặt trận nền tảng cùng dự trù giải
pháp cứu rỗi (fallback) đề phòng làm lỡ đường lối người vô.
Khởi tạo mảng allowCredentials trống bao phủ trọn vẹn các giống hình trình xác thực gồm
có khoá bảo mật và xác nhận liên thiết bị, mặc dầu thế làm tụt tính liên quan tại
transport và thỉnh thoảng đem lại cùng lúc ngổn ngang quá nhiều lựa chọn cho người sử
dụng. Bằng cách cài đặt nó kết nối với dữ liệu tài khoản cụ thể, việc quản lý transport
trở thành vô cùng tất yếu hỗ trợ tăng cường thẩm mỹ (UI), đẩy luồng ưu tiên định danh
(identifier-first) thanh trừng mã QR di động cùng thu giấu thông báo khóa cứng qua những
trải nghiệm thông thường của khách hàng.
Xem Corbado phù hợp thế nào với quá trình triển khai passkeys và stack xác thực hiện tại của bạn.
Khám phá Console
Bài viết liên quan
Mục lục