Web authentication
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
AuthenticatorAssertionResponse は Web Authentication API のインターフェイスで、 CredentialsContainer.get() に PublicKeyCredential を渡すと返されます。そして、キーペアを持ち、認証付きリクエストが有効で承認されていることをサービスに証明します。
このインターフェイスは AuthenticatorResponse を継承しています。
メモ: このインターフェイスは最上位のコンテキストに限定されています。 <iframe> 要素の中で使用しても、何も効果がありません。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| 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 | |
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
- USB U2F トークンのみをサポート。
基本構文
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) でのみ利用できます。
注意点
- 古いブラウザでは対応していない場合がある。
アクセシビリティ
- スクリーンリーダーでの読み上げを確認すること。