連合資格情報管理 (FedCM) API
利用可能性は限定的
この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。
Want more browser support for this feature? Tell us why.
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
連合資格情報管理 API(または FedCM API)は、アイデンティティプロバイダー (IdP) に標準的な仕組みを提供し、サードパーティクッキーやリダイレクトを必要とせずに、プライバシーを保護した形でウェブ上でアカウント連携サービスを提供するための標準的な仕組みを提供します。これには、ウェブサイトへのログインやサインアップなどの操作において、連合認証を利用することができる JavaScript API が含まれています。
FedCM の概要
アイデンティティ連合とは、e コマースサイトやソーシャルネットワーキングサイトなど、ユーザーの登録やログインを要求されるウェブサイト(認証依頼者、または RP とも呼ばれる)が、Google、Facebook/Meta、GitHub などの信頼できるサードパーティーアイデンティティプロバイダー (IdP) に対して、ユーザー認証を委任する仕組みのことです。
RP は IdP と連携することができるため、ユーザーは IdP に登録済みのアカウントを使用してログインすることができます。少数の専用 IdP を介したアイデンティティ連合は、それぞれのサイトが別個のユーザー名とパスワードを用いて独自のログイン機能を管理する場合と比較して、セキュリティ、消費者の信頼、使い勝手の面でウェブ認証を改善しました。
問題は、従来のアイデンティティ連合が <iframe> やリダイレクト、サードパーティクッキーに頼っている点にあります。これらはサードパーティによるトラッキングにも利用されています。ブラウザーはユーザーのプライバシー保護のため、これらの機能の使用を制限していますが、その副作用として、トラッキングを目的としない正当な用途(アイデンティティ連合を含む)の実装が難しくなっているのです。
これは、連合ログイン全般に影響を与えるほか、もっと具体的な ID 連合の用途にも影響を及ぼします。
- OIDC フロントチャネルログアウト: このフローでは、IDP が RP の
<iframe>を複数埋め込む必要があり、これらは RP のクッキーに依存しています。 - ソーシャルウィジェット: ソーシャルウィジェットを提供するには、RP の最上位オリジンから IDP のサードパーティクッキーが指定されている必要があります。
- パーソナライズされたボタン: RP オリジン内の
<button>にパーソナライズされたログイン情報を表示させる機能は、サードパーティクッキーが要求される IdP の<iframe>として実装されています。 - 最上位ナビゲーションやポップアップを伴わないセッションの更新。
FedCM は、この問題を解決することを目的としており、ウェブ上での連合 ID フローのための専用の仕組みを提供するとともに、対応ブラウザーが R P上で特別な UI の要素を表示することができることで、ユーザーがログインに使用する IdP アカウントを選択することができます。
FedCM API を使用する方法には 2 つの部分があり、これについては下記リンク先のガイドで網羅されています。
- FedCM との IdP 連携 — RP が IdP と連携するために、IdP が提供する必要があるもの。
- RP の連合ログイン — RPが、ユーザーのIdPアカウントを使用してログインを行うために使用する FedCM 機能です。FedCM ログインリクエストは、
navigator.credentials.get()メソッドを使用して開始されます。
メモ: Google ログインは、すでに FedCM に対応している IdP の一例です。FedCM への移行 では、Google ログインを現在使用するアプリを連合ログインに移行したい RP 向けの手順を提供しています。
権限ポリシー統合と <iframe> の対応
identity-credentials-get の権限ポリシーを使用することで、FedCM の使用権限を制御することができます。
仕様上、以下のメソッドの使用が許可されています。
開発者は、allow 属性を使用すれば、<iframe> が FedCM を使用することを明示的に許可することができます。
<iframe src="3rd-party.example" allow="identity-credentials-get"></iframe>
<iframe> 内で FedCM を利用できることで、次のような用途が実現できます。
- 大規模なサイトでは、サードパーティーのログインスクリプトが最上位のフレームを制御することを望まないでしょう。その代わりに、そのスクリプトを追加し、
<iframe>内から FedCM を呼び出すことを望むでしょう。 - 一部の
<iframe>では、それ自体で連合認証が要求されることがあります。
インターフェイス
IdentityCredential-
連合認証が成功した際に生成されるユーザー ID 資格情報を表します。
identityオプションを含むnavigator.credentials.get()の呼び出しが成功すると、IdentityCredentialインスタンスが履行されます。 IdentityCredentialError-
ユーザーが連合資格情報を使用した認証を要求した後、ユーザーエージェントが ID アサーションを受信しなかったことを示す認証エラーを表します。
IdentityProvider-
IdP を表し、関連する情報や機能へのアクセスを提供します。
-
IdP のログイン機能を定義します。これには、IdP のログインステータスを更新するための
Navigator.login.setStatus()メソッドが含まれています。
他のインターフェイスへの拡張
CredentialsContainer.get(), theidentityoption.-
identityは、認証依頼者 (RP) のウェブサイトがユーザーのログインに使用できる、連合 IdP の詳細情報を含むオブジェクトです。これに対してget()を呼び出すと、ユーザーが IdP を通じて RP にログインするためのリクエストが発生します。 -
ブラウザーの
NavigatorLoginオブジェクトへのアクセスを提供します。
HTTP ヘッダー
Set-Login-
HTTP 経由でログインステータスの更新を行うための HTTP メカニズムを指定します。
例
コード例については、次を参照してください。
- Implement an identity solution with FedCM on the Identity Provider side - developer.chrome.com (2025)
- Implement an identity solution with FedCM on the Relying Party side - developer.chrome.com (2025)
仕様書
| 仕様書 |
|---|
| Federated Credential Management API> # browser-api-identity-credential-interface> |