自動再認証の新しいオリジン トライアルなど、FedCM のアップデートがいくつか導入されました。
Federated Credential Management API(FedCM)は、プライバシー保護 ID 連携のためのウェブ API です。ID 連携では、RP(リライング パーティ)は IdP(ID プロバイダ)を使用して、新しいユーザー名とパスワードを必要とせずにユーザーにアカウントを提供します。
FedCM は専用 API です。これにより、ブラウザは RP と IdP が情報を交換するコンテキストを理解し、共有される情報と権限レベルをユーザーに通知して、意図しない不正使用を防ぐことができます。
更新
Chrome の FedCM 実装が一部更新されました。
- ID アサーション エンドポイントの場合、IdP は(
Referer
ヘッダーではなく)Origin
ヘッダーをチェックして、その値がクライアント ID の送信元と一致しているかどうかを確認する必要があります。 - 新しい Chrome フラグ
chrome://flags/#fedcm-without-third-party-cookies
を追加しました。このフラグを使用すると、サードパーティ Cookie をブロックして Chrome で FedCM 機能をテストできます。
API の過去のすべての更新については、Federated Credential Management API の更新をご覧ください。
最新バージョンの FedCM には新しい自動再認証機能が含まれています。この機能により、ユーザーが FedCM を使用した初回認証の後に戻ってきたときに、ユーザーを自動的に再認証できます。Chrome 112 以降、オリジン トライアルとして自動再認証を利用できます。
自動再認証
現在、ユーザーが FedCM を介して IdP を使用して RP に連携アカウントを作成した後、次回ウェブサイトにアクセスするときに、ユーザー インターフェースで同じ手順を実施する必要があります。つまり、ログインフローを進めるには、明示的な確認と再認証を行う必要があります。FedCM の主な目標の 1 つは隠れたトラッキングを防ぐことであるため、このユーザー エクスペリエンス(UX)は、ユーザーがフェデレーション アカウントを作成する前は理にかなっていますが、ユーザーがフェデレーション アカウントを作成した後は不要で面倒なものになります。ユーザーが RP と IdP 間の通信を許可した後は、すでに確認済みであることに対して別の明示的なユーザー確認を強制しても、プライバシーやセキュリティ上のメリットはありません。そのため Chrome では、RP がリピーター向けに選択できる、より合理的な UX を導入しています。
FedCM 自動再認証(略して「自動再認証」)は、ユーザーが FedCM を使用した初回認証の後で戻ってきたときに、(RP のオプトイン時に)ユーザーを自動的に再認証します。ここでの「初回認証」とは、ユーザーがアカウントを作成するか、同じブラウザ インスタンスで FedCM のログイン ダイアログで [Continue as...] ボタンをタップして RP のウェブサイトにログインすることを意味します。
RP は、autoReauthn: true
を指定して navigator.credentials.get()
を呼び出すことで、自動再認証をリクエストできます。
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/fedcm.json",
clientId: "1234",
}],
// NOTE: We are exploring different API options to expose this
// functionality here:
// https://github.com/fedidcg/FedCM/issues/429#issuecomment-1426358523
// You should expect that, as a result of the origin trial, we'll
// learn more from developers and browser vendors what works best here.
autoReauthn: true, // default to false
},
});
この呼び出しでは、次の条件で自動再認証が行われます。
- FedCM を使用できる。たとえば、ユーザーがグローバルでも RP でも FedCM を無効にしていない。
- ユーザーは 1 つの FedCM アカウントのみを使用して、このブラウザでウェブサイトにログインしました。
- ユーザーはそのアカウントで IdP にログインしています。
- 自動再認証が過去 10 分以内に行われていません。
上記の条件が満たされると、FedCM navigator.credentials.get()
が呼び出されるとすぐにユーザーの自動再認証の試行が開始されます。
試してみる
Chrome 112 以降で Chrome フラグ chrome://flags#fedcm-auto-re-authn
を有効にすると、FedCM の自動再認証をローカルで試すことができます。
テスト目的で、ブラウザデータを削除して 10 分間の保留期間をリセットできます。
chrome://history
に移動します。- 検索履歴ボックスに、RP の送信元を入力します。
- その他アイコン ⋮ をクリックして、[履歴から削除] を選択します。
- Chrome を再起動します。
オリジン トライアルに参加する
Chrome 112 ~ Chrome 114 で利用可能なサードパーティ オリジン トライアルに参加することで、ウェブサイトでこの機能を有効にすることもできます。
オリジン トライアルでは、新しい機能を試し、そのユーザビリティ、実用性、有効性をウェブ標準コミュニティにフィードバックできます。詳しくは、ウェブ デベロッパー向けのオリジン トライアル ガイドをご覧ください。 このオリジン トライアルまたは別のオリジン トライアルに登録するには、登録ページにアクセスしてください。
サードパーティのオリジン トライアルに登録し、サードパーティでこの機能を有効にするには:
- オリジン トライアルの登録ページに移動します。
- [登録] ボタンをクリックし、フォームに記入してトークンをリクエストします。
- 配信元を「ウェブオリジン」と入力します。
- 他の生成元の JavaScript でトークンを挿入するには、[サードパーティ マッチング] をオンにします。
- [送信] をクリックします。
- 発行されたトークンをサードパーティに埋め込みます。
トークンをサードパーティに埋め込むには、登録されているウェブサイトのオリジンから提供される JavaScript ライブラリまたは SDK に、次のコードを追加します。
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);
TOKEN_GOES_HERE
は、独自のトークンに置き換えます。
交流とフィードバックの共有
テスト中にフィードバックがある場合や問題が発生した場合は、crbug.com の [Blink] > [Identity] > [FedCM] コンポーネントから共有できます。