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 呼叫時沒有有效的 IdP 工作階段,識別資訊提供者可透過 Button Mode API 使用 FedCM API。Continuation API 和 Parameters API 包含 Continuation API 和 Parameters API,可用來啟用類似 OAuth 授權流程的體驗,涉及 IdP 提供的權限對話方塊。此套裝組合也包含其他變更,例如 Fields API、多個 configURL 和自訂帳戶標籤。

來源試用:Multi IdP API

這項功能可讓使用者從一組支援的 IdP 中挑選帳戶,而 RP 可受益於較高的登入和註冊率。如果使用者透過多個 IdP 登入,系統會提示他們使用其中一個 IdP 登入 RP。

使用者透過 Multi-IdP API 使用不同的 IdP 登入。

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

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

如果開發人員提出了自動重新驗證要求,並只有一個返回帳戶,FedCM 就允許自動重新驗證。採用多重 IdP 的情況下,如果傳回的帳戶適用於多個 IdP,系統將不會自動重新驗證使用者。請務必提供返回帳戶,這是自動重新驗證的嚴格要求。只有在瀏覽器明確識別出帳戶的情況下,瀏覽器才會啟動自動重新驗證。這表示使用者必須先透過這個 RP 上的特定帳戶使用 FedCM。

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

如果使用者已登入瀏覽器儲存的 IdP 登入狀態,但擷取要求並未傳回這個 IdP 的登入狀態 (例如使用者工作階段過期,但瀏覽器尚未更新登入狀態),IdP 就會顯示不相符的 UI,建議使用者透過不相符的 IdP 登入。

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

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

來源試用:Multi IdP API

您可以透過示範 RP 的使用者身分試用 Multi IdP API,也能以使用 Chrome 128 以上版本的開發人員身分試用 Multi IdP API。

以使用者身分試用

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

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

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

以開發人員身分試用

如果登入提供者在 RP 上嵌入 JavaScript SDK (建議),供應商就能實作啟用多個 IdP 的 navigator.credentials.get() 呼叫,如此一來,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. 如要註冊第一方來源試用,請在「Web Origin」中輸入 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 也一樣。登入流程是透過使用者手勢啟動,這種手勢更能反映使用者的意圖。

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

與設定檔中的 IdP 品牌宣傳做法類似,您可以在 IdP 端設定 RP 圖示,然後在 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。

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

Android 版 Google Chrome 適用的 Continuation API 套件

自 Chrome 128 版起,Android 裝置上的 Chrome 將提供 Continuation API 套件做為來源試用,並由電腦進行首次試用。這個套裝組合包含多個 FedCM 功能,包括 Continuation APIParameters APIFields API多個 configURLs自訂帳戶標籤

Continuation API 可啟用多步驟登入流程。Parameters API 允許將其他參數傳遞至 IdP。Fields API 可讓 RP API 在 FedCM 對話方塊中顯示揭露使用者介面的特定帳戶屬性。此外,多個 configURL 支援多個 IdP 設定檔,而「自訂帳戶標籤」可讓 IdP 為帳戶加上註解,方便 RP 依據這些標籤篩選帳戶。

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

互動及分享意見回饋

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