マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

WebAuthn?を実装する。

詳細

登録フロー

(1) challengeの受信

(2) navigator.credentials.create() の param

#パラメタ説明フォーマット
1rp必須Relying partyに関する情報JSON Object
1-1idFQDN名String
1-2name任意のRPサイト名String
2user必須Credentialが紐づくユーザー情報JSON Object
2-1idRP上のユーザIDArrayBuffer?
2-2nameRP上のユーザIDString
2-3displayNameRP上のユーザ表示名String
3challenge必須サーバーで生成した乱数ArrayBuffer?
4pubKeyCredParams?必須Credential情報JSON Objectの配列
4-1typeタイプ(public-key固定)String
4-2algアルゴリズムを表す数値Int
5timeoutユーザーの入力待機時間Int
6attestationAuthenticatorの出どころを検証するかどうかJSON Object
7authenticatorSelection認証器への要求事項JSON Object

(3) navigator.credentials.create() の return

#パラメタ説明フォーマット
1id割り当てられたidrawIdの文字列表現
2rawIdidのArrayBuffer?ArrayBuffer?
3responseAuthenticatorAttestationResponse?JSON Object
3-1attestationObject公開鍵などを含むCBOR形式
3-1-1fmtAttestation format"fmt": "packed"
3-1-2authDataRaw buffer struct containing user info"authData": "..."
3-1-3attStmtAttestation statement data"attStmt": {
3-1-3-1sigSignature"sig": "..."
3-1-3-2x5c"X.509 Certificate Chain"x5c": ["..."]
3-2clientDataJSONクライアント・データCBOR形式
3-2-1challengeRandom number"challenge": "..."
3-2-2originOrigin of the website"origin": "http(s)://..."
3-2-3typeType of the call"type": "webauthn.create"
4typepubKeyCredParams? - typeと同じ"type": "public-key"

(4) challenge、origin、typeの検証

(5) flagsの検証

(6) signatureの検証

authDataをattStmt.x5cで署名した値 = attStmt.sig みたいな話。

(7) 公開鍵の保存

COSEから公開鍵を取り出して、保存する。

認証フロー

参考

fido2-net-lib

techblogyahoo

登録フロー

認証フロー


Tags: :IT国際標準, :認証基盤


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS