FedCM 更新:電腦上的 Multi IdP API、適用於 Android 來源試用的 Chrome Button Mode API 和 Continuation Bundle

Natalia Markoborodova
Natalia Markoborodova

自 Chrome 128 起,Multi-IdP API 將開始在電腦上試用來源,Button Mode API接續套件也會在 Android 裝置上開始試用。有了多重 IdP 功能,開發人員可以在單一 get() 呼叫中指定多個支援的識別資訊提供者陣列。Button Mode API 會新增使用者介面。有了按鈕模式 API,即使使用者在 API 呼叫時沒有有效的 IdP 工作階段,身分識別提供者也能使用 FedCM API。接續程序包包含接續 API 和參數 API,可提供類似 OAuth 授權流程的體驗,包括 IdP 提供的權限對話方塊。此套裝組合也包含其他變更,例如 Fields API、多個 configURL 和自訂帳戶標籤。

來源試用:Multi IdP API

這項功能可讓使用者從一組支援的 IdP 中選擇帳戶,而合作夥伴則可因此提高登入和註冊率。如果使用者透過多個 IdP 登入,系統會提示他們使用其中一個 IdP 登入 RP。

使用者透過多個 IdP API 登入不同的 IdP。

系統會依據使用者現有的帳戶及其相關時間戳記排定 IdP 的優先順序。

  • 如果使用者先前已使用特定 IdP 登入 RP (也就是有「回訪帳戶」),系統會優先列出這些 IdP。
  • 在回訪帳戶中,系統會進一步依最近使用時間戳記排序識別資訊提供者,最近使用的識別資訊提供者會顯示在清單頂端。在某些情況下,Chrome 可能沒有返回帳戶的時間戳記資料。這可能是因為使用者在 FedCM 實作時間戳記記錄之前登入。下方將列出有時間戳記的帳戶。
  • 如果使用者沒有任何 IdP 的回傳帳戶,系統會遵循 RP 提供的順序。

如果開發人員要求,且有單一回訪帳戶,FedCM 就會自動重新驗證。採用多重 IdP 的情況下,如果傳回的帳戶適用於多個 IdP,系統將不會自動重新驗證使用者。自動重新驗證功能強烈建議使用回訪帳戶。只有在瀏覽器明確辨識帳戶時,才會啟動自動重新驗證程序。這表示使用者必須先透過這個 RP 上的特定帳戶使用 FedCM。

如果使用者的登入狀態設為登出 IdP,則呼叫 FedCM 並不會擷取該 IdP 的帳戶。同樣地,如果所有可用 IdP 的使用者處於登出狀態,小工具模式也不會自動顯示 FedCM 登入提示。

如果瀏覽器中儲存的 IdP 登入狀態已登入,但擷取要求未傳回任何此 IdP 的帳戶 (例如,如果使用者工作階段已到期,但瀏覽器尚未更新登入狀態),系統會顯示不相符的 UI,建議使用者使用不相符的 IdP 登入。

如果使用者的登入狀態已經登入,但工作階段已過期,系統會顯示不相符的 UI。

如要進一步瞭解登入狀態,請參閱說明文件。如需進一步的實作詳細資訊,請參閱開發人員指南

來源試用:Multi IdP API

您可以嘗試使用示範 RP 中的 Multi IdP API,也可以使用 Chrome 128 以上版本嘗試開發人員版本。

以使用者身分試用

以使用者的身分親自試用。請確認下列項目:

  • Chrome 未設定為封鎖 chrome://settings/content/federatedIdentityApi 頁面上的第三方登入提示。
  • 您已登入多個示範 IdP。按照示範頁面上的指示操作。

請注意,如要對來源未註冊執行來源試用的網站試用多 IdP,您需要啟用 chrome://flags/#fedcm-multi-idp 底下的功能旗標。

以開發人員身分試用

如果登入服務供應商在 RP 上嵌入了 JavaScript SDK (建議做法),供應商就能實作 navigator.credentials.get() 呼叫,啟用多個 IdP,而 RP 開發人員則不必變更程式碼。否則,RP 需要自行呼叫 FedCM API。

如要在 RP 上測試多 IdP,請指定支援的提供者陣列,如下所示:

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);
}

結果物件中的 configURL 屬性會儲存使用者驗證的 IdP 設定檔網址。RP 可以決定如何處理產生的 token,因為結果會因 IdP 而異。

參與來源試用

來源試用計畫可讓你試用新功能,並就可用性、實用性和成效提供意見回饋。詳情請參閱「開始使用來源試用」一文。

從 Chrome 128 開始,您可以註冊來源試用,體驗多重 IdP 功能。

如要試用多重 IdP,RP 可以註冊自己的來源,並執行第一方來源測試。IdP 也可以註冊第三方來源試用,並透過 JavaScript SDK 為所有 RP 提供 Multi IdP 功能。

參加來源試用的步驟:

  1. 前往 Multi IdP API 來源試用註冊頁面
  2. 按一下「Register」按鈕,並填寫表單以要求權杖。
  3. 如要註冊第一方來源試用,請在「網站來源」欄位中輸入 RP 的來源。如要進行第三方來源試用,請輸入 IdP 的 JavaScript SDK 來源,然後勾選「第三方比對」方塊。
  4. 按一下「提交」
  5. 在 RP 頁面中提供已核發的權杖:
    • 如果是第一方來源試用參與者:
      • 做為 <head> 中的中繼標記:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • 做為 HTTP 標頭:Origin-Trial: TOKEN_GOES_HERE
    • 第三方來源試用計畫參與者:
      • 透過程式輔助方式提供權杖。

Android 版 Chrome 的按鈕模式 API

自 Chrome 128 版起,Chrome 裝置上的 Button Mode API 來源試用會在電腦版試用結束後開始試用。只要使用 Button Mode API,識別資訊提供者就能使用 FedCM API,即使使用者在 API 呼叫時已登出 IdP,還是能使用 FedCM API。登入流程是透過使用者手勢啟動,這種手勢更能反映使用者的意圖。

Chrome 128 推出了新功能,可讓 IdP 直接在用戶端中繼資料端點回應中,加入 RP 的官方標誌圖示。這可改善行動裝置的按鈕模式使用者介面。

與設定檔中的 IdP 品牌相同,RP 的圖示可以在 IdP 端設定,並在 client_metadata_endpoint 回應中傳回,如下所示:

  "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
   }]
IdP 和 RP 的標誌圖示。
行動版揭露 UI 中的 IdP 和 RP 標誌圖示。

如要進一步瞭解圖示支援資訊,請參閱開發人員說明文件

如果使用者尚未登入,FedCM 會透過 Chrome 自訂分頁 (CCT) 提示使用者使用 IdP 提供的 login_url 登入 IdP。

使用者透過行動裝置上的按鈕模式登入。

如果使用者使用回訪帳戶重新驗證,系統就不會顯示揭露資訊 UI。

使用者登入已使用的帳戶。不會顯示揭露事項 UI。

如要註冊來源試用,請參閱 電腦上的 Button Mode API 操作說明。如果你已在電腦上申請來源試用,自 Chrome 128 起,Android 裝置上的 Chrome 都會自動使用這項功能。

Android 版 Google Chrome 適用的 Continuation API 套件

從 Chrome 第 128 版開始,Android 版 Chrome 將在來源試用期間提供 Continuation API 套件,這是在電腦版的初始試用後推出。這個套件包含多項 FedCM 功能,包括 Continuation APIParameters APIFields APIMultiple configURLsCustom Account Labels

Continuation API 可啟用多步驟登入流程。Parameters API 可讓您將其他參數傳遞至 IdP。Fields API 可讓 RP 在 FedCM 對話方塊中,為揭露資訊 UI 要求特定帳戶屬性。此外,多個 configURL 可支援單一 ID 提供者多個設定檔,而自訂帳戶標籤可讓 ID 提供者為帳戶加上註解,讓應用程式提供者可依據這些標籤篩選帳戶。

如要進一步瞭解 Continuation API 套件,請參閱有關電腦版 Continuation API 套件的網誌文章。如要註冊原生試用版,請按照這些操作說明操作。如果你已在電腦上申請來源試用,自 Chrome 128 起,Android 裝置上的 Chrome 就會自動提供這些功能。

互動及分享意見回饋

如有任何意見或問題,歡迎提出問題。我們會隨時更新標準 FedCM 開發人員指南,以及累計的更新記錄頁面