Skip to content

MS_WebAuthenticationAPIOld

nishi_74322014 edited this page Sep 1, 2026 · 1 revision

Web Authentication API(旧)

概要

旧情報 → 新情報

補足(本ページの位置づけ): 本ページは、W3C の Web Authentication が
勧告になる前(2016 年頃)の Edge の ms- プレフィックス実装を扱う。
現在の標準 API は navigator.credentials.create() /
navigator.credentials.get() であり、
本ページのメソッドはいずれも現存しない
当時どういう API だったかの記録として残す。

詳細

使用する (主な) 関数は 2 つ。

  • makeCredential() メソッド
  • getAssertion() メソッド

仕様

  • 現在はドラフト仕様に基づく ms-prefix 実装であるため、
    現在 (2016/05 時点) の Edge の実装では、明示的に下記を使用。

    • window.msCredentials.makeCredential
    • window.msCredentials.getAssertion
  • Polyfill
    webauthn.js という Polyfill を使用すると良い。

  • Promise
    Promise で実装されている。

(Polyfill・Promise については
JavaScript(DNET_JavaScript.md)を参照)

メソッド

makeCredential()メソッド

初回の key pair の作成

  • private key の (Device への) 登録
  • public key の取得(JWK format)

getAssertion()メソッド

private key を用いた challenge data のデジタル署名

補足(現在の標準との対応):

本ページ(旧) 現在の標準(WebAuthn)
msCredentials.makeCredential() navigator.credentials.create({publicKey: ...})
msCredentials.getAssertion() navigator.credentials.get({publicKey: ...})
公開鍵を JWK で受け取る COSE_Key 形式(CBOR)で受け取る

「登録(鍵ペアの作成)」と「認証(チャレンジへの署名)」という
2 段構えの考え方は変わっていない。

補足

  • (現時点で)以下に値が入ってこない。

    • result.algorithm
    • result.attestation
  • PKI のキーペアは、CredentialID を使用して、紐付けを行う模様。

補足(CredentialID は認証器が決める): 「認証器が生成した値を使う必要がある」という
著者の指摘は、現在の WebAuthn でもそのまま通用する。
credentialId認証器が返す不透明なバイト列であり、
サーバ側が採番した ID を代わりに使うと、
認証時に認証器が鍵を見つけられず失敗する。
なお「デバイスを特定する方法が無い」問題は、現在は
AAGUID(認証器モデルの識別子)と
ユーザ入力の「鍵の呼び名」で運用上カバーするのが一般的である。

参考(旧)

しばやん雑記

Views

Controllers

Services

microsoft.com

API リファレンス

adrianba/fido-snippets

Qiita

FIDO2.0対応 - Open 棟梁 Wiki

https://opentouryo.osscons.jp/index.php?FIDO2.0%E5%AF%BE%E5%BF%9C

本 Wiki 内


Tags: 認証基盤

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally