API web để liên kết danh tính bảo đảm quyền riêng tư.
FedCM là gì?
FedCM (Quản lý thông tin xác thực liên kết) là một phương pháp bảo đảm quyền riêng tư cho các dịch vụ nhận dạng được liên kết (chẳng hạn như "Đăng nhập bằng..."), trong đó người dùng có thể đăng nhập vào các trang web mà không cần chia sẻ thông tin cá nhân của họ với dịch vụ nhận dạng hoặc trang web.
Trạng thái triển khai
- Trạng thái của Nền tảng Chrome
- FedCM được cung cấp trong Chrome 108.
- Đề xuất của FedCM là dành cho cuộc thảo luận công khai.
- FedCM chưa được hỗ trợ trong các trình duyệt khác.
- Mozilla đang triển khai một nguyên mẫu cho Firefox và Apple đã bày tỏ sự ủng hộ chung cũng như quan tâm đến việc cùng nhau hợp tác về đề xuất của FedCM.
Trong tương lai, chúng tôi dự định ra mắt một số tính năng mới dựa trên ý kiến phản hồi nhận được từ nhà cung cấp danh tính (IdP), các bên đáng tin cậy (RP) và nhà cung cấp trình duyệt. Mặc dù chúng tôi hy vọng các nhà cung cấp danh tính sẽ sử dụng FedCM, nhưng xin lưu ý rằng FedCM vẫn là một API đang trong quá trình phát triển và có thể xảy ra các thay đổi không tương thích ngược cho đến Quý 4 năm 2023.
Để giảm thiểu thách thức khi triển khai các thay đổi không tương thích ngược, chúng tôi hiện có 2 đề xuất cho nhà cung cấp danh tính:
- Hãy đăng ký nhận bản tin của chúng tôi để gửi thông tin cập nhật khi API phát triển.
- Chúng tôi khuyến khích các nhà cung cấp danh tính (IdP) phân phối API FedCM thông qua SDK JavaScript khi API đang phát triển, đồng thời không khuyến khích các bên bị hạn chế sử dụng SDK tự lưu trữ. Điều này sẽ đảm bảo IdP có thể thực hiện các thay đổi khi API phát triển mà không cần phải yêu cầu tất cả các bên đáng tin cậy của họ triển khai lại.
Tại sao chúng ta cần FedCM?
Trong thập kỷ qua, liên kết danh tính đóng vai trò trung tâm trong việc nâng cao tiêu chuẩn xác thực trên web, về độ tin cậy, tính dễ sử dụng (ví dụ: đăng nhập một lần không cần mật khẩu) và tính bảo mật (ví dụ: cải thiện khả năng chống lại các cuộc tấn công lừa đảo và nhồi nhét thông tin xác thực) so với tên người dùng và mật khẩu trên mỗi trang web.
Với tính năng liên kết danh tính, RP (bên xác thực) dựa vào IdP (nhà cung cấp danh tính) để 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.
Rất tiếc, các cơ chế mà liên kết danh tính đã dựa vào (iframe, chuyển hướng và cookie) đang bị lợi dụng để theo dõi người dùng trên web. Vì tác nhân người dùng không thể phân biệt giữa liên kết danh tính và hoạt động theo dõi, nên các biện pháp giảm thiểu các loại hành vi sai trái sẽ khiến việc triển khai liên kết danh tính trở nên khó khăn hơn.
API Quản lý thông tin xác thực liên kết (FedCM) cung cấp bản tóm tắt theo trường hợp sử dụng cụ thể cho các luồng nhận dạng được liên kết trên web, bằng cách hiển thị một hộp thoại có dàn xếp của trình duyệt cho phép người dùng chọn tài khoản từ IdP để đăng nhập vào trang web.
FedCM là một hành trình gồm nhiều bước để cải thiện danh tính trên web và trong bước đầu tiên, chúng tôi tập trung vào việc giảm tác động của việc loại bỏ cookie của bên thứ ba đối với danh tính liên kết (xem phần Lộ trình để biết thêm vài bước).
Điều gì sẽ ảnh hưởng đến chúng tôi?
Nhờ 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ố hoạt động tích hợp liên quan đến liên kết danh tính bị ảnh hưởng bởi việc loại bỏ cookie của bên thứ ba:
- Đăng xuất OpenID Connect Front-Channel
- Quản lý phiên kết nối OpenID
- Gia hạn mã thông báo nền dựa trên iframe
- Tiện ích đăng nhập dựa trên iframe
Mục tiêu đầu tiên của FedCM là giảm tác động của việc loại bỏ cookie của bên thứ ba đối với liên kết danh tính. Bên trên là danh sách các khía cạnh mà chúng tôi dự kiến sẽ bị ảnh hưởng. Nếu có thêm trường hợp sử dụng nào khác mà chúng tôi chưa liệt kê, bạn nên tham khảo và chia sẻ ý kiến phản hồi.
Ai nên sử dụng FedCM?
Chúng tôi hy vọng FedCM chỉ hữu ích cho bạn nếu áp dụng tất cả các điều kiện sau:
- Bạn là một nhà cung cấp danh tính (IdP).
- Việc loại bỏ cookie của bên thứ ba sẽ ảnh hưởng đến bạn.
- Bên bị hạn chế của bạn là các trang web của bên thứ ba. Nếu bên bị hạn chế của bạn là các trang web có liên quan, có thể bạn sẽ được Nhóm trang web có liên quan phục vụ tốt hơn.
Bạn là một IdP (nhà cung cấp danh tính)
FedCM cần một nhà cung cấp danh tính hỗ trợ. Một bên phụ thuộc không thể sử dụng FedCM một cách độc lập. Nếu là bên bị hạn chế (RP), bạn có thể yêu cầu IdP của mình cung cấp hướng dẫn.
Bạn sẽ chịu ảnh hưởng của việc loại bỏ cookie của bên thứ ba
Bạn chỉ nên sử dụng FedCM nếu việc tích hợp hiện tại của bạn bị ảnh hưởng bởi việc loại bỏ cookie của bên thứ ba.
Nếu không chắc liệu liên kết danh tính có tiếp tục hoạt động sau khi Chrome loại bỏ cookie của bên thứ ba hay không, bạn có thể kiểm tra tác động trên trang web bằng cách chặn cookie của bên thứ ba trên Chrome.
Nếu không có tác động nào có thể phát hiện được đối với việc liên kết danh tính khi không có cookie của bên thứ ba, bạn có thể tiếp tục sử dụng quy trình tích hợp hiện tại mà không cần FedCM.
Nếu bạn không chắc chắn về điều cần kiểm tra, hãy đọc thêm về các tính năng đã biết mà việc loại bỏ này dự kiến sẽ ảnh hưởng đến.
Bên bị hạn chế của bạn là bên thứ ba
Nếu bạn là nhà cung cấp danh tính có bên bị hạn chế có mối quan hệ bên thứ nhất với IdP, thì Nhóm trang web có liên quan có thể là lựa chọn phù hợp hơn. Nhóm trang web có liên quan (RWS) là một cách để một tổ chức khai báo mối quan hệ giữa các trang web để các trình duyệt cho phép bên thứ ba truy cập có giới hạn vào cookie cho các mục đích cụ thể. Nhờ đó, cookie của bên thứ ba vẫn có thể hoạt động giữa các nhóm trang web có liên quan và có ý nghĩa, ngay cả sau khi loại bỏ cookie của bên thứ ba.
Người dùng sẽ tương tác với FedCM như thế nào?
Hiện tại, trọng tâm chính của FedCM là giảm thiểu tác động của việc loại bỏ cookie của bên thứ ba. Người dùng có thể bật hoặc tắt FedCM trong phần cài đặt người dùng của Chrome.
FedCM được thiết kế để không phụ thuộc vào giao thức và cung cấp các chức năng liên quan đến xác thực sau đây.
Hãy xem bản minh hoạ của chúng tôi để biết cách hoạt động.
Đăng nhập vào một bên đáng tin cậy
Khi người dùng truy cập vào trang web của bên phụ thuộc (RP), hộp thoại đăng nhập FedCM sẽ xuất hiện nếu người dùng đã đăng nhập vào IdP.
Nếu người dùng chưa có tài khoản bên RP với IdP, hộp thoại đăng ký sẽ xuất hiện cùng với văn bản công bố bổ sung như điều khoản dịch vụ của RP và chính sách quyền riêng tư nếu được cung cấp.
Người dùng có thể hoàn tất đăng nhập bằng cách nhấn vào Tiếp tục với tên.... Nếu thành công, trình duyệt sẽ lưu trữ thông tin về việc người dùng đã tạo một tài khoản liên kết trên RP bằng IdP.
Dự kiến bên bị hạn chế sẽ hoạt động trên các trình duyệt không hỗ trợ FedCM. Người dùng phải sử dụng được quy trình đăng nhập hiện có, không phải của FedCM. Tìm hiểu thêm về cách hoạt động của quy trình đăng nhập trong FedCM.
Cài đặt để bật hoặc tắt FedCM
Người dùng có thể bật hoặc tắt FedCM trong phần cài đặt trên Chrome trên Android. Chuyển đến Cài đặt > Cài đặt trang web > Đăng nhập qua bên thứ ba, sau đó thay đổi nút bật/tắt.
![Bật FedCM trong phần Cài đặt Chrome trên thiết bị di động bằng cách bật/tắt chế độ Đăng nhập qua bên thứ ba](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/enable-fedcm-chrome-sett-acb36abf28b59.jpg?authuser=1&hl=vi)
Họ có thể thực hiện tương tự đối với Chrome trên máy tính bằng cách truy cập vào
chrome://settings/content/federatedIdentityApi
.
![Bật FedCM trong phần Cài đặt Chrome trên máy tính bằng cách bật/tắt chế độ Đăng nhập qua bên thứ ba](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/enable-fedcm-chrome-sett-ebbf4834f6f21.png?authuser=1&hl=vi)
Lộ trình
Chúng tôi đang nỗ lực để triển khai một số thay đổi đối với FedCM.
Chúng tôi đã áp dụng một số nội dung cập nhật dựa trên ý kiến phản hồi. Ngoài ra, dự kiến nó sẽ tiếp tục phát triển cho đến ít nhất là quý 4 năm 2023 để ổn định. Vui lòng xem Nội dung cập nhật để biết thêm chi tiết.
- Nhật ký thay đổi: Cập nhật API Quản lý thông tin xác thực liên kết.
Có một vài điều chúng tôi biết vẫn cần được cải thiện, trong đó có những vấn đề chúng tôi đã nghe được từ các nhà cung cấp danh tính, RP và nhà cung cấp trình duyệt. Chúng tôi tin rằng mình biết cách giải quyết những vấn đề sau:
- Hỗ trợ iframe nhiều nguồn gốc: Các IdP có thể gọi FedCM từ trong một iframe trên nhiều nguồn gốc (cập nhật).
- Nút được cá nhân hoá: IdP có thể hiển thị danh tính của người dùng cũ trên nút đăng nhập từ trong iframe nhiều nguồn gốc do IdP sở hữu (cập nhật).
- Điểm cuối của chỉ số: Cung cấp các chỉ số về hiệu suất cho các nhà cung cấp danh tính (IdP).
Ngoài ra, còn có những vấn đề chưa được giải quyết mà chúng tôi đang tích cực tìm hiểu, bao gồm cả những đề xuất cụ thể mà chúng tôi đang đánh giá hoặc thử nghiệm:
- CORS: Chúng tôi thảo luận với Apple và Mozilla để đảm bảo cải thiện đặc tả kỹ thuật cho các phương thức tìm nạp FedCM.
- API Nhiều IdP: Chúng tôi đang tìm hiểu cách hỗ trợ nhiều IdP để cùng tồn tại cùng nhau trong trình chọn tài khoản FedCM.
- API trạng thái đăng nhập IdP: Mozilla đã xác định vấn đề về thời điểm tấn công và chúng tôi đang tìm hiểu những cách để IdP chủ động thông báo cho trình duyệt về trạng thái đăng nhập của người dùng nhằm giảm thiểu vấn đề. (cập nhật)
- Đăng nhập vào API IdP: Để hỗ trợ nhiều trường hợp, khi người dùng không đăng nhập vào IdP, trình duyệt sẽ cung cấp một giao diện người dùng để người dùng đăng nhập mà không cần rời khỏi RP.
Cuối cùng, có một số việc mà chúng tôi cho rằng vẫn cần phải cải thiện dựa trên ý kiến phản hồi của Mozilla, Apple và người đánh giá THẺ. Chúng tôi đang nỗ lực đánh giá các giải pháp tốt nhất cho những câu hỏi mở này:
- Cải thiện mức độ hiểu của người dùng và so khớp ý định: Như Mozilla đã lưu ý, chúng tôi muốn tiếp tục khám phá các công thức và khu vực bề mặt khác nhau, cũng như các tiêu chí kích hoạt.
- Thuộc tính nhận dạng và thông tin công bố có chọn lọc: Như Người đánh giá TAG đã lưu ý, chúng tôi muốn cung cấp một cơ chế để chia sẻ nhiều hoặc ít thuộc tính nhận dạng hơn một cách có chọn lọc (chẳng hạn như email, độ tuổi, số điện thoại, v.v.).
- Nâng cao các thuộc tính về quyền riêng tư: Như Mozilla đề xuất tại đây, chúng tôi muốn tiếp tục khám phá các cơ chế để đảm bảo quyền riêng tư tốt hơn, chẳng hạn như hiện tượng mù của IdP (nhà cung cấp danh tính), các giá trị nhận dạng được định hướng.
- Mối quan hệ với WebAuthn: Theo đề xuất của Apple, chúng tôi rất vui khi thấy tiến trình của khoá truy cập và nỗ lực cung cấp trải nghiệm nhất quán và nhất quán giữa FedCM, Mật khẩu, WebAuthn và WebOTP.
- Trạng thái đăng nhập: Như Apple đã đề xuất với API trạng thái đăng nhập của Privacy CG, chúng tôi chia sẻ trực giác rằng trạng thái đăng nhập của người dùng là một thông tin hữu ích có thể giúp trình duyệt đưa ra quyết định sáng suốt và chúng tôi rất muốn biết cơ hội nào phát sinh từ đó. (cập nhật)
- Doanh nghiệp và giáo dục: Như đã nêu rõ trong FedID CG, chúng tôi vẫn muốn cải thiện nhiều trường hợp sử dụng mà FedCM chưa phục vụ tốt, chẳng hạn như đăng xuất kênh trước (khả năng IdP gửi tín hiệu tới các bên bị hạn chế để đăng xuất) và hỗ trợ SAML.
- Mối quan hệ với mDL/VC/v.v.: tiếp tục tìm hiểu cách thức hoạt động của các mDL này phù hợp với FedCM, chẳng hạn như với API yêu cầu tài liệu trên thiết bị di động.
Sử dụng API FedCM
Bạn cần có một bối cảnh bảo mật (HTTPS hoặc máy chủ cục bộ) trên cả IdP và RP trong Chrome để sử dụng FedCM.
Để tích hợp với FedCM, bạn cần tạo một tệp, tệp cấu hình và điểm cuối phổ biến cho danh sách tài khoản, phiên bản xác nhận và siêu dữ liệu ứng dụng (không bắt buộc). Từ đó, FedCM hiển thị các API JavaScript mà các bên bị hạn chế có thể dùng để đăng nhập bằng IdP.
Để tìm hiểu cách sử dụng API FedCM, hãy tham khảo Hướng dẫn cho nhà phát triển FedCM.
Thu hút và chia sẻ ý kiến phản hồi
- GitHub: Đọc nội dung giải thích, nêu rõ vấn đề và theo dõi nội dung thảo luận.
- Hỗ trợ nhà phát triển: Đặt câu hỏi và tham gia thảo luận về kho lưu trữ Hỗ trợ nhà phát triển Hộp cát về quyền riêng tư.
Tuân thủ luật về quyền riêng tư và truyền thông điện tử
Việc sử dụng FedCM, dưới dạng nhà cung cấp danh tính (IdP) hoặc RP, bao gồm việc lưu trữ thông tin trên thiết bị đầu cuối của người dùng hoặc quyền truy cập vào thông tin đã lưu trữ trong đó, do đó, một hoạt động tuân theo luật về quyền riêng tư và truyền thông đ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 sử dụng FedCM có có cần thiết để cung cấp một dịch vụ trực tuyến do người dùng yêu cầu rõ ràng hay không và do đó được miễn khỏi yêu cầu về sự đồng ý. Để biết thêm thông tin, bạn nên đọc bài viết Câu hỏi thường gặp về việc tuân thủ liên quan đến quyền riêng tư của Hộp cát về quyền riêng tư.