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 月)
- この仕様では「accounts list endpoints」の名前が「accounts endpoint」に更新されているため、ドキュメントもそれに合わせて調整されています。
- Button Mode API のオリジン トライアルが Chrome デスクトップ 125 で利用可能になりました。詳しくは、FedCM の更新: Button Mode API オリジン トライアル、CORS、SameSite をご覧ください。
- Chrome 125 以降、ID アサーション エンドポイントに CORS が適用されます。
- Chrome 125 以降では、明示的に
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 の自動再認証機能は、ユーザーが戻ってきた場合にのみトリガーされます。つまり、ユーザーは自動再認証をトリガーする前に、ブラウザ インスタンスごとに 1 回 FedCM を使用して RP にログインする必要があります。この条件は当初、トラッカーが ID プロバイダ(IdP)になりすまし、ブラウザがユーザーの知らないうちに、または同意を得ずに自動再認証を行うリスクを軽減するために導入されました。ただし、この設計では、RP のコンテキストでトラッカーがサードパーティ Cookie にアクセスできる場合、プライバシー上のメリットは保証されません。FedCM はサードパーティ Cookie を介して可能な機能のサブセットのみを提供するため、トラッカーがすでに RP コンテキストでサードパーティ Cookie にアクセスできる場合、FedCM にアクセスしても追加のプライバシー リスクは発生しません。
サードパーティ Cookie は合法的に使用されることがあり、条件を緩和することで UX が向上するため、この動作は Chrome 121 から変更されています。 ユーザーをリピーターとして扱う条件の制限を緩和することにしました。RP コンテキストで IdP がサードパーティ Cookie を利用できる場合、Chrome はapproved_clients
リストで指定されたユーザーのアカウント ステータスに関する IdP の要求を信頼し、必要に応じて自動再認証をトリガーします。サードパーティ Cookie は、ユーザー設定、エンタープライズ ポリシー、ヒューリスティック(Safari、Firefox、Chrome)、その他のウェブ プラットフォーム API(Storage Access API など)を通じて使用できます。今後、IdP がサードパーティ Cookie を失っても、ユーザーが FedCM UI で明示的に権限を付与していない場合([次の名前とメールアドレスで続行] ボタンをクリックするなど)、そのユーザーは引き続き新しいユーザーとして扱われます。
デベロッパー様によるご対応は必要ございません。IdP にサードパーティ Cookie へのアクセスがあり、ユーザーが過去に RP にアカウントを作成したと主張している場合は、この変更により自動再認証フローがさらにトリガーされる可能性があります。
- FedCM の自動再認証機能は、ユーザーが戻ってきた場合にのみトリガーされます。つまり、ユーザーは自動再認証をトリガーする前に、ブラウザ インスタンスごとに 1 回 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 のオリジン トライアルを Chrome 117 から Android で利用できるようになりました。詳しくは、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 サポートが利用可能になりました。埋め込みのクロスオリジン iframe で FedCM API を許可するには、Permissions-Policy
identity-credentials-get
を指定する必要があります。クロスオリジンの iframe の例をご確認ください。 - 新しい Chrome フラグ
chrome://flags/#fedcm-without-third-party-cookies
を追加しました。このフラグを使用すると、サードパーティ Cookie をブロックして、Chrome で FedCM 機能をテストできます。詳しくは、FedCM のドキュメントをご覧ください。
Chrome 108(2022 年 10 月)
- 「トップレベル マニフェスト」は、このドキュメントでは「well-known file」という名称に変更されました。 実装の変更は必要ありません。
- ドキュメントの「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
の使用に関する注意事項を追加しました。