Chrome 128 以降では、Multi-IdP API のオリジン トライアルがパソコンで開始され、Button Mode API と Continuation bundle のオリジン トライアルが Android で開始されます。Multi IdP 機能を使用すると、デベロッパーは 1 回の get() 呼び出しで、サポートされている複数の ID プロバイダの配列を指定できます。Button Mode API に新しい UI が追加されました。Button Mode API を使用すると、ユーザーが API 呼び出し時にアクティブな IdP セッションを持っていない場合でも、ID プロバイダは FedCM API を使用できます。継続バンドルは、IdP 提供の権限ダイアログを含む OAuth 認証フローのようなエクスペリエンスを可能にする継続 API とパラメータ API で構成されています。このバンドルには、Fields API、複数の configURL、カスタム アカウント ラベルなどの変更も含まれています。
オリジン トライアル: Multi IdP API
この機能により、ユーザーはサポートされている IdP のセットからアカウントを選択できます。RP は、ログイン率と登録率の向上というメリットを得られます。複数の IdP でログインしている場合は、いずれかの IdP を使用して RP にログインするよう求められます。
IdP は、ユーザーの既存のアカウントと関連するタイムスタンプに基づいて優先順位が付けられます。
- ユーザーが特定の IdP で RP にログインしたことがある場合(「リピーター アカウント」を持っている場合)、それらの IdP が最初に表示されます。
- 返されたアカウント内で、IdP は最新の使用タイムスタンプで並べ替えられ、最新の使用タイムスタンプを持つ IdP がリストの先頭に表示されます。場合によっては、Chrome に再訪アカウントのタイムスタンプ データがないことがあります。これは、FedCM にタイムスタンプ ログが実装される前にユーザーがログインしたことが原因である可能性があります。これらのアカウントは、タイムスタンプのあるアカウントの下に表示されます。
- ユーザーが IdP を使用して戻るアカウントを持っていない場合、RP が提供した順序が尊重されます。
デベロッパーがリクエストし、戻りアカウントが 1 つだけの場合、FedCM は自動再認証を許可します。Multi IdP の場合、複数の IdP に戻りアカウントが存在すると、ユーザーは自動的に再認証されません。自動再認証には、戻りアカウントが必須です。ブラウザがアカウントを明示的に認識している場合にのみ、ブラウザは自動再認証を開始します。これは、ユーザーがこの RP でこの特定のアカウントを使用して FedCM を以前に使用したことがあることを意味します。
ユーザーの ログイン ステータスが IdP でログアウトに設定されている場合、FedCM を呼び出してもその IdP のアカウントは取得されません。同様に、利用可能なすべての IdP でユーザーのステータスがログアウトになっている場合、ウィジェット モードでは FedCM ログイン プロンプトは自動的に表示されません。
IdP のブラウザに保存されたログイン ステータスがログイン済みであるにもかかわらず、フェッチ リクエストでこの IdP のアカウントが返されなかった場合(たとえば、ユーザー セッションが期限切れになったが、ブラウザでログイン ステータスがまだ更新されていない場合)、IdP の不一致 UI が表示され、不一致の IdP でログインするようユーザーに促します。
ログイン ステータスの詳細については、ドキュメントをご覧ください。実装の詳細については、デベロッパー ガイドをご覧ください。
オリジン トライアル: Multi IdP API
Multi IdP API は、デモ RP のユーザーとして、または Chrome 128 以降を使用するデベロッパーとして試すことができます。
ユーザーとして試してみる
ユーザーとして実際に試してみましょう。次のことを確認してください。
- Chrome は、ページ
chrome://settings/content/federatedIdentityApiでサードパーティのログイン メッセージをブロックするように設定されていません。 - 複数のデモ IdP にログインしています。デモページの指示に沿って操作します。
オリジン トライアルに登録されていないオリジンのサイトで Multi-IdP を試すには、chrome://flags/#fedcm-multi-idp で機能フラグを有効にする必要があります。
デベロッパーとして試す
ログイン プロバイダが RP に Javascript SDK を埋め込んでいる場合(推奨)、複数の IdP を有効にする navigator.credentials.get() 呼び出しをプロバイダが実装できるため、RP デベロッパーはコードを変更する必要がありません。それ以外の場合、RP は FedCM API を自分で呼び出す必要があります。
RP でマルチ IdP をテストするには、サポートされているプロバイダの配列を次のように指定します。
try {
const cred = await navigator.credentials.get({
identity: {
providers: [
{
configUrl: "https://idp1.example/foo.json", // first IdP
clientId: "123",
},
{
configUrl: "https://idp2.example/bar.json", // second IdP
clientId: "456",
}
]
}
});
const token = cred.token;
const currentConfigFileUrl = cred.configURL;
if (cred.configURL === 'https://idp1.example/foo.json') {
// handle the token for idp1.example
} else if (cred.configURL === 'https://idp2.example/bar.json') {
// handle the token for idp2.example
}
} catch (error) {
console.error("Error during credential retrieval:", error);
}
結果のオブジェクト内の configURL 属性には、ユーザーが認証した IdP の構成ファイルの URL が格納されます。IdP によって token の処理方法が異なるため、RP は token の処理方法を決定できます。
オリジン トライアルに参加する
オリジン トライアルでは、新機能を試して、その使いやすさ、実用性、有効性についてフィードバックを送信できます。詳しくは、オリジン トライアルを使ってみるをご覧ください。
Multi IdP 機能は、Chrome 128 以降で開始されるオリジン トライアルに登録することで試すことができます。
Multi IdP を試すには、RP はオリジンを登録して、ファーストパーティ オリジン トライアルを実行できます。IdP がサードパーティのオリジン トライアルに登録し、Javascript SDK を使用するすべての RP で Multi IdP 機能を利用できるようにすることもできます。
オリジン トライアルに参加する手順は次のとおりです。
- Multi IdP API オリジン トライアルの登録ページに移動します。2. [登録] ボタンをクリックし、フォームに記入してトークンをリクエストします。
- ファーストパーティ オリジン トライアルに登録するには、RP のオリジンを [ウェブ オリジン] フィールドに入力します。サードパーティのオリジン トライアルの場合は、IdP の JavaScript SDK のオリジンを入力し、[サードパーティのマッチング] チェックボックスをオンにします。
- [送信] をクリックします。
- RP ページで発行されたトークンを提供します。
- ファーストパーティ オリジン トライアルの参加者向け:
-
<head>のメタタグとして:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">- HTTP ヘッダーとして:Origin-Trial: TOKEN_GOES_HERE - サードパーティの試験運用参加者: トークンをプログラムで提供する。
- ファーストパーティ オリジン トライアルの参加者向け:
-
Android 版 Chrome のボタンモード API
Chrome バージョン 128 以降、Button Mode API のオリジン トライアルが Android 版 Chrome で開始されます。これは、デスクトップ版での最初のトライアルに続くものです。ボタンモード API を使用すると、ユーザーが API 呼び出し時に IdP からログアウトしていても、ID プロバイダは FedCM API を使用できます。ログイン フローはユーザーの操作によって開始されるため、ユーザーの意図をより適切に反映できます。
Chrome 128 では、IdP が RP の公式ロゴアイコンをクライアント メタデータ エンドポイント レスポンスに直接含めることができる新機能が導入されています。これにより、ボタンモードのモバイル デバイスの UI が強化されます。
構成ファイル内の IdP ブランディングと同様に、RP のアイコンは IdP 側で構成し、次のように client_metadata_endpoint レスポンスで返すことができます。
"privacy_policy_url": "https://rp.example/privacy_policy.html",
"terms_of_service_url": "https://rp.example/terms_of_service.html",
"icons": [{
"url": "https://idp.example/rp-icon.ico",
"size": 40
}]
アイコンのサポートについて詳しくは、デベロッパー向けドキュメントをご覧ください。
ユーザーがまだログインしていない場合、FedCM は、Chrome カスタムタブ(CCT)を通じて IdP が提供する login_url を使用して IdP にログインするようユーザーに促します。
ユーザーが再認証に復元アカウントを使用している場合、開示 UI は表示されません。
オリジン トライアルに登録するには、デスクトップ版のボタンモード API の手順をご覧ください。パソコンでオリジン トライアルにすでに登録している場合は、Chrome 128 以降、Android 版 Chrome でこの機能が自動的に利用可能になります。
Android 版 Chrome の Continuation API バンドル
Chrome バージョン 128 以降、Continuation API バンドルは、パソコンでの最初のトライアルに続いて、オリジン トライアルの一環として Android 版 Chrome で利用できるようになります。このバンドルは、Continuation API、Parameters API、Fields API、複数の configURL、カスタム アカウント ラベルなど、複数の FedCM 機能で構成されています。
Continuation API を使用すると、複数ステップのログインフローを有効にできます。Parameters API を使用すると、IdP に追加のパラメータを渡すことができます。Fields API を使用すると、RP は FedCM ダイアログの開示 UI で特定のアカウント属性をリクエストできます。また、複数の configURL は IdP の複数の構成ファイルをサポートし、カスタム アカウント ラベルを使用すると、RP がこれらのラベルでアカウントをフィルタできるように、IdP がアカウントにアノテーションを付けることができます。
Continuation API バンドルについて詳しくは、デスクトップでの Continuation API バンドルに関するブログ投稿をご覧ください。オリジン トライアルに登録するには、こちらの手順に沿って操作してください。パソコンでオリジン トライアルに登録済みの場合は、Chrome 128 以降、Android 版 Chrome で自動的に機能が利用可能になります。
意見交換とフィードバックの提供
フィードバックがある場合や問題が発生した場合は、問題をご提出ください。正規の FedCM デベロッパー ガイドと、更新ログのページは、今後も最新の状態に保たれます。