【クレデンシャルマネジメントエーピーアイ】

Credential Management API とは?

最終更新:
💡 認証情報を扱う窓口。ログインの検証は別

Webサイトがブラウザの認証情報管理と連携するためのAPI。navigator.credentialsで認証情報を要求・作成・保存できますが、種類やブラウザごとに対応と手順が異なり、認証の検証は別に必要です。

📌 このページのポイント
認証情報の取得とログインの検証Webサイト認証情報を要求navigator.credentialsブラウザーの管理選択・対応に応じた結果get()結果認証のリクエストを送るサイトのサーバーで検証取得しただけではログイン未完了WebAuthnでは署名した応答などを検証パスキーの秘密鍵をサイトへ渡さない種類ごとに作成・保存の手順も異なる
要求・結果・サーバーへの送信の流れです。安全なコンテキストや対応を確認し、未対応・取り消し・失敗時のログイン手段も用意します。
ひよこ ひよこ
Credential Management APIって何?
ペンギン先生 ペンギン先生
サイトがブラウザの認証情報管理と連携する窓口だよ。navigator.credentials.get()で必要な認証情報を要求するなどの操作ができる。取得できない場合や利用者が取り消す場合もあるんだ。
ひよこ ひよこ
get()を呼べばログイン完了?
ペンギン先生 ペンギン先生
違うよ。パスワード方式なら取得した情報をサーバーに送り、サーバーが検証する。WebAuthnでは署名した応答などを受け取り、登録済みの公開鍵やチャレンジなどをサーバーで検証するんだ。
ひよこ ひよこ
パスキーもパスワードとして保存する?
ペンギン先生 ペンギン先生
パスキーはWebAuthnのPublicKeyCredentialを使う。サイトが秘密鍵を取得する仕組みではないよ。パスワード情報の保存を頼むstore()と、公開鍵の認証情報を作るcreate()は、同じ手順だと思わないでね。
ひよこ ひよこ
Googleなどのログインもこれだけでできる?
ペンギン先生 ペンギン先生
FederatedCredentialは連携先の情報を扱う仕組みだけど、呼ぶだけで認証が完了するわけではない。現在の連携にはFedCMもあり、提供する認証サービス側の対応も必要だよ。種類と実装、対象ブラウザを確認するんだ。
ひよこ ひよこ
安全性や対応はどう考える?
ペンギン先生 ペンギン先生
通常の公開サイトではHTTPSなどの安全なコンテキストが必要。利用者の選択や認証情報の利用範囲にも制限があるけど、それだけでサイト全体が安全になるわけではない。機能検出をして、取り消し・未対応・失敗時の通常ログインも用意しよう。
もっと詳しく知りたい人へ

通常のフォームでは正しくパスワードを保存できない?

通常のフォームにもautocompleteのusernameやcurrent-passwordなどの指定があり、ブラウザの入力支援と連携できます。APIは明示的に管理と連携する選択肢で、通常フォームが常に推測だけに頼るわけではありません。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Credential Management API」って出てきたら「ブラウザーで認証情報を扱う共通の窓口」と思えばだいたいOK!
📖 おまけ:英語の意味
「Credential Management API」 = 認証情報管理API
💬 Credentialは認証に使う情報、Managementは管理。API自体が認証の正しさを保証したり、利用者を勝手にログインさせたりするものではありません。

参考資料

← 用語集にもどる