FedCM: API liên kết danh tính bảo đảm quyền riêng tư

Trang này giải thích lợi ích của FedCM, những người nên cân nhắc triển khai FedCM và cách người dùng tương tác với FedCM.

Federated Credential Management (FedCM) là một phương pháp tập trung vào quyền riêng tư và thân thiện với người dùng đối với các dịch vụ nhận dạng được liên kết (chẳng hạn như Đăng nhập bằng nhà cung cấp dịch vụ nhận dạng) mà không dựa vào cookie của bên thứ ba hoặc lệnh chuyển hướng điều hướng.

Với FedCM, người dùng sẽ có một cách xác thực mới với nhà cung cấp dịch vụ danh tính bên thứ ba trên một trang web.

Liên kết thông tin nhận dạng là gì

Liên kết danh tính uỷ quyền xác thực hoặc cho phép một người dùng (người dùng hoặc pháp nhân) truy cập vào một nhà cung cấp dịch vụ danh tính (IdP) bên ngoài đáng tin cậy. Sau đó, IdP cho phép cá nhân đăng nhập vào trang web của bên phụ thuộc (RP). Với tính năng liên kết danh tính, RP dựa vào IdP để cung cấp cho người dùng một tài khoản mà không yêu cầu tên người dùng và mật khẩu mới.

Với các giải pháp nhận dạng liên kết, người dùng không phải tạo một bộ thông tin đăng nhập khác cho mỗi RP. Điều này giúp cải thiện trải nghiệm người dùng, giảm nguy cơ bị lừa đảo và giúp RP thu thập thông tin người dùng đã xác minh từ các nhà cung cấp danh tính đáng tin cậy.

Các giải pháp thông thường và cookie của bên thứ ba

Các cơ chế liên kết danh tính thông thường dựa vào iframe, lệnh chuyển hướng hoặc cookie của bên thứ ba, gây ra những lo ngại về quyền riêng tư. Các giải pháp này có thể bị khai thác để theo dõi người dùng trên web và trình duyệt không thể phân biệt giữa các dịch vụ nhận dạng hợp pháp và hoạt động giám sát không mong muốn.

Do lo ngại về quyền riêng tư, các trình duyệt chính đang hạn chế cookie của bên thứ ba. Điều này có thể ảnh hưởng đến một số chức năng. Thông qua nỗ lực của cộng đồng và nghiên cứu của chúng tôi, chúng tôi nhận thấy có một số các hoạt động tích hợp liên quan đến liên kết danh tính chịu ảnh hưởng của các quy định hạn chế đối với cookie của bên thứ ba.

Liên kết danh tính bằng FedCM

FedCM không phụ thuộc vào giao thức: bạn có thể triển khai FedCM dưới dạng một giải pháp độc lập hoặc dưới dạng một lớp bổ sung mà các giao thức khác có thể tận dụng. Ví dụ: máy chủ OAuth chức năng có thể hưởng lợi từ trải nghiệm đăng nhập một lần do FedCM làm trung gian và giao diện người dùng trực quan bằng cách triển khai các điểm cuối FedCM rồi trao đổi mã uỷ quyền được trả về trong phản hồi của FedCM để lấy mã truy cập OAuth.

Tại sao chúng ta cần FedCM?

So với các giải pháp thông thường, giải pháp này mang lại nhiều lợi ích cho hệ sinh thái web, được thiết kế dành cho người dùng, các nhà phát triển RP và IdP.

Hỗ trợ các giải pháp định danh mà không cần cookie của bên thứ ba

FedCM có thể giúp giảm sự phụ thuộc vào cookie của bên thứ ba. Đây là những cookie thường được dùng để theo dõi người dùng trên web. API này mang đến trải nghiệm đăng nhập được cá nhân hoá ngay cả khi không có cookie của bên thứ ba (ví dụ: ở Chế độ ẩn danh).

FedCM cũng được tích hợp với các Privacy Sandbox API khác. Ví dụ: Storage Access API sử dụng quy trình xác thực FedCM làm một tín hiệu tin cậy. Việc tích hợp này sẽ hữu ích cho những trang web dựa vào cả FedCM để xác thực và SAA để cho phép các iframe trên nhiều nguồn gốc truy cập vào bộ nhớ cần thiết.

Nâng cao trải nghiệm người dùng

FedCM giới thiệu một hộp thoại giao diện người dùng do trình duyệt làm trung gian để đơn giản hoá quy trình đăng nhập bằng một lần nhấn. API này cũng giải quyết vấn đề về các trang đăng nhập lộn xộn, đôi khi được gọi là vấn đề NASCAR.

Ví dụ về vấn đề của NASCAR: Một trang web có giao diện người dùng lộn xộn do có 7 lựa chọn đăng nhập khác nhau.
Ví dụ về vấn đề của NASCAR: Một trang web có giao diện người dùng lộn xộn do lựa chọn IdP quá rộng.

Thay vì có quá nhiều nút đăng nhập bằng tài khoản mạng xã hội, FedCM cung cấp một giao diện đơn giản và thân thiện với người dùng.

Bảo mật

Phương pháp Danh tính liên kết cho phép người dùng sử dụng các tài khoản đáng tin cậy do IdP quản lý. Với phương pháp này, người dùng không phải thêm thông tin đăng nhập vào mọi trang web. Điều này giúp giảm nguy cơ bị tấn công lừa đảo. Ngoài ra, thay vì triển khai các biện pháp bảo mật mạnh mẽ của riêng mình, RP có thể dựa vào chuyên môn của IdP chuyên về quản lý danh tính an toàn.

FedCM hướng đến việc giúp quy trình nhận dạng liên kết trở nên thuận tiện hơn nữa cho người dùng, khuyến khích họ ưu tiên quy trình này hơn các quy trình nhận dạng kém an toàn.

Trải nghiệm phù hợp cho nhiều người dùng hơn

FedCM giúp giảm bớt khó khăn về trải nghiệm người dùng trong quy trình đăng ký tài khoản. Nghiên cứu điển hình của Dịch vụ nhận dạng của Google cho thấy người dùng thích tạo tài khoản bằng quy trình Một lần chạm của FedCM hơn là các lựa chọn đăng nhập nhiều bước.

Với FedCM, nhiều IdP có thể cung cấp cho người dùng trải nghiệm đăng nhập bằng một lần nhấn. Với nhiều IdP cung cấp quy trình nhận dạng bằng một lần nhấn, người dùng có thể chọn trong số nhiều IdP trên RP. FedCM cung cấp một cơ chế lựa chọn IdP được cải thiện bằng cách giới thiệu cho người dùng các tài khoản phù hợp nhất.

Với tỷ lệ đăng ký cao hơn, RP có thể cung cấp trải nghiệm phù hợp cho nhiều người dùng hơn.

Hỗ trợ nhiều Nhà cung cấp danh tính

Giao diện người dùng đơn giản của FedCM nhằm mục đích cung cấp cho người dùng danh sách các IdP có liên quan được cá nhân hoá. Với cơ chế chọn IdP của FedCM, lựa chọn IdP của RP không còn bị hạn chế bởi quy mô cơ sở người dùng của IdP. Ví dụ: một bộ phận người dùng có thể chỉ có tài khoản với small-idp.example chứ không có tài khoản với bigger-idp.example.

Với tính năng Multi-IdP, rp.example có thể hỗ trợ cả small-idp.examplebigger-idp.example mà không làm rối giao diện người dùng. Điều này mang lại lợi ích cho tất cả các bên:

  • Người dùng có thể chọn IdP mà họ muốn, bất kể IdP đó lớn hay nhỏ.
  • RP tiếp cận nhiều người dùng hơn thông qua việc hỗ trợ nhiều IdP
  • Các IdP có ít người dùng hơn sẽ có trên nhiều RP hơn.

Ai nên sử dụng FedCM?

Bạn chỉ có thể sử dụng FedCM nếu đáp ứng các điều kiện sau:

  • Bạn là một nhà cung cấp dịch vụ danh tính (IdP) có các RP bên thứ ba.
  • Bạn có giải pháp nhận dạng riêng và nhiều miền dựa vào giải pháp đó.
  • Bạn muốn hỗ trợ các luồng nhận dạng liên kết ngay cả đối với những người dùng chọn duyệt web mà không dùng cookie của bên thứ ba.

Bạn là một IdP

FedCM yêu cầu sự hỗ trợ của một nhà cung cấp danh tính. Bên tin cậy không thể sử dụng FedCM một cách độc lập. Nếu là một RP, bạn có thể yêu cầu IdP cung cấp hướng dẫn.

Nhiều RP

Nếu RP của bạn là bên thứ ba hoặc bạn có hơn 4 RP sử dụng giải pháp nhận dạng của mình, thì FedCM là API được đề xuất cho danh tính được liên kết.

Bạn muốn hỗ trợ quy trình liên kết danh tính không có cookie

FedCM hỗ trợ các quy trình nhận dạng liên kết thiết yếu ngay cả đối với những người dùng duyệt web mà không có cookie của bên thứ ba. Với FedCM, người dùng vẫn có thể đăng ký, đăng nhập và đăng xuất bằng tài khoản liên kết của họ trên các RP.

Ngoài ra, FedCM đóng vai trò là một tín hiệu tin cậy cho Storage Access API, giúp loại bỏ trở ngại cho các yêu cầu truy cập vào bộ nhớ do IdP khởi tạo.

Tương tác của người dùng với FedCM

FedCM được thiết kế để không phụ thuộc vào giao thức xác thực và cung cấp cho người dùng một quy trình mới để xác thực với RP bằng một IdP bên thứ ba. Hãy dùng thử FedCM bằng bản minh hoạ của chúng tôi.

Đăng nhập vào một bên thứ ba đáng tin cậy

Người dùng có thể chọn một tài khoản trong số các IdP mà RP hỗ trợ. Nếu người dùng đăng nhập bằng nhiều IdP, họ sẽ được nhắc đăng nhập vào RP bằng một trong số các IdP đó.

Các tài khoản của người dùng sẽ xuất hiện theo thứ tự sau:

  • Các tài khoản được truy cập trên thiết bị của người dùng sẽ xuất hiện trước, trong đó các tài khoản được truy cập gần đây nhất sẽ xuất hiện đầu tiên.
  • Tiếp theo, những tài khoản mà người dùng đã truy cập trên RP theo IdP sẽ xuất hiện. Thông tin về những tài khoản đã được truy cập sẽ được trích xuất từ giá trị thuộc tính approved_clients điểm cuối tài khoản.
  • Những tài khoản chưa từng được sử dụng trên RP sẽ xuất hiện sau cùng.

Nếu có nhiều tài khoản trong bất kỳ cấp độ ưu tiên nào trong số này, thì các tài khoản này sẽ được sắp xếp thêm dựa trên thứ tự của IdP do RP cung cấp trong lệnh gọi get().

Các chế độ giao diện người dùng FedCM

FedCM có 2 chế độ giao diện người dùng: Thụ độngĐang hoạt động.

Chế độ thụ động. Chế độ thụ động không yêu cầu người dùng tương tác để lời nhắc FedCM xuất hiện. Khi người dùng truy cập vào trang web của bên đáng tin cậy (RP), hộp thoại đăng nhập FedCM sẽ xuất hiện khi navigator.credentials.get() được gọi nếu các điều kiện sau được đáp ứng:

  • Người dùng đã đăng nhập vào ít nhất một IdP được hỗ trợ. Nếu người dùng đã đăng xuất khỏi tất cả IdP có sẵn, thì lời nhắc đăng nhập FedCM sẽ không tự động xuất hiện.
  • Chế độ cài đặt thời gian chờ FedCM không được đặt trong trình duyệt của người dùng.
  • Người dùng chưa tắt FedCM trong phần cài đặt trình duyệt. Tìm hiểu thêm về cách người dùng có thể chọn không sử dụng FedCM.
Người dùng xác thực tuần tự với nhiều IdP ở chế độ thụ động: đăng nhập và đăng xuất bằng một IdP, sau đó xác thực bằng IdP tiếp theo.

Chế độ đang hoạt động. Ở chế độ đang hoạt động, bạn phải có một lượt kích hoạt tạm thời của người dùng (chẳng hạn như lượt nhấp vào nút Đăng nhập bằng…) để kích hoạt lời nhắc FedCM.

Người dùng đăng nhập vào một RP bằng FedCM ở chế độ đang hoạt động.

Người dùng có thể hoàn tất quá trình đăng nhập bằng cách nhấn vào Tiếp tục với tư cách người dùng. Nếu thành công, trình duyệt sẽ lưu trữ thông tin cho biết người dùng đã tạo một tài khoản liên kết trên RP bằng IdP.

Nếu người dùng không có tài khoản trên RP bằng IdP, thì một hộp thoại đăng ký sẽ xuất hiện cùng với văn bản công bố bổ sung, chẳng hạn như điều khoản dịch vụ và chính sách quyền riêng tư của RP.

Tuân thủ luật về quyền riêng tư điện tử

Việc sử dụng FedCM, dù là IdP hay RP, đều liên quan đến việc lưu trữ thông tin trên thiết bị đầu cuối của người dùng hoặc truy cập vào thông tin đã được lưu trữ trong đó. Do đó, đây là hoạt động phải tuân thủ luật về quyền riêng tư điện tử ở Khu vực kinh tế Châu Âu (EEA) và Vương quốc Anh, thường yêu cầu sự đồng ý của người dùng. Bạn có trách nhiệm xác định xem việc bạn sử dụng FedCM có thực sự cần thiết để cung cấp một dịch vụ trực tuyến mà người dùng yêu cầu một cách rõ ràng hay không, và do đó được miễn yêu cầu về sự đồng ý.

Thị giác

Chúng tôi đang tích cực phát triển các tính năng mới để khắc phục những hạn chế hiện tại và mang đến trải nghiệm người dùng tốt hơn.

  • Chúng tôi đang khám phá các công thức UX yên tĩnh hơn để đảm bảo quy trình xác thực diễn ra suôn sẻ, trực quan và ít xâm nhập hơn cho người dùng.
  • Chúng tôi cam kết cải thiện quyền riêng tư của người dùng. Chúng tôi dự định chuyển sang mô hình NextGen FedCM hướng đến việc uỷ quyền, giúp giảm thiểu Vấn đề theo dõi IdP. Với NextGen, người dùng có thể đăng nhập trên RP mà không cần IdP theo dõi người dùng.
  • FedCM hướng đến việc cung cấp cho người dùng nhiều lựa chọn hơn về IdP, dựa trên lựa chọn của RP. Để đạt được mục tiêu này, chúng tôi đang phát triển Multi-IdP và IdP Registration API.
  • Chúng tôi đang tích cực làm việc để tích hợp FedCM với các phương thức xác thực khác như Passkeys bằng các phương tiện bổ sung như tính năng Tự động điền để mang đến trải nghiệm xác thực hợp nhất.

Hãy xem lộ trình của chúng tôi để biết thêm thông tin.