Federated Credential Management API は Chrome 108 でリリースされますが、進化し続けると予想されます。互換性を破る変更の予定はありません。
アップデートの対象者は誰ですか?
この更新は、次のような方を対象としています。
- Federated Credential Management API を使用する IdP である。
- IdP または RP で、ユースケースに合わせて API を拡張することに関心がある。たとえば、FedID CG リポジトリに関するディスカッションを観察または参加していて、API に加えられた変更を理解したい。
- ブラウザ ベンダーとして、API の実装ステータスを把握したいと考えています。
この API を初めて使用する場合や、まだ試していない場合は、Federated Credential Management API の概要をご覧ください。
変更履歴
FedCM API の変更に関する最新情報については、Google のブログまたはニュースレターをご覧ください。
Chrome 125(2024 年 4 月)
- 仕様で「アカウント リスト エンドポイント」の名前を「アカウント エンドポイント」に更新したため、ドキュメントはそれに合わせて調整されています。
- Button Mode API のオリジン トライアルは Chrome デスクトップ 125 で利用できます。詳しくは、FedCM の更新: ボタンモード API オリジン トライアル、CORS、SameSite をご覧ください。
- Chrome 125 以降では、CORS は ID アサーション エンドポイントに適用されます。
- Chrome 125 以降では、Chrome は明示的に
SameSite=None
とマークされている Cookie のみを ID アサーション エンドポイントとアカウント エンドポイントに送信します。
Chrome 123(2024 年 2 月)
- Domain Hint API のサポートを追加しました。Domain Hint API を使用すると、RP は FedCM API 呼び出しで
domainHint
プロパティを指定して、ユーザーに一致するアカウントのみを表示できます。
Chrome 122(2024 年 1 月)
- Disconnect API のサポートを追加しました。Disconnect API を使用すると、RP はサードパーティ Cookie に依存せずに IdP のアカウントからユーザーの接続を解除できます。
- RP と IdP が同じサイトである場合、
/.well-known/web-identity
の確認がスキップされるようになりました。 - サブリソースで同じサイトのログイン ステータスを設定できるようになりました。
Chrome 121(2023 年 12 月)
- FedCM 自動再認証をトリガーする緩和条件:
- FedCM の自動再認証機能は、ユーザーが戻った場合にのみトリガーされます。つまり、自動再認証がトリガーされる前に、ユーザーは各ブラウザ インスタンスで FedCM を使用して RP に一度ログインする必要があります。この条件は当初、トラッカーが ID プロバイダ(IdP)になりすまし、ブラウザをだまして、ユーザーに気づかれずに同意せずに自動再認証させてしまうリスクを軽減するために導入されました。ただし、この設計では、トラッカーが RP のコンテキストでサードパーティ Cookie にアクセスできる場合、プライバシー保護のメリットを保証できません。FedCM はサードパーティ Cookie を介して可能な機能のサブセットのみを提供するため、トラッカーが RP コンテキストでサードパーティ Cookie にすでにアクセスできる場合、FedCM へのアクセスによって追加のプライバシー リスクは発生しません。
サードパーティ Cookie の正当な使用があり、条件を緩和することで UX が向上するため、この動作は Chrome 121 から変更されます。Google は、ユーザーを戻りとして扱う条件の制限を緩和することにしました。RP コンテキストで IdP がサードパーティ Cookie を利用できる場合、Chrome はapproved_clients
リストで指定されたユーザー アカウント ステータスに関する IdP のクレームを信頼し、該当する場合は自動再認証をトリガーします。サードパーティ Cookie は、ユーザー設定、エンタープライズ ポリシー、ヒューリスティック(Safari、Firefox、Chrome)、その他のウェブ プラットフォーム API(Storage Access API など)を介して利用できます。今後 IdP がサードパーティ Cookie にアクセスできなくなった場合、ユーザーが FedCM UI で明示的に権限を付与していない場合(たとえば、[Continue as] ボタンをクリックするなど)は、新規ユーザーとして処理されます。
デベロッパー様の方で必要な作業はありません。IdP がサードパーティ Cookie へのアクセス権を持ち、ユーザーが過去に RP にアカウントを作成したと主張している場合は、この変更により自動再認証フローがトリガーされる可能性があります。
- FedCM の自動再認証機能は、ユーザーが戻った場合にのみトリガーされます。つまり、自動再認証がトリガーされる前に、ユーザーは各ブラウザ インスタンスで FedCM を使用して RP に一度ログインする必要があります。この条件は当初、トラッカーが ID プロバイダ(IdP)になりすまし、ブラウザをだまして、ユーザーに気づかれずに同意せずに自動再認証させてしまうリスクを軽減するために導入されました。ただし、この設計では、トラッカーが RP のコンテキストでサードパーティ Cookie にアクセスできる場合、プライバシー保護のメリットを保証できません。FedCM はサードパーティ Cookie を介して可能な機能のサブセットのみを提供するため、トラッカーが RP コンテキストでサードパーティ Cookie にすでにアクセスできる場合、FedCM へのアクセスによって追加のプライバシー リスクは発生しません。
Chrome 120(2023 年 11 月)
- Chrome 120 では、次の 3 つの機能のサポートが追加されました。
- Login Status API: Login Status API は、ウェブサイト(特に IdP)がブラウザにユーザーのログイン ステータスを通知するメカニズムです。この API を使用すると、ブラウザで IdP への不要なリクエストを減らし、タイミング攻撃の可能性を軽減できます。Login Status API は FedCM の要件です。この変更により、サードパーティ Cookie がブロックされている場合、FedCM を有効にするために
chrome://flags/#fedcm-without-third-party-cookies
フラグを使用する必要がなくなりました。 - Error API: Error API は、IdP から提供されたエラー情報をブラウザ UI に表示して、ユーザーに通知します。
- Auto-Selected Flag API: Auto-Selected Flag API は、自動再認証が行われるか、明示的なメディエーションが発生するたびに、IdP と RP の両方で [Continue as] ボタンをタップして、明示的なユーザー権限が取得されたかどうかを共有します。共有は、IdP と RP の通信に対するユーザー権限が付与された後にのみ行われます。
- Login Status API: Login Status API は、ウェブサイト(特に IdP)がブラウザにユーザーのログイン ステータスを通知するメカニズムです。この API を使用すると、ブラウザで IdP への不要なリクエストを減らし、タイミング攻撃の可能性を軽減できます。Login Status API は FedCM の要件です。この変更により、サードパーティ Cookie がブロックされている場合、FedCM を有効にするために
Chrome 117(2023 年 9 月)
- Idp Sign-In Status API のオリジン トライアルは、Android で Chrome 117 から利用できます。詳しくは、FedCM の最新情報: IdP Sign-In Status API、ログインヒントなどをご覧ください。
Chrome 116(2023 年 8 月)
- Chrome 116 では、次の 3 つの機能のサポートが追加されました。
- Login Hint API: ログインに使用するユーザー アカウントを指定します。
- User Info API: リピーターの情報を取得して、ID プロバイダ(IdP)が iframe 内にパーソナライズされたログインボタンをレンダリングできるようにします。
- RP Context API: FedCM ダイアログの「ログイン」とは異なるタイトルを使用します。
- IdP Sign-In Status API のオリジン トライアルを利用できます。詳しくは、FedCM の最新情報: IdP Sign-In Status API、ログインヒントなどをご覧ください。
Chrome 115(2023 年 6 月)
- 自動再認証のサポートを追加しました。これにより、FedCM を使用した初期認証の後、ユーザーが戻ってきたときに自動的に再認証を行うことができます。これにより、ユーザー エクスペリエンスが向上し、最初の同意後の RP への再認証がより効率的になります。FedCM 自動再認証の詳細を確認する。
Chrome 110(2023 年 2 月)
- ID アサーション エンドポイントの場合、IdP は(
Referer
ヘッダーではなく)Origin
ヘッダーをチェックして、値がクライアント ID のオリジンと一致するかどうかを確認する必要があります。 - FedCM 向けのクロスオリジン iframe サポートが利用可能になりました。埋め込みでは、Permissions-Policy
identity-credentials-get
を指定して、埋め込まれたクロスオリジン iframe で FedCM API を許可する必要があります。クロスオリジン iframe の例をご確認ください。 - 新しい Chrome フラグ
chrome://flags/#fedcm-without-third-party-cookies
を追加しました。このフラグを使用すると、サードパーティ Cookie をブロックして、Chrome で FedCM 機能をテストできます。詳しくは、FedCM のドキュメントをご覧ください。
Chrome 108(2022 年 10 月)
- ドキュメントでは、「トップレベル マニフェスト」は「well-known ファイル」と呼ばれるようになりました。実装の変更は必要ありません。
- ドキュメントでの「IdP マニフェスト」の名称を「構成ファイル」に変更しました。実装を変更する必要はありません。
- 構成ファイル内の
id_token_endpoint
の名前はid_assertion_endpoint
に変更されます。 - IdP へのリクエストに、
Sec-FedCM-CSRF: ?1
ヘッダーの代わりにSec-Fetch-Dest: webidentity
ヘッダーが含まれるようになりました。
Chrome 105(2022 年 8 月)
- 重要なセキュリティ情報をドキュメントに追加しました。ID プロバイダ(IdP)は、
Referer
ヘッダーが ID トークン エンドポイントに事前に登録された RP の送信元と一致するかどうかを確認する必要があります。 - トップレベル マニフェストの名前が
/.well-known/fedcm.json
から/.well-known/web-identity
に変更され、provider_urls
で指定された URL にファイル名を含める必要があります。 FederatedCredential
インスタンスのlogin()
、logout()
、revoke()
の各メソッドは使用できなくなりました。- Federated Credential Management API で、
FederatedCredential
の代わりに新しいタイプIdentityCredential
が使用されるようになりました。これは特徴検出に使用できますが、それ以外の場合はほとんど認識できない変更です。 - ログイン機能を
navigator.credentials.get()
とFederatedCredential.prototype.login()
の組み合わせからnavigator.credentials.get()
に移行します。 - マニフェスト内の取り消しエンドポイントが無効になりました。
navigator.credentials.get()
呼び出しでは、federated
フィールドではなくidentity
フィールドを使用します。url
がconfigURL
に変更されました。navigator.credentials.get()
呼び出しのパスではなく、マニフェスト JSON ファイルの完全な URL にする必要があります。nonce
がnavigator.credentials.get()
のオプションのパラメータになりました。hint
はnavigator.credentials.get()
のオプションとして利用できなくなりました。
const credential = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/anything.json',
clientId: '********',
nonce: '******'
}]
}
});
const { token } = credential;
Chrome 104(2022 年 6 月)
- ID トークン エンドポイントに送信される
consent_acquired
パラメータがdisclosure_text_shown
になりました。値は変更されません。 - IdP マニフェストのブランド アイコンは SVG 画像のサポートを終了しましたが、RP のコンテンツ セキュリティ ポリシーで許可されなくなりました。
Chrome 103(2022 年 5 月)
- デスクトップ環境をサポートします。
- パソコンで RP ごとの設定をサポートします。
- クライアント メタデータ エンドポイントはオプションになりました。このエンドポイントでは、プライバシー ポリシーの URL も省略できます。
- ドキュメントに CSP
connect-src
の使用に関する注意事項を追加しました。