FedCM の最新情報: 自動再認証のオリジン トライアル

自動再認証の新しいオリジン トライアルなど、FedCM のいくつかの更新を導入しました。

Federated Credentials Management API(FedCM)は、プライバシーを保護した ID 連携のウェブ API です。ID 連携では、RP(リレーリング パーティ)は IdP(ID プロバイダ)に依存して、新しいユーザー名とパスワードを要求せずにユーザーにアカウントを提供します。

FedCM は、RP と IdP が情報を交換するコンテキストをブラウザが理解し、共有される情報と権限レベルをユーザーに通知し、意図しない不正使用を防ぐための専用 API です。

アップデート

Chrome の FedCM 実装にはいくつかの更新があります。

API の過去のすべての更新については、Federated Credentials Management API の更新をご覧ください。

FedCM の最新バージョンには、新しい自動再認証機能が含まれています。この機能により、FedCM を使用して初回認証後にユーザーが戻ってきたときに、ユーザーを自動的に再認証できます。自動再認証は、Chrome 112 以降でオリジン トライアルとして利用できます。

自動再認証

現在、ユーザーが FedCM を介して IdP で RP に連携アカウントを作成した後、次回ウェブサイトにアクセスする際には、ユーザー インターフェースで同じ手順を行う必要があります。つまり、ログインフローを続行するには、明示的に確認して再認証する必要があります。FedCM の主な目標の 1 つは、秘密裏なトラッキングを防止することであるため、このユーザー エクスペリエンス(UX)は、ユーザーが連携アカウントを作成する前に行うことは理にかなっています。しかし、ユーザーが一度この手順を完了した後は、不要で煩雑になります。ユーザーが RP と IdP 間の通信を許可する権限を付与した後、ユーザーがすでに承認済みの事項について、ユーザーに再度明示的に確認を求めても、プライバシーやセキュリティ上のメリットはありません。そのため、Chrome では、RP がリピーター向けに選択できる、より合理化された UX を導入します。

FedCM の自動再認証(略称「auto-reauthn」)は、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 を使用できます。たとえば、ユーザーが FedCM をグローバルまたは RP に対して無効にしていない場合です。
  • ユーザーがこのブラウザでウェブサイトにログインするために使用した FedCM アカウントは 1 つだけである。
  • ユーザーがそのアカウントで IdP にログインしている。
  • 自動再認証が過去 10 分以内に行われていない。

上記の条件が満たされると、FedCM navigator.credentials.get() が呼び出されるとすぐに、ユーザーの自動再認証が試行されます。

ユーザーが FedCM を使用して RP に対して自動再認証を行っている

試してみる

Chrome 112 以降で Chrome フラグ chrome://flags#fedcm-auto-re-authn を有効にすると、FedCM の自動再認証をローカルで試すことができます。

テスト目的で、ブラウザのデータを削除することで、10 分間の静音時間をリセットできます。

  1. chrome://history に移動します。
  2. 検索履歴ボックスに、RP の送信元を入力します。
  3. その他アイコン ⋮ をクリックし、[履歴から削除] を選択します。
  4. Chrome を再起動します。

オリジン トライアルに参加する

Chrome 112 ~ 114 で利用可能なサードパーティ オリジン トライアルに参加して、ウェブサイトでこの機能を有効にすることもできます。

オリジン トライアルでは、新しい機能を試し、そのユーザビリティ、実用性、有効性をウェブ標準コミュニティにフィードバックできます。詳しくは、ウェブ デベロッパー向けのオリジン トライアル ガイドをご覧ください。 このオリジン トライアルまたは別のオリジン トライアルに登録するには、登録ページにアクセスしてください。

サードパーティのオリジン 機能を有効化する サードパーティ製品では

  1. オリジン トライアルの登録ページに移動します。
  2. [Register] ボタンをクリックし、フォームに記入してトークンをリクエストします。
  3. 配信元を [ウェブオリジン] に入力します。
  4. 他のオリジンで JavaScript を使用してトークンを挿入する場合は、[サードパーティ マッチング] チェックボックスをオンにします。
  5. [送信] をクリックします。
  6. 発行されたトークンをサードパーティに埋め込みます。

サードパーティにトークンを埋め込むには、次のコードを JavaScript に追加します。 登録されたウェブサイトのオリジンから提供されるライブラリまたは SDK。

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

TOKEN_GOES_HERE は、独自のトークンに置き換えます。

意見交換とフィードバックの提供

テスト中にフィードバックや問題が発生した場合は、crbug.comBlink> Identity> FedCM コンポーネントで共有してください。

写真撮影: Alex PerzUnsplash