API web để liên kết thông tin nhận dạng 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 vệ quyền riêng tư cho các dịch vụ danh tính liên kết (chẳng hạn như "Đăng nhập bằng...") 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.
Trạng thái triển khai
- Chrome Platform Status
- FedCM shipped in Chrome 108.
- The FedCM proposal is open for public discussion.
- FedCM isn't supported in other browsers yet.
- Mozilla is implementing a prototype for Firefox and Apple has expressed general support and interest in working together on the FedCM proposal.
Từ giờ trở đi, 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 mà chúng tôi nhận được từ nhà cung cấp danh tính (IdP), bên phụ thuộc (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.
Để giảm thiểu các thách thức khi triển khai các thay đổi không tương thích ngược, chúng tôi có hai đề xuất dành cho nhà cung cấp danh tính:
- Hãy đăng ký nhận bản tin của chúng tôi để nhận thông tin cập nhật khi API phát triển.
- Các IdP nên phân phối API FedCM bằng cách sử dụng SDK JavaScript trong khi API này đang phát triển và không nên khuyến khích RP tự lưu trữ SDK. Điều này sẽ đảm bảo rằng các IdP có thể thực hiện thay đổi khi API phát triển mà không cần yêu cầu tất cả các bên phụ thuộc triển khai lại.
Tại sao chúng ta cần FedCM?
Trong thập kỷ qua, liên minh nhận dạng đã đóng vai trò trung tâm trong việc nâng cao tiêu chuẩn xác thực trên web, xét về độ tin cậy, dễ sử dụng (ví dụ: đăng nhập một lần không cần mật khẩu) và bảo mật (ví dụ: tăng khả năng chống lại các cuộc tấn công giả mạo và tấn công bằng 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 phụ thuộ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 minh nhận dạng dựa vào (iframe, lệnh 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 việc liên kết danh tính và việc theo dõi, nên các biện pháp giảm thiểu cho nhiều loại hành vi sai trái 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 một bản tóm tắt dành riêng cho trường hợp sử dụng cho các luồng danh tính liên kết trên web, bằng cách hiển thị hộp thoại do trình duyệt dàn xếp 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 thông tin nhận dạng trên web. Trong bước đầu tiên, chúng tôi tập trung vào việc giảm tác động của các quy định hạn chế về 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 một số bước).
Chúng tôi dự kiến điều gì sẽ bị ảnh hưở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ố hoạt động tích hợp liên quan đến liên minh danh tính bị ảnh hưởng bởi các quy định hạn chế về cookie của bên thứ ba:
- Đăng xuất qua kênh trước của OpenID Connect
- Quản lý phiên OpenID Connect
- Gia hạn mã thông báo trong 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 các quy định hạn chế về cookie của bên thứ ba đối với việc liên kết danh tính. Dưới đây là những lĩnh vực mà chúng tôi dự kiến sẽ chịu ảnh hưởng. Nếu có trường hợp sử dụng khác chưa được liệt kê, bạn có thể tham gia và chia sẻ ý kiến phản hồi.
FedCM là tín hiệu đáng tin cậy cho các API khác
Bên cạnh việc xử lý danh tính liên kết, FedCM cũng đóng vai trò là tín hiệu tin cậy cho các API Hộp cát về quyền riêng tư khác.
Kể từ Chrome 131, API truy cập bộ nhớ (SAA) sử dụng FedCM làm tín hiệu tin cậy. Việc tích hợp này hữu ích cho các 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.
Khi người dùng xác thực bằng FedCM, với lựa chọn sử dụng RP, nội dung của IdP được nhúng trên trang web của RP có thể gọi phương thức requestStorageAccess()
để tự động truy cập vào bộ nhớ vào các cookie cấp cao nhất của chính nó mà không cần lời nhắc bổ sung của người dùng. Quyền này chỉ được cấp tự động miễn là người dùng đã đăng nhập bằng FedCM và trạng thái đăng nhập FedCM đang hoạt động. Hãy đọc tài liệu về API Truy cập bộ nhớ để biết thêm chi tiết.
Ai nên sử dụng FedCM?
Chúng tôi cho rằng FedCM chỉ hữu ích cho bạn nếu tất cả các điều kiện sau đây đều áp dụng:
- Bạn là một nhà cung cấp danh tính (IdP).
- Bạn bị ảnh hưởng bởi các quy định hạn chế về cookie của bên thứ ba.
- RP là các trang web của bên thứ ba. Nếu các trang web được đề xuất là những trang web có liên quan một cách có ý nghĩa, thì bạn có thể được phân phát hiệu quả hơn bằng Nhóm trang web liên quan.
Bạn là một IdP
FedCM yêu cầu nhà cung cấp danh tính hỗ trợ. Bên phụ thuộc không thể sử dụng FedCM một cách độc lập. Nếu là RP, bạn có thể yêu cầu IdP cung cấp hướng dẫn.
Bạn bị ảnh hưởng bởi các quy định hạn chế về cookie của bên thứ ba
Bạn chỉ nên sử dụng FedCM nếu hoạt động tích hợp hiện tại của bạn bị ảnh hưởng bởi các quy định hạn chế về cookie của bên thứ ba.
Nếu không chắc liệu tính năng liên kết danh tính có tiếp tục hoạt động khi không có cookie của bên thứ ba hay không, bạn có thể kiểm thử hiệu quả của tính năng này trên một trang web bằng cách chặn cookie của bên thứ ba trên Chrome.
Nếu không phát hiện thấy tác động nào đến việc liên kết danh tính mà không cần cookie của bên thứ ba, thì bạn có thể tiếp tục sử dụng chế độ tích hợp hiện tại mà không cần FedCM.
Nếu bạn không chắc mình cần kiểm tra điều gì, hãy đọc thêm về các tính năng đã biết mà các quy định hạn chế về cookie của bên thứ ba có thể ảnh hưởng.
RP của bạn là bên thứ ba
Nếu bạn là một nhà cung cấp danh tính có RP 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 để tổ chức khai báo mối quan hệ giữa các trang web, nhờ đó, trình duyệt cho phép cookie của bên thứ ba truy cập một cách hạn chế cho những mục đích cụ thể. Điều này cho phép cookie của bên thứ ba hoạt động giữa các nhóm trang web có liên quan một cách có ý nghĩa, ngay cả khi cookie của bên thứ ba bị hạn chế.
Người dùng sẽ tương tác với FedCM như thế nào?
Trọng tâm chính của FedCM là giảm thiểu tác động của các quy định hạn chế về 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.
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 phụ thuộc
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 không có tài khoản trên RP với IdP, thì một hộp thoại đăng ký sẽ xuất hiện với văn bản công bố bổ sung, chẳng hạn như điều khoản dịch vụ của RP và chính sách quyền riêng tư nếu có.
Người dùng có thể hoàn tất quy trình đăng nhập bằng cách nhấn vào Tiếp tục với tư cách.... 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 với IdP.
RP dự kiến sẽ hoạt động trên các trình duyệt không hỗ trợ FedCM. Người dùng phải có thể sử dụng quy trình đăng nhập hiện có, không phải FedCM. Tìm hiểu thêm về cách hoạt động của tính năng đăng nhập trong FedCM.
Chế độ 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 cho Android. Chuyển đến phần Cài đặt > Cài đặt trang web > Đăng nhập bằng bên thứ ba, sau đó thay đổi nút bật/tắt.
Người dùng cũng có thể làm tương tự cho Chrome trên máy tính bằng cách chuyển đến chrome://settings/content/federatedIdentityApi
.
Thời gian chờ của lời nhắc
Nếu người dùng đóng giao diện người dùng theo cách thủ công, một mục sẽ tạm thời được thêm vào giao diện người dùng cài đặt và giao diện người dùng sẽ không hiển thị trong cùng một trang web trong một khoảng thời gian. Giao diện người dùng sẽ được bật lại sau khoảng thời gian này, nhưng thời lượng sẽ được mở rộng theo cấp số nhân khi đóng liên tiếp. Ví dụ: trong Chrome:
Số lần liên tiếp bị đóng | Khoảng thời gian mà lời nhắc FedCM bị chặn |
---|---|
1 | 2 giờ |
2 | Một ngày |
3 | Một tuần |
4+ | 4 tuần |
Các trình duyệt khác có thể xác định khoảng thời gian chờ riêng.
Người dùng có thể bật lại FedCM trên RP theo cách thủ công bằng cách chuyển đến trang cài đặt hoặc nhấp vào giao diện người dùng PageInfo (biểu tượng khoá bên cạnh thanh URL) rồi đặt lại quyền.
Lộ trình
Chúng tôi đang nỗ lực triển khai một số thay đổi đối với FedCM. Hãy xem phần Nội dung cập nhật để biết thêm thông tin chi tiết.
- Nhật ký thay đổi: Nội dung cập nhật về API Quản lý thông tin xác thực liên kết.
Chúng tôi vẫn cần làm một số việc, bao gồm cả các vấn đề mà chúng tôi nhận được từ các nhà cung cấp dịch vụ nhận dạng (IdP), nhà cung cấp dịch vụ xác thực (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 đề này:
- Hỗ trợ iframe trên nhiều nguồn gốc: Các IdP có thể gọi FedCM từ trong một khung hiển thị nội dung trên nhiều nguồn gốc (cập nhật).
- Nút được cá nhân hoá: Các 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 một iframe đa 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ố hiệu suất cho IdP.
Ngoài ra, chúng tôi đang tích cực tìm hiểu một số vấn đề chưa được giải quyết, bao gồm cả các đề xuất cụ thể mà chúng tôi đang đánh giá hoặc tạo bản nguyên mẫu:
- CORS: Chúng tôi đang thảo luận với Apple và Mozilla để đảm bảo cải thiện thông số kỹ thuật của các lệnh tìm nạp FedCM.
- API nhiều IDP: Chúng tôi đang tìm hiểu các cách hỗ trợ nhiều IDP cùng tồn tại và hợp tác trong bộ chọn tài khoản FedCM.
- API Trạng thái đăng nhập của IdP: Mozilla đã xác định được vấn đề về cuộc tấn công theo thời gian và chúng tôi đang tìm hiểu các 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 đề này. (cập nhật)
- Đăng nhập vào API IdP: Để hỗ trợ nhiều tình huống, khi người dùng chưa đăng nhập vào IdP, trình duyệt sẽ cung cấp 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, chúng tôi vẫn cần làm một số việc dựa trên ý kiến phản hồi của Mozilla, Apple và các nhân viên đánh giá của TAG. 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 khả năng hiểu của người dùng và 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 hiển thị khác nhau về trải nghiệm người dùng, cũng như các tiêu chí kích hoạt.
- Thuộc tính nhận dạng và việc tiết lộ có chọn lọc: Như Nhóm đánh giá TAG đã lưu ý, chúng tôi muốn cung cấp một cơ chế để chia sẻ có chọn lọc nhiều hoặc ít thuộc tính nhận dạng (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 trong vị trí tiêu chuẩn của mình, 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ư tính năng làm mù IdP, giá trị nhận dạng được chỉ định.
- 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 về khoá truy cập và nỗ lực cung cấp trải nghiệm nhất quán và gắn kết 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 vui khi thấy những cơ hội phát sinh từ đó. (cập nhật)
- Doanh nghiệp và giáo dục: Như đã thấy rõ tại FedID CG, vẫn cò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 qua kênh trước (khả năng IdP gửi tín hiệu đến RP để đă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 các mối quan hệ này phù hợp với FedCM, ví dụ: với API Yêu cầu tài liệu di động.
Sử dụng API FedCM
Bạn cần có ngữ cảnh bảo mật (HTTPS hoặc localhost) 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 đã biết, tệp cấu hình và các điểm cuối cho danh sách tài khoản, phát hành câu nhận định và (không bắt buộc) siêu dữ liệu ứng dụng. Từ đó, FedCM hiển thị các API JavaScript mà RP có thể sử dụng để đăng nhập bằng IdP.
Để tìm hiểu cách sử dụng API FedCM, hãy xem hướng dẫn dành cho nhà phát triển FedCM.
Tham gia và chia sẻ ý kiến phản hồi
- GitHub: Đọc nội dung giải thích, đưa ra vấn đề và theo dõi cuộc thảo luận.
- Hỗ trợ nhà phát triển: Đặt câu hỏi và tham gia thảo luận trên 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ư trên mạng
Việc sử dụng FedCM, với tư cách là một IdP hoặc RP, 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 quyền truy cập vào thông tin đã được lưu trữ trong thiết bị đó. Do đó, đây là một hoạt động tuân theo 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 sử dụng FedCM có cực kỳ cần thiết để cung cấp dịch vụ trực tuyến mà người dùng yêu cầu rõ ràng hay không, từ đó được miễn yêu cầu đồng ý. Để biết thêm thông tin, bạn nên đọc Các 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ư.