Nội dung cập nhật về API Federated Credential Management

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 132 (tháng 11 năm 2024)

Chrome 131 (tháng 10 năm 2024)

Chrome 125 (Tháng 4 năm 2024)

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.
  • Giờ đây, các tài nguyên phụ 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à họ 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 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ách approved_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.

Chrome 120 (tháng 11 năm 2023)

  • Thêm 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.

Chrome 117 (tháng 9 năm 2023)

Chrome 116 (tháng 8 năm 2023)

  • Thêm 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ành id_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 trong provider_urls phải bao gồm tên tệp.
  • Các phương thức login(), logout()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 được.
  • Di chuyển chức năng đăng nhập từ tổ hợp navigator.credentials.get()FederatedCredential.prototype.login() sang navigator.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ường federated cho các lệnh gọi navigator.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ọi navigator.credentials.get().
  • nonce hiện là tham số không bắt buộc cho navigator.credentials.get().
  • hint không còn là tuỳ chọn cho navigator.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)

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.

Tài nguyên