Widely available すべての主要ブラウザで対応済み。安心して使用可能。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
67
18
60
13
70
13

AuthenticatorAssertionResponse インターフェイスのauthenticatorData プロパティは、証明書利用者 ID ハッシュ (rpIdHash)、署名カウンター、ユーザーの存在のテスト、ユーザー検証フラグ、およびオーセンティケーターによって処理された拡張機能などのオーセンティケーターからの情報を含む ArrayBuffer を返します。

67
18
60
13
70
13

AuthenticatorAssertionResponse インターフェイスの署名読み取り専用プロパティは、AuthenticatorAssertionResponse.authenticatorData とクライアント データの SHA-256 ハッシュ (AuthenticatorResponse.clientDataJSON) の両方に対するオーセンティケーターの署名である ArrayBuffer オブジェクトです。

67
18
60
13
70
13

AuthenticatorAssertionResponse インターフェイスの userHandle 読み取り専用プロパティは、特定のユーザーに不透明な識別子を提供する ArrayBuffer オブジェクトです。 このような識別子は、信頼当事者のサーバーによって、ユーザー アカウントを対応する資格情報やその他のデータとリンクするために使用されます。

67
18
60
13
70
13

AuthenticatorAttestationResponse は Web Authentication API のインターフェイスで、 CredentialsContainer.create() に PublicKeyCredential を渡すと返されます。そして、生成された新しいキーペアの暗号化信頼ルートを提供します。このレスポンスは認証情報の生成を完了させるために、信頼されている側のサーバーに送信されます。

67
18
60
13
70
13

AuthenticatorAttestationResponse インターフェイスの attestationObject プロパティは、新しい公開キーと、製造時にオーセンティケータに保存される秘密キーを使用した attestationObject 全体の署名を含む ArrayBuffer を返します。

67
18
60
13
70
13

AuthenticatorAttestationResponse インターフェイスの getTransports() メソッドは、オーセンティケータによって使用される可能性のあるさまざまなトランスポートを説明する文字列の配列を返します。

74
79
119
16
74
16

AuthenticatorResponse は Web Authentication API のインターフェイスで、キーペアを信頼する暗号化ルートを提供するインターフェイスの基本インターフェイスです。子インターフェイスでは、チャレンジのオリジンなどのブラウザーからの情報を含み、 PublicKeyCredential.response から返されることがあります。

67
18
60
13
70
13

AuthenticatorResponse インターフェイスの clientDataJSON プロパティは、CredentialsContainer.create() または CredentialsContainer.get() に渡されたクライアント データを表す JSON 文字列を ArrayBuffer に保存します。 このプロパティは、AuthenticatorResponse の子オブジェクトの 1 つ、特に AuthenticatorAttestationResponse または…でのみアクセスされます。

67
18
60
13
70
13
create (publicKey option)

publicKey`オプション

67
18
60
13
70
13
create (publicKey option attestation)

認証`オプション

67
18
60
13
70
13
67
18
60
13
70
13
67
18
60
13
70
13
67
18
60
13
70
13
67
18
60
13
70
13

ウェブ認証 API には拡張機能システムが備わっています。これは、資格情報の作成時 (CredentialsContainer.create()) または認証 (CredentialsContainer.get()) 操作時にリクエストできる追加機能です。本記事では、ウェブ認証 (WebAuthn) 拡張機能のリクエスト方法、それらのリクエストに対する応答情報の取得方法、利用可能な拡張機能(ブラウザーの対応状況や想定される入力・出力を含む)について説明します。

67
18
60
13
70
13

- 使用場面: 登録 (CredentialsContainer.create()) - 処理元: ユーザーエージェント - 仕様書: FIDO AppID Exclusion Extension (appidExclude)

67
18
60
13
70
13

- 使用場面: 登録 (CredentialsContainer.create()) - 処理元: ユーザーエージェント - 仕様書: Credential Properties Extension (credProps)

89
89
119
108

- 使用場面: 登録 (CredentialsContainer.create()) - 処理元: 認証器 - 仕様書: Credential Protection (credProtect)

76
79
139
76

- 使用場面: 登録 (CredentialsContainer.create()) and authentication (CredentialsContainer.get()) - 処理元: ユーザーエージェント - 仕様書: Large blob storage extension (largeBlob)

113
113
139
17
17

- 使用場面: 登録 (CredentialsContainer.create()) - 処理元: 認証器 - 仕様書: Minimum PIN Length Extension (minPinLength)

98
98
120
98
create (publicKey option requireResidentKey)
実験的
89
89
108
create (publicKey option residentKey)
89
89
114
108
get (publicKey option)

publicKey`オプション

67
18
60
13
70
13

ウェブ認証 API には拡張機能システムが備わっています。これは、資格情報の作成時 (CredentialsContainer.create()) または認証 (CredentialsContainer.get()) 操作時にリクエストできる追加機能です。本記事では、ウェブ認証 (WebAuthn) 拡張機能のリクエスト方法、それらのリクエストに対する応答情報の取得方法、利用可能な拡張機能(ブラウザーの対応状況や想定される入力・出力を含む)について説明します。

67
18
60
13
70
13
get (publicKey option extensions appid)

拡張子 `appid`

67
18
60
13
70
13
get (publicKey option extensions largeBlob)

largeBlob`エクステンション

113
113
139
113

PublicKeyCredential インターフェイスは、パスワードの代わりにフィッシングやデータ消去に耐性のある非対称の鍵ペアを使用してサービスにログインするための資格情報である、公開鍵と秘密鍵のペアについての情報を提供します。これは Credential を継承しており、ウェブ認証 API が資格情報管理 API へ拡張された際に作成されました。 Credential を継承している他のインターフェイスとしては、 PasswordCredential や FederatedCredential があります。

67
18
60
13
70
13

PublicKeyCredential インターフェイスのAuthenticatorAttachment 読み取り専用プロパティは、関連付けられた CredentialsContainer.create() または CredentialsContainer.get() 呼び出し中に使用される認証子の一般的なカテゴリを示す文字列です。

98
98
120
15.5
98
15.5

PublicKeyCredential インターフェイスの getClientCapabilities() 静的メソッドは、特定の WebAuthn クライアント機能および拡張機能がサポートされているかどうかを確認するために使用できるオブジェクトで解決される Promise を返します。

133
133
135
17.4
133
17.4

getClientExtensionResults() は PublicKeyCredential インターフェイスのメソッドであり、 ArrayBuffer の形で拡張機能の識別子と、クライアントが処理した後の結果の対応表を返します。

67
18
60
13
70
13

PublicKeyCredential インターフェイスの isConditionalMediationAvailable() 静的メソッドは、条件付きメディエーションが利用可能な場合に true に解決される Promise を返します。

108
108
119
16
108
16

isUserVerifyingPlatformAuthenticatorAvailable() は PublicKeyCredential インターフェイスの静的メソッドで、ユーザー検証プラットフォーム認証機能が利用できる場合に true に解決される Promise を返すメソッドです。

67
18
60
13
70
13

PublicKeyCredential インターフェイスの parseCreationOptionsFromJSON() 静的メソッドは、プロパティの JSON 表現から PublicKeyCredentialCreationOptions オブジェクトを作成します。

129
129
119
18.4
129
18.4

PublicKeyCredential インターフェイスの parseRequestOptionsFromJSON() 静的メソッドは、JSON 型表現を PublicKeyCredentialRequestOptions インスタンスに変換します。

129
129
119
18.4
129
18.4

rawId は PublicKeyCredential インターフェイスの読み取り専用プロパティで、資格情報の識別子が入った ArrayBuffer オブジェクトです。

67
18
60
13
70
13

response は PublicKeyCredential インターフェイスの読み取り専用プロパティで、このプロパティは AuthenticatorResponse オブジェクトであり、資格情報の作成/取得のために認証先からユーザーエージェントに送信されるものです。このレスポンスに含まれる情報は、要求が正当なものであるかどうかを確認するために、依存している側のサーバーで使用されます。

67
18
60
13
70
13

PublicKeyCredential インターフェイスの toJSON() メソッドは、PublicKeyCredential の JSON 型表現を返します。

129
129
119
18.4
129
18.4
その他
html.elements.iframe.allow.publickey-credentials-create
123
html.elements.iframe.allow.publickey-credentials-get
84
84
118
84

HTTP の Permissions-Policy ヘッダーにおける publickey-credentials-create ディレクティブは、現在の文書がウェブ認証 API を使用して新しい WebAuthn 資格情報を作成すること、すなわち {{domxref("CredentialsContainer.create","navigator.credentials.create({publicKey})")}} を許可するかどうかを制御します。

88
88
88

HTTP の Permissions-Policy ヘッダーにおける publickey-credentials-get ディレクティブは、現在の文書がウェブ認証 API を使用して公開鍵を受け取ること、すなわち {{domxref("CredentialsContainer.get","navigator.credentials.get({publicKey})")}} を許可するかどうかを制御します。

88
88
88
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。
注釈 1件
実装メモ
  • USB U2F トークンのみをサポート。

基本構文

JAVASCRIPT
const credential = await navigator.credentials.create({
  publicKey: {
    challenge: new Uint8Array(32),
    rp: { name: 'Example' },
    user: { id: new Uint8Array(16), name: 'user@example.com', displayName: 'User' },
    pubKeyCredParams: [{ type: 'public-key', alg: -7 }]
  }
});

実務での使いどころ

  • Web authentication の活用

    安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

注意点

  • 古いブラウザでは対応していない場合がある。

アクセシビリティ

  • スクリーンリーダーでの読み上げを確認すること。