Federated Credential Management API được cung cấp trong Chrome 108 nhưng dự kiến sẽ tiếp tục phát triển. Không có thay đổi nào có thể gây lỗi.
Những nội dung cập nhật này dành cho ai?
Những bản cập nhật này dành cho bạn nếu:
- Bạn là một IdP sử dụng Federated Credential Management API.
- Bạn là một IdP hoặc RP và muốn mở rộng API cho phù hợp với trường hợp sử dụng của mình – ví dụ: bạn đã quan sát hoặc tham gia vào các cuộc thảo luận trên kho lưu trữ FedID CG và muốn tìm hiểu những thay đổi đã thực hiện đối với API.
- Bạn là nhà cung cấp trình duyệt và muốn nắm bắt trạng thái triển khai của API.
Nếu bạn mới sử dụng API này hoặc chưa thử nghiệm API này, hãy đọc nội dung giới thiệu về API quản lý thông tin xác thực liên kết.
Nhật ký thay đổi
Để nắm bắt thông tin cập nhật về các thay đổi đối với API FedCM, hãy xem blog hoặc bản tin của chúng tôi.
Chrome 131 (tháng 10 năm 2024)
- Storage Access API hiện sử dụng FedCM làm tín hiệu tin cậy.
- Nếu người dùng xác thực bằng FedCM, với lựa chọn sử dụng RP, thì IdP nhúng có thể gọi phương thức
requestStorageAccess()
để tự động nhận quyền 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.
- Nếu người dùng xác thực bằng FedCM, với lựa chọn sử dụng RP, thì IdP nhúng có thể gọi phương thức
Chrome 125 (Tháng 4 năm 2024)
- Vì thông số kỹ thuật đã cập nhật tên của "điểm cuối danh sách tài khoản" thành "điểm cuối tài khoản", nên tài liệu của chúng tôi cũng được điều chỉnh cho phù hợp.
- Bản dùng thử theo nguyên gốc cho Button Mode API có trên Chrome phiên bản 125 dành cho máy tính. Tìm hiểu thêm về vấn đề này trong bài viết Thông tin cập nhật về FedCM: Thử nghiệm nguồn gốc API Chế độ nút, CORS và SameSite.
- CORS được thực thi trên điểm cuối xác nhận danh tính kể từ Chrome 125.
- Kể từ Chrome 125, Chrome sẽ chỉ gửi những cookie được đánh dấu rõ ràng là
SameSite=None
đến điểm cuối xác nhận mã nhận dạng và điểm cuối tài khoản.
Chrome 123 (tháng 2 năm 2024)
- Thêm tính năng hỗ trợ cho Domain Hint API (API gợi ý về miền). API Gợi ý về miền cho phép RP chỉ định một thuộc tính
domainHint
trên lệnh gọi API FedCM để chỉ hiển thị các tài khoản phù hợp cho người dùng.
Chrome 122 (Tháng 1 năm 2024)
- Thêm tính năng hỗ trợ cho Disconnect API. API ngắt kết nối cho phép các RP ngắt kết nối người dùng khỏi tài khoản của IdP mà không cần dựa vào cookie của bên thứ ba.
- Giờ đây, bạn sẽ bỏ qua bước kiểm tra
/.well-known/web-identity
khi RP và IdP nằm trên cùng một trang web. - Các tài nguyên phụ hiện có thể đặt trạng thái đăng nhập trên cùng một trang web.
Chrome 121 (tháng 12 năm 2023)
- Điều kiện nới lỏng để kích hoạt tính năng tự động xác thực lại FedCM:
- Tính năng tự động xác thực lại trong FedCM chỉ được kích hoạt khi người dùng quay lại. Điều này có nghĩa là người dùng cần đăng nhập vào RP bằng FedCM một lần trên mỗi phiên bản trình duyệt trước khi có thể kích hoạt tính năng tự động xác thực lại. Điều kiện này ban đầu được đưa ra để giảm thiểu nguy cơ trình theo dõi giả mạo là nhà cung cấp danh tính (IdP) và lừa trình duyệt tự động xác thực lại người dùng mà người dùng không biết hoặc không đồng ý. Tuy nhiên, thiết kế này không thể đảm bảo lợi ích về quyền riêng tư nếu trình theo dõi có quyền truy cập vào cookie của bên thứ ba trong ngữ cảnh RP. FedCM chỉ cung cấp một số tính năng có thể thực hiện được thông qua cookie của bên thứ ba. Vì vậy, nếu trình theo dõi đã có quyền truy cập vào cookie của bên thứ ba trong ngữ cảnh RP, thì quyền truy cập vào FedCM sẽ không gây ra thêm rủi ro nào về quyền riêng tư.
Vì có những trường hợp sử dụng hợp pháp cookie của bên thứ ba và việc nới lỏng điều kiện sẽ cải thiện trải nghiệm người dùng, nên hành vi này sẽ thay đổi từ Chrome 121. Chúng tôi đã quyết định nới lỏng quy định hạn chế về điều kiện để coi người dùng là người dùng cũ: nếu nhà cung cấp danh tính (IdP) có thể sử dụng cookie của bên thứ ba trong ngữ cảnh RP, thì Chrome sẽ tin tưởng thông báo của IdP về trạng thái tài khoản của người dùng được chỉ định thông qua danh sáchapproved_clients
và kích hoạt tính năng tự động xác thực lại nếu có. Cookie của bên thứ ba có thể được cung cấp thông qua: chế độ cài đặt của người dùng, chính sách của doanh nghiệp, phương pháp phỏng đoán (Safari, Firefox, Chrome) và các API nền tảng web khác (chẳng hạn như API truy cập bộ nhớ). Xin lưu ý rằng trong tương lai, khi IdP mất quyền truy cập vào cookie của bên thứ ba, nếu người dùng chưa bao giờ cấp quyền rõ ràng trên giao diện người dùng FedCM (ví dụ: nhấp vào nút Tiếp tục dưới dạng), thì họ vẫn sẽ được coi là người dùng mới.
Nhà phát triển không cần làm gì cả. Xin lưu ý rằng quy trình tự động xác thực lại có thể được kích hoạt nhiều hơn với thay đổi này nếu IdP có quyền truy cập vào cookie của bên thứ ba và tuyên bố rằng người dùng đã tạo tài khoản trên RP trước đây.
- Tính năng tự động xác thực lại trong FedCM chỉ được kích hoạt khi người dùng quay lại. Điều này có nghĩa là người dùng cần đăng nhập vào RP bằng FedCM một lần trên mỗi phiên bản trình duyệt trước khi có thể kích hoạt tính năng tự động xác thực lại. Điều kiện này ban đầu được đưa ra để giảm thiểu nguy cơ trình theo dõi giả mạo là nhà cung cấp danh tính (IdP) và lừa trình duyệt tự động xác thực lại người dùng mà người dùng không biết hoặc không đồng ý. Tuy nhiên, thiết kế này không thể đảm bảo lợi ích về quyền riêng tư nếu trình theo dõi có quyền truy cập vào cookie của bên thứ ba trong ngữ cảnh RP. FedCM chỉ cung cấp một số tính năng có thể thực hiện được thông qua cookie của bên thứ ba. Vì vậy, nếu trình theo dõi đã có quyền truy cập vào cookie của bên thứ ba trong ngữ cảnh RP, thì quyền truy cập vào FedCM sẽ không gây ra thêm rủi ro nào về quyền riêng tư.
Chrome 120 (tháng 11 năm 2023)
- Bổ sung tính năng hỗ trợ cho 3 tính năng sau trong Chrome 120:
- API trạng thái đăng nhập: API trạng thái đăng nhập là một cơ chế trong đó một trang web, đặc biệt là một IdP, thông báo cho trình duyệt về trạng thái đăng nhập của người dùng. Với API này, trình duyệt có thể giảm các yêu cầu không cần thiết đến IdP và giảm thiểu các cuộc tấn công theo thời gian tiềm ẩn. API Trạng thái đăng nhập là một yêu cầu đối với FedCM.
Với thay đổi này, bạn không cần phải sử dụng cờ
chrome://flags/#fedcm-without-third-party-cookies
để bật FedCM khi cookie của bên thứ ba bị chặn. - Error API (API lỗi): Error API (API lỗi) thông báo cho người dùng bằng cách hiển thị giao diện người dùng trình duyệt có thông tin lỗi do IdP cung cấp.
- Auto-Selected Flag API (API Cờ được tự động chọn): Auto-Selected Flag API (API Cờ được tự động chọn) chia sẻ thông tin về việc liệu người dùng có cấp quyền rõ ràng hay không bằng cách nhấn vào nút Tiếp tục dưới dạng với cả IdP và RP, bất cứ khi nào quá trình tự động xác thực lại xảy ra hoặc có sự dàn xếp rõ ràng. Việc chia sẻ chỉ xảy ra sau khi người dùng cấp quyền giao tiếp cho IdP và RP.
- API trạng thái đăng nhập: API trạng thái đăng nhập là một cơ chế trong đó một trang web, đặc biệt là một IdP, thông báo cho trình duyệt về trạng thái đăng nhập của người dùng. Với API này, trình duyệt có thể giảm các yêu cầu không cần thiết đến IdP và giảm thiểu các cuộc tấn công theo thời gian tiềm ẩn. API Trạng thái đăng nhập là một yêu cầu đối với FedCM.
Với thay đổi này, bạn không cần phải sử dụng cờ
Chrome 117 (tháng 9 năm 2023)
- Bản dùng thử theo nguyên gốc cho API Trạng thái đăng nhập của Idp có trên Android từ Chrome 117. Tìm hiểu thêm về API này trong bài viết Thông tin cập nhật về FedCM: API Trạng thái đăng nhập của IdP, Gợi ý đăng nhập và nhiều thông tin khác.
Chrome 116 (tháng 8 năm 2023)
- Bổ sung tính năng hỗ trợ cho 3 tính năng sau trong Chrome 116:
- Login Hint API (API Gợi ý đăng nhập): Chỉ định một tài khoản người dùng ưu tiên để đăng nhập.
- User Info API (API Thông tin người dùng): Tìm nạp thông tin của người dùng đăng nhập lại để nhà cung cấp danh tính (IdP) có thể hiển thị nút đăng nhập được cá nhân hoá trong một iframe.
- RP Context API (API ngữ cảnh RP): Sử dụng tiêu đề khác với "Đăng nhập" trong hộp thoại FedCM.
- Bản dùng thử theo nguyên gốc cho API Trạng thái đăng nhập qua IdP hiện đã có. Tìm hiểu thêm về API này trong bài viết Thông tin cập nhật về FedCM: API Trạng thái đăng nhập của IdP, Gợi ý đăng nhập và nhiều thông tin khác.
Chrome 115 (tháng 6 năm 2023)
- Thêm tính năng hỗ trợ tự động xác thực lại để cho phép người dùng tự động xác thực lại khi họ quay lại sau khi xác thực lần đầu bằng FedCM. Điều này giúp cải thiện trải nghiệm người dùng và cho phép xác thực lại đơn giản hơn cho RP sau khi xác thực ban đầu. Tìm hiểu thêm về tính năng tự động xác thực lại FedCM.
Chrome 110 (tháng 2 năm 2023)
- Đối với điểm cuối xác nhận mã nhận dạng, IdP cần kiểm tra tiêu đề
Origin
(thay vì tiêu đềReferer
) để xem giá trị có khớp với nguồn gốc của mã ứng dụng hay không. - Hiện đã có tính năng hỗ trợ iframe trên nhiều nguồn gốc cho FedCM. Trình nhúng phải chỉ định Permissions-Policy
identity-credentials-get
để cho phép API FedCM trong iframe đa nguồn gốc được nhúng. Bạn có thể xem ví dụ về iframe trên nhiều nguồn gốc. - Thêm cờ Chrome mới
chrome://flags/#fedcm-without-third-party-cookies
. Với cờ này, bạn có thể kiểm thử chức năng FedCM trong Chrome bằng cách chặn cookie của bên thứ ba. Tìm hiểu thêm trong tài liệu về FedCM.
Chrome 108 (tháng 10 năm 2022)
- "tệp kê khai cấp cao nhất" hiện được gọi là "tệp đã biết" trong tài liệu. Bạn không cần thay đổi cách triển khai.
- "Tệp kê khai IdP" hiện được gọi là "tệp cấu hình" trong tài liệu. Bạn không cần thay đổi cách triển khai.
id_token_endpoint
trong "tệp cấu hình" được đổi tên thànhid_assertion_endpoint
.- Các yêu cầu gửi đến IdP hiện bao gồm tiêu đề
Sec-Fetch-Dest: webidentity
thay vì tiêu đềSec-FedCM-CSRF: ?1
.
Chrome 105 (tháng 8 năm 2022)
- Thêm thông tin bảo mật quan trọng vào tài liệu. Nhà cung cấp danh tính (IdP) cần kiểm tra xem tiêu đề
Referer
có khớp với nguồn gốc mà RP đã đăng ký trước trên điểm cuối mã thông báo nhận dạng hay không. - Tệp kê khai cấp cao nhất được đổi tên từ
/.well-known/fedcm.json
thành/.well-known/web-identity
và URL được chỉ định trongprovider_urls
phải bao gồm tên tệp. - Các phương thức
login()
,logout()
vàrevoke()
trên các thực thểFederatedCredential
không còn hoạt động nữa. - API Quản lý thông tin xác thực liên kết hiện sử dụng loại mới
IdentityCredential
thay vìFederatedCredential
. Bạn có thể sử dụng tính năng này để phát hiện tính năng, nhưng đây chủ yếu là một thay đổi không nhìn thấy. - Di chuyển chức năng đăng nhập từ tổ hợp
navigator.credentials.get()
vàFederatedCredential.prototype.login()
sangnavigator.credentials.get()
. - Điểm cuối của lệnh thu hồi trong tệp kê khai không còn hiệu lực nữa.
- Sử dụng trường
identity
thay vì trườngfederated
cho các lệnh gọinavigator.credentials.get()
. url
hiện làconfigURL
và phải là URL đầy đủ cho tệp JSON kê khai thay vì đường dẫn cho lệnh gọinavigator.credentials.get()
.nonce
hiện là tham số không bắt buộc chonavigator.credentials.get()
.hint
không còn là một tuỳ chọn chonavigator.credentials.get()
nữa.
const credential = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/anything.json',
clientId: '********',
nonce: '******'
}]
}
});
const { token } = credential;
Chrome 104 (tháng 6 năm 2022)
- Tham số
consent_acquired
được gửi đến điểm cuối mã thông báo nhận dạng hiện làdisclosure_text_shown
. Giá trị không thay đổi. - Các biểu tượng thương hiệu trong tệp kê khai IdP đã ngừng hỗ trợ hình ảnh SVG, nhưng không cần phải được Chính sách bảo mật nội dung của RP cho phép nữa.
Chrome 103 (tháng 5 năm 2022)
- Hỗ trợ môi trường máy tính.
- Hỗ trợ chế độ cài đặt cho từng RP trên máy tính.
- Điểm cuối siêu dữ liệu của ứng dụng hiện là tuỳ chọn. Trong điểm cuối này, bạn cũng không bắt buộc phải cung cấp URL chính sách quyền riêng tư.
- Thêm một cảnh báo về việc sử dụng CSP
connect-src
trong tài liệu.