Chrome 143 での FedCM の更新

公開日: 2026 年 1 月 12 日

Chrome 143 では、プライバシー、デベロッパー エクスペリエンス、ブラウザの相互運用性を向上させるため、Federated Credential Management(FedCM)API のアップデートが導入されます。これらの変更は、ID プロバイダ(IdP)、証明書利用者(RP)、ウェブ コミュニティからのフィードバックに基づいています。

主な更新内容は次のとおりです。

ID アサーション エンドポイントからの構造化 JSON レスポンスのサポート

以前は、FedCM ID アサーション エンドポイントのレスポンスで token プロパティが文字列である必要がありました。そのため、デベロッパーはサーバーでデータを JSON 文字列に手動でシリアル化し、クライアントで解析する必要がありました。

Chrome 143 以降では、ID アサーション エンドポイントで、token プロパティの値として構造化 JSON オブジェクトがサポートされます。例:

{
  "token": {
    "access_token": "a1b2c3d4e5f6...",
    "user_info": {
      "email": "jane.doe@company.example",
      "given_name": "Jane",
      "family_name": "Doe"
    }
  }
}

この変更により、JSON の手動シリアル化と解析が不要になり、IdP が追加情報を返すことができるようになります。

この機能は、FedCM デモで試すことができます。また、更新された ID アサーション エンドポイント レスポンスの構造に関する最新情報については、ID プロバイダ側で FedCM を実装するガイドを参照してください。

クライアント メタデータを検証する

ユーザーのプライバシーを保護するため、FedCM では IdP エンドポイントの検証を強化しています。この変更により、IdP がパス パラメータとして渡された一意の ID に RP を照合することができなくなります

FedCM 構成client_metadata エンドポイントを使用する場合は、.well-known/web-identity ファイルに accounts_endpointlogin_url を含める必要があります。Chrome 145 以降では、ブラウザは既知のファイルaccounts_endpoint パラメータを適用します。

{
  "accounts_endpoint": "/example-accounts",
  "login_url": "/example-login"
}

詳しくは、FedCM 実装ガイドをご覧ください。

API の整合性とエラー処理の更新

Chrome 143 では、ブラウザ間の FedCM API の明確さと一貫性を改善し、ウェブ エコシステムのフィードバックに沿って 2 つの変更が導入されます。

nonce パラメータを再配置する

バージョン 145 以降、Chrome ではトップレベルの nonce パラメータのサポートが終了します。navigator.credentials.get() 呼び出しの params オブジェクト内で nonce パラメータを渡す必要があります。

const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      // Don't pass nonce as a top-level parameter here
      configURL: "/fedcm.json",
      clientId: "123",
      params: {
     // Place nonce within the params object    
        nonce: "a-random-nonce"
      }
    }]
  }
});

サーバーサイド ロジックが ID アサーション エンドポイントparams オブジェクト内の nonce を想定していることを確認します。

IdentityCredentialError.codeIdentityCredentialError.error に変更

組み込みの DOMException.code プロパティとの名前の競合を避けるため、IdentityCredentialError.code の名前が IdentityCredentialError.error に変更されました。この変更は Chrome 145 から適用されます。

try {
  // FedCM API call
} catch (e) {
   // Renamed IdentityCredentialError.code to IdentityCredentialError.error:    
   console.log(e.error);
}

移行期間(Chrome 143 と 144)の下位互換性を確保するには、エラー処理ロジックで code プロパティと error プロパティの両方を確認します。これにより、ユーザーが新しいバージョンの Chrome に更新している間も、ソリューションが古いブラウザで動作します。

 // In older browsers, the property might still be named 'code'
 // during the transition period
  const errorCode = e.error ?? e.code;
  if (errorCode) {
    // Handle specific error types
  } else {
    console.error("An unknown error occurred", e);
  }

詳しくは、FedCM ドキュメントのエラー レスポンスを返すをご覧ください。

フィードバックをお寄せください

FedCM の開発と改善を進めるうえで、皆様からのご意見は貴重な情報源となります。フィードバックがある場合や問題が発生した場合は:

その他の情報