Các nhà lãnh đạo trong ngành ở nhiều lĩnh vực đều hiểu rõ tầm quan trọng của việc bảo vệ quyền riêng tư trong khi vẫn mang lại trải nghiệm tuyệt vời cho tất cả người dùng. Seznam, chuyên cung cấp trải nghiệm người dùng và quyền riêng tư không bị xâm phạm, đã tích hợp thành công Federated Credential Management (FedCM).
Hồ sơ mục tiêu: Các công ty hưởng lợi từ FedCM
Các tổ chức thuộc nhiều lĩnh vực đã tích hợp FedCM với các giải pháp của họ. Vì FedCM được thiết kế để quản lý danh tính liên kết, nên nhà cung cấp dịch vụ danh tính (IdP) là đối tượng hưởng lợi chính, sử dụng FedCM để mang đến trải nghiệm đăng nhập cải thiện. Các nhà cung cấp dịch vụ thương mại điện tử và nhà cung cấp dịch vụ thanh toán (nhiều người trong số họ cũng đóng vai trò là nhà cung cấp danh tính) cũng đã xác định được các cơ hội để cải thiện trải nghiệm người dùng thông qua việc triển khai FedCM.
Seznam
Seznam là một công ty công nghệ và nhà cung cấp danh tính ở Châu Âu, tiếp cận được 90% dân số Cộng hoà Séc. Đây là một trung tâm xã hội, kiến thức và nội dung. Seznam đã áp dụng FedCM để cho phép khách hàng của các cửa hàng trực tuyến hoạt động trên nền tảng của đối tác đăng nhập bằng tài khoản Seznam của họ.

Với FedCM, Seznam đã đạt được mức tăng đáng kể về tỷ lệ đăng nhập của người dùng trên mạng lưới của các đối tác, cải thiện trải nghiệm người dùng và duy trì quy trình nhận dạng nhất quán bất kể trạng thái hoạt động của cookie bên thứ ba.
Động lực
Quyết định triển khai FedCM của Seznam là do một số lợi ích mà họ nhận thấy:
- FedCM được thiết kế dành cho người dùng cuối, cho phép người dùng kiểm soát thông tin được cung cấp cho IdP. Điều này phù hợp với tầm nhìn của Seznam về một môi trường an toàn và riêng tư cho người dùng của họ.
- FedCM là một tính năng tích hợp sẵn trên trình duyệt, tương thích với trải nghiệm đăng nhập hiện có của Seznam (sử dụng tiêu chuẩn OAuth 2.0).
- FedCM được thiết kế để trở thành một phương pháp liên kết danh tính chú trọng đến quyền riêng tư. Ví dụ: thực tế là người dùng đã truy cập vào bên tin cậy (RP) chỉ được chia sẻ với IdP nếu người dùng chọn đăng nhập. Điều này phù hợp với quan điểm của Seznam về hoạt động kinh doanh bền vững.
Thông tin chi tiết về việc triển khai
Seznam đã triển khai FedCM dưới dạng một lớp trên giải pháp OAuth hiện có của họ. Trong cấu trúc này, quy trình FedCM được dùng để truyền mã uỷ quyền OAuth một cách an toàn từ IdP đến các RP.

Độ khó để triển khai
Seznam nhấn mạnh rằng việc triển khai FedCM rất đơn giản, phù hợp với phương pháp hiện tại của họ. Việc nghiên cứu và triển khai API của họ kéo dài một tháng và cần đến nỗ lực của 2 nhà phát triển. Họ mất chưa đến 2 tháng để đưa FedCM vào giai đoạn phát hành công khai. Quá trình này diễn ra lặp đi lặp lại, với nhiều thời gian dành cho việc nghiên cứu kỹ lưỡng API.
Thử thách
Là một đơn vị áp dụng sớm, Seznam đã xác định được một số thách thức và đưa ra ý kiến phản hồi có giá trị, giúp API này hoàn thiện hơn.
Hỗ trợ nhiều nhà cung cấp danh tính
Seznam quan tâm đến khả năng hỗ trợ nhiều nhà cung cấp dịch vụ danh tính của FedCM. Với tính năng này, họ muốn cho phép người dùng chọn giữa tài khoản Seznam hoặc Google trên RP của đối tác. Tuy nhiên, khi Seznam lần đầu tiên tiếp cận việc triển khai FedCM, tính năng này đang ở giai đoạn đầu triển khai và nhà phát triển phải đăng ký dùng thử nguồn gốc và sử dụng mã thông báo để bật tính năng này cho người dùng. Vì lý do này, Seznam đã chọn chờ tính năng này được phát hành trong phiên bản Chrome ổn định.
Tính năng này có trong Chrome 136 và nhà phát triển có thể định cấu hình chế độ hỗ trợ cho nhiều nhà cung cấp danh tính. Ví dụ: để hỗ trợ cả nhà cung cấp danh tính Seznam và Google, IdP có thể đưa hai nhà cung cấp này vào một lệnh gọi get()
duy nhất và RP cũng có thể thực hiện việc này một cách độc lập:
// Executed on the RP's side:
const credential = await navigator.credentials.get({
identity: {
providers: [
{
// IdP1: Seznam's config file URL
configURL: 'https://szn.cz/.well-known/web-identity',
clientId: '123',
},
{
// Also allow Google Sign-in
configURL: 'https://accounts.google.com/gsi/fedcm.json',
clientId: '456',
},
],
},
});
Seznam cho biết tính năng này sẽ là một phần trong giải pháp của họ. Ngoài ra, nhóm FedCM đang triển khai tính năng hỗ trợ nhiều SDK, có hỗ trợ nhiều lệnh gọi get()
.
DNS riêng
Seznam gặp phải một thách thức liên quan đến cấu hình mạng của họ trong giai đoạn thử nghiệm. Máy chủ IdP kiểm thử của họ nằm trong một mạng riêng tư, chỉ có thể truy cập thông qua DNS riêng tư. Chế độ thiết lập này thường được dùng cho môi trường kiểm thử nội bộ và phát triển trước khi các dịch vụ được cung cấp công khai.
Tuy nhiên, chế độ thiết lập này dẫn đến một thách thức: vì tệp well-known
phải được phân phát từ eTLD+1 và miền phát triển riêng tư không được đăng ký trong Danh sách hậu tố công khai, nên trình duyệt sẽ không gửi yêu cầu tìm nạp tệp well-known
được lưu trữ trên miền phát triển:
login.idp.example
: miền phát hành công khai mẫu.idp.example/.well-known/web-identity
: ví dụ về tệp phổ biến trong bản phát hành công khai.login.dev.idp.example
: miền phát triển mẫu.login.dev.idp.example/.well-known/web-identity
: ví dụ về tệp phổ biến trong môi trường phát triển.
Khi quá trình triển khai FedCM được lưu trữ trên một miền riêng tư, các yêu cầu của trình duyệt đối với tệp well-known
sẽ dẫn đến lỗi này:
The fetch of the well-known file resulted in a network error: ERR_NAME_NOT_RESOLVED
Bạn có thể giải quyết lỗi này bằng cách bật cờ #fedcm-without-well-known-enforcement
của Chrome. Khi cờ này được bật, trình duyệt sẽ bỏ qua việc tìm nạp tệp well-known
cho mục đích kiểm thử. Tìm hiểu cách bật cờ thử nghiệm trong Chrome.
Thông tin công bố tuỳ chỉnh
Seznam cũng cho biết họ muốn thêm thông tin bên cạnh thiết kế ban đầu của giao diện người dùng FedCM. Hộp thoại FedCM tiêu chuẩn hiển thị một thông báo cố định cho người dùng, cho biết rằng dữ liệu cụ thể (thường là ảnh hồ sơ, tên và địa chỉ email của người dùng) đang được chia sẻ với RP.
Nhóm FedCM đã tiếp thu ý kiến phản hồi và mở rộng API để cho phép tuỳ chỉnh thông tin công bố được trình bày cho người dùng. Ví dụ: với tính năng Tiếp tục trên, IdP có thể chuyển hướng người dùng đến một trang tuỳ chỉnh để yêu cầu thêm thông tin hoặc quyền. Các tính năng Tham số tuỳ chỉnh và Trường (được hỗ trợ từ Chrome 132) cho phép tuỳ chỉnh thêm.

Xác thực nguồn gốc của Bên phụ thuộc
Máy chủ IdP phải xác thực tiêu đề HTTP Origin
trong một yêu cầu FedCM đến để đảm bảo yêu cầu đó khớp với nguồn gốc mà RP đã đăng ký trước với IdP. Điều này đảm bảo rằng yêu cầu xác nhận danh tính FedCM đến từ một RP được uỷ quyền chứ không phải từ kẻ tấn công sử dụng client_id
.
Seznam có một trường hợp đặc biệt: khi các RP đối tác của họ đăng ký với Seznam, họ không yêu cầu dữ liệu nguồn của RP. Điều này có nghĩa là không xác minh được nguồn gốc của RP.
Tính năng tích hợp FedCM của Seznam được xây dựng dựa trên một giải pháp OAuth hiện có. Họ đã chọn cách khác là xác thực cả client_id
và client_secret
của RP để đảm bảo giải pháp vẫn an toàn mà không cần kiểm tra nguồn gốc.
Miền hiển thị cho người dùng của nhà cung cấp danh tính
Cơ sở hạ tầng xác thực người dùng của Seznam chủ yếu hoạt động trên miền szn.cz
, nơi lưu trữ các điểm cuối IdP cần thiết cho FedCM. Tuy nhiên, danh tính chính của công ty và miền mà người dùng nhận biết rộng rãi cũng như tin tưởng các dịch vụ của họ là seznam.cz
.
Hộp thoại FedCM hiển thị miền nguồn thực tế của các điểm cuối IdP – trong trường hợp này là szn.cz
.
Những người dùng quen thuộc với thương hiệu seznam.cz
có thể cảm thấy bối rối và do dự khi được nhắc đăng nhập bằng miền szn.cz
ít quen thuộc hơn trong quá trình đăng nhập.
Kể từ Chrome 141, FedCM không cho phép hiển thị một miền khác với miền lưu trữ việc triển khai IdP. Đây là một lựa chọn thiết kế có chủ đích nhằm đảm bảo tính minh bạch cho người dùng. Tuy nhiên, nhóm FedCM nhận thấy những thách thức mà hạn chế này có thể gây ra và đang thảo luận về những điều chỉnh tiềm ẩn.
Tác động
Với FedCM API, Seznam hiện có thể cung cấp quy trình uỷ quyền bằng một lần nhấn cho người dùng của các đối tác. Họ nhấn mạnh những lợi ích mà UX của FedCM mang lại so với các phương thức xác thực khác.
Mặc dù Seznam nhận thấy mức độ tương tác của người dùng tăng đáng kể trên những trang web chuyển sang đăng nhập bằng FedCM, nhưng họ không tiến hành phân tích toàn diện để tách biệt tác động trực tiếp chính xác từ các yếu tố khác. Trước khi tích hợp FedCM, việc triển khai cho phép thanh toán với tư cách khách bằng cách sử dụng email băm đã được đồng ý để nhận dạng người dùng. Thách thức khi thực hiện phân tích như vậy là ước tính xem liệu lượt chuyển đổi của người dùng có thể được phân bổ cho FedCM hay không, hoặc liệu người dùng có hoàn tất giao dịch mua bằng tính năng thanh toán của khách hay không. Giả thuyết của Seznam cho rằng việc FedCM cải thiện tính dễ sử dụng có thể đã góp phần làm tăng tỷ lệ chuyển đổi này.
Kết luận
Seznam đã triển khai thành công FedCM, cung cấp một quy trình uỷ quyền thay thế cùng với giải pháp OAuth hiện có. Mặc dù các nhà phát triển của Seznam gặp phải một số thách thức liên quan đến việc hỗ trợ nhà cung cấp danh tính, chế độ thiết lập DNS riêng tư, tuỳ chỉnh văn bản công bố, xác thực nguồn gốc của bên phụ thuộc và hiển thị miền cho người dùng, nhưng API này đã hoàn thiện kể từ khi họ triển khai. Nhóm FedCM đã tiếp thu ý kiến phản hồi của Seznam và những người dùng sớm khác, nhờ đó có thể cung cấp các công cụ tốt hơn để giải quyết những thách thức này. Bước tiếp theo, Seznam dự định triển khai tính năng hỗ trợ nhiều nhà cung cấp dịch vụ danh tính của FedCM.