Thông tin cập nhật về FedCM: API Nhiều nhà cung cấp danh tính trên máy tính, API Chế độ nút và Gói tiếp tục dành cho Chrome trên bản dùng thử theo nguyên gốc Android

Natalia Markoborodova
Natalia Markoborodova

Kể từ Chrome 128, Multi-IdP API (API nhiều IDP) sẽ bắt đầu thử nghiệm theo nguyên gốc trên máy tính, còn Button Mode API (API Chế độ nút) và Continuation bundle (Gói tiếp tục) sẽ bắt đầu thử nghiệm theo nguyên gốc trên Android. Với tính năng Nhiều IdP, nhà phát triển có thể chỉ định một mảng gồm nhiều Nhà cung cấp danh tính được hỗ trợ trong một lệnh gọi get(). API Chế độ nút sẽ thêm một giao diện người dùng mới. Với API Chế độ nút, nhà cung cấp danh tính có thể sử dụng API FedCM ngay cả khi người dùng không có phiên hoạt động của IdP khi gọi API. Gói Tiếp tục bao gồm Continuation API và Parameters API, cho phép trải nghiệm tương tự như quy trình uỷ quyền OAuth liên quan đến hộp thoại cấp quyền do IdP cung cấp. Gói này cũng bao gồm các thay đổi khác như API trường, Nhiều configURL và Nhãn tài khoản tuỳ chỉnh.

Bản dùng thử theo nguyên gốc: API nhiều IdP

Tính năng này cho phép người dùng chọn một tài khoản trong một nhóm các Nhà cung cấp dịch vụ nhận dạng (IdP) được hỗ trợ, đồng thời giúp Nhà cung cấp ứng dụng (RP) hưởng lợi từ tỷ lệ đăng nhập và đăng ký cao hơn. Nếu người dùng đăng nhập bằng nhiều IdP, họ sẽ được nhắc đăng nhập vào RP bằng một trong các IdP đó.

Người dùng đang đăng nhập bằng nhiều IdP thông qua API nhiều IdP.

Các IdP được ưu tiên dựa trên các tài khoản hiện có của người dùng và dấu thời gian liên kết của các tài khoản đó.

  • Nếu người dùng từng đăng nhập vào RP bằng một IdP cụ thể (tức là họ có "tài khoản cũ"), thì các IdP đó sẽ được liệt kê trước tiên.
  • Trong các tài khoản đăng nhập lại, các IdP được sắp xếp thêm theo dấu thời gian sử dụng gần đây nhất, trong đó IdP được sử dụng gần đây nhất sẽ xuất hiện ở đầu danh sách. Trong một số trường hợp, Chrome có thể không có dữ liệu dấu thời gian cho một tài khoản cũ. Điều này có thể là do người dùng đã đăng nhập trước khi triển khai nhật ký dấu thời gian trong FedCM. Các tài khoản này được liệt kê bên dưới những tài khoản có dấu thời gian.
  • Nếu người dùng không có tài khoản đăng nhập lại với bất kỳ IdP nào, thì thứ tự do RP cung cấp sẽ được tuân thủ.

FedCM cho phép tự động xác thực lại nếu nhà phát triển yêu cầu và nếu có một tài khoản trả lại. Trong trường hợp nhiều IdP, nếu có tài khoản đăng nhập lại cho nhiều IdP, thì người dùng sẽ không được tự động xác thực lại. Bạn cần có một tài khoản cũ để có thể tự động xác thực lại. Trình duyệt sẽ chỉ bắt đầu xác thực lại tự động khi trình duyệt nhận dạng rõ ràng tài khoản. Điều này có nghĩa là người dùng phải từng sử dụng FedCM bằng tài khoản cụ thể này trên RP này.

Nếu trạng thái đăng nhập của người dùng được đặt thành đã đăng xuất cho một IdP, thì việc gọi FedCM sẽ không tìm nạp tài khoản cho IdP đó. Tương tự, nếu trạng thái của người dùng là đã đăng xuất khỏi tất cả các IdP hiện có, thì lời nhắc đăng nhập FedCM sẽ không tự động xuất hiện ở chế độ tiện ích.

Nếu trạng thái đăng nhập đã lưu trong trình duyệt cho một IdP đã được đăng nhập, nhưng yêu cầu tìm nạp không trả về tài khoản nào cho IdP này (ví dụ: nếu phiên người dùng đã hết hạn nhưng trình duyệt chưa cập nhật trạng thái đăng nhập), thì giao diện người dùng không khớp sẽ hiển thị cho IdP, đề xuất người dùng đăng nhập bằng IdP không khớp.

Khi trạng thái đăng nhập của người dùng là đã đăng nhập nhưng phiên đã hết hạn, giao diện người dùng không khớp sẽ xuất hiện.

Để biết thêm thông tin về trạng thái đăng nhập, hãy xem tài liệu. Hãy xem hướng dẫn dành cho nhà phát triển để biết thêm thông tin chi tiết về cách triển khai.

Bản dùng thử theo nguyên gốc: API nhiều IdP

Bạn có thể dùng thử API nhiều IdP với tư cách là người dùng trên RP minh hoạ hoặc với tư cách là nhà phát triển sử dụng Chrome 128 trở lên.

Thử nghiệm với tư cách là người dùng

Tự dùng thử với tư cách là người dùng. Hãy đảm bảo rằng:

  • Chrome không được định cấu hình để chặn lời nhắc đăng nhập của bên thứ ba trên trang: chrome://settings/content/federatedIdentityApi.
  • Bạn đã đăng nhập vào nhiều Nhà cung cấp dịch vụ nhận dạng (IdP) minh hoạ. Làm theo hướng dẫn trên trang minh hoạ.

Xin lưu ý rằng để dùng thử tính năng Nhiều IDP trên các trang web có nguồn gốc chưa được đăng ký dùng thử nguồn gốc, bạn cần bật cờ tính năng trong chrome://flags/#fedcm-multi-idp.

Dùng thử với vai trò là nhà phát triển

Nếu nhà cung cấp dịch vụ đăng nhập có SDK JavaScript được nhúng trên RP (nên dùng), thì nhà cung cấp có thể triển khai lệnh gọi navigator.credentials.get() để bật nhiều IdP và nhà phát triển RP không cần thay đổi mã của họ. Nếu không, RP cần tự gọi API FedCM.

Để kiểm thử nhiều IdP trên một RP, hãy chỉ định mảng các nhà cung cấp được hỗ trợ như sau:

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

Thuộc tính configURL trong đối tượng thu được sẽ lưu trữ URL của tệp cấu hình cho IdP mà người dùng đã xác thực. RP có thể xác định cách xử lý token thu được vì cách xử lý này khác nhau tuỳ thuộc vào IdP.

Tham gia thử nghiệm về nguồn gốc

Bản dùng thử theo nguyên gốc cho phép bạn dùng thử các tính năng mới và đưa ra ý kiến phản hồi về khả năng hữu dụng, tính thực tế và hiệu quả của các tính năng đó. Để biết thêm thông tin, hãy xem bài viết Bắt đầu thử nghiệm nguồn gốc.

Bạn có thể dùng thử tính năng Nhiều IdP bằng cách đăng ký thử nghiệm theo nguyên gốc bắt đầu từ Chrome 128.

Để dùng thử nhiều IdP, RP có thể đăng ký nguồn gốc và chạy bản dùng thử nguồn gốc của bên thứ nhất. Nhà cung cấp danh tính cũng có thể đăng ký dùng thử nguồn gốc bên thứ ba và sử dụng tính năng Nhiều nhà cung cấp danh tính cho tất cả RP bằng cách sử dụng SDK Javascript.

Các bước để tham gia thử nghiệm về nguồn gốc:

  1. Truy cập vào trang đăng ký dùng thử theo nguyên gốc API nhiều IdP. 2. Nhấp vào nút Register (Đăng ký) rồi điền thông tin vào biểu mẫu để yêu cầu mã thông báo.
  2. Để đăng ký dùng thử nguồn gốc của bên thứ nhất, hãy nhập nguồn gốc của RP vào trường "Nguồn gốc web". Đối với thử nghiệm nguồn gốc bên thứ ba, hãy nhập nguồn gốc của SDK JavaScript của IdP và đánh dấu vào hộp "So khớp bên thứ ba".
  3. Nhấp vào Gửi.
  4. Cung cấp mã thông báo đã phát hành trên trang RP:
    • Đối với những người tham gia thử nghiệm nguồn gốc của bên thứ nhất: - Dưới dạng thẻ meta trong <head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE"> - Dưới dạng tiêu đề HTTP: Origin-Trial: TOKEN_GOES_HERE
    • Đối với người tham gia thử nghiệm nguồn gốc bên thứ ba: – Bằng cách cung cấp mã thông báo theo phương thức lập trình.

API Chế độ nút cho Chrome trên Android

Kể từ Chrome phiên bản 128, bản dùng thử theo nguyên gốc của Button Mode API sẽ bắt đầu trên Chrome trên Android, sau bản dùng thử ban đầu trên máy tính. Với API Chế độ nút, nhà cung cấp danh tính có thể sử dụng API FedCM ngay cả khi người dùng của họ đã đăng xuất khỏi IdP sau lệnh gọi API. Luồng đăng nhập được bắt đầu bằng một cử chỉ của người dùng, giúp phản ánh rõ hơn ý định của người dùng.

Trong Chrome 128, chúng tôi ra mắt một tính năng mới cho phép IdP đưa biểu tượng chính thức của RP vào trực tiếp trong phản hồi điểm cuối siêu dữ liệu của ứng dụng. Điều này giúp cải thiện giao diện người dùng trên thiết bị di động ở chế độ nút.

Tương tự như thương hiệu của IdP trong tệp cấu hình, bạn có thể định cấu hình biểu tượng của RP ở phía IdP và trả về trong phản hồi client_metadata_endpoint như sau:

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
Biểu tượng biểu trưng của IdP và RP.
Biểu tượng biểu trưng của IdP và RP trong giao diện người dùng thông tin công bố trên thiết bị di động.

Để tìm hiểu thêm về tính năng hỗ trợ biểu tượng, hãy xem tài liệu dành cho nhà phát triển.

Nếu người dùng chưa đăng nhập, FedCM sẽ nhắc người dùng đăng nhập vào IdP bằng login_url do IdP cung cấp thông qua Thẻ tuỳ chỉnh Chrome (CCT).

Người dùng đang đăng nhập thông qua chế độ nút trên thiết bị di động.

Nếu người dùng đang xác thực lại bằng một tài khoản cũ, thì giao diện người dùng thông tin công bố sẽ không hiển thị.

Người dùng đang đăng nhập bằng một tài khoản cũ. Giao diện người dùng thông tin công bố không hiển thị.

Để đăng ký dùng thử phiên bản gốc, hãy xem hướng dẫn về Button Mode API trên máy tính. Nếu bạn đã đăng ký bản dùng thử theo nguyên gốc trên máy tính, thì tính năng này sẽ tự động được cung cấp cho bạn trên Chrome trên Android kể từ Chrome 128.

Gói API tiếp tục cho Chrome trên Android

Kể từ phiên bản Chrome 128, gói API tiếp tục sẽ được cung cấp cho Chrome trên Android trong một bản dùng thử theo nguyên gốc, sau bản dùng thử ban đầu trên máy tính. Gói này bao gồm nhiều tính năng FedCM, bao gồm API Tiếp tục, API Tham số, API Trường, Nhiều URL cấu hìnhNhãn tài khoản tuỳ chỉnh.

Continuation API hỗ trợ quy trình đăng nhập nhiều bước. API Thông số cho phép truyền các thông số bổ sung đến IdP. API Fields cho phép RP yêu cầu các thuộc tính tài khoản cụ thể cho giao diện người dùng thông tin công bố trong hộp thoại FedCM. Ngoài ra, nhiều configURL hỗ trợ nhiều tệp cấu hình cho một IdP và Nhãn tài khoản tuỳ chỉnh cho phép IdP chú thích tài khoản để RP có thể lọc tài khoản theo các nhãn này.

Để tìm hiểu thêm về gói Continuation API, hãy xem bài đăng trên blog về Gói Continuation API trên máy tính. Để đăng ký dùng thử phiên bản gốc, hãy làm theo hướng dẫn này. Nếu bạn đã đăng ký dùng thử phiên bản gốc trên máy tính, các tính năng này sẽ tự động được cung cấp cho bạn trên Chrome trên Android kể từ Chrome 128.

Tương tác và chia sẻ ý kiến phản hồi

Nếu có ý kiến phản hồi hoặc gặp vấn đề, bạn có thể gửi vấn đề. Chúng tôi sẽ cập nhật hướng dẫn dành cho nhà phát triển về trang web chính thức của FedCM, cùng với trang nhật ký cập nhật tích luỹ.