PublicKeyCredentialCreationOptions

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

PublicKeyCredentialCreationOptionsWeb Authentication API の辞書で、 navigators.credentials.create()PublicKeyCredential を生成するために渡されるオプションを保持します。

プロパティ

PublicKeyCredentialCreationOptions.rp
資格情報の生成のリクエスト元を示すオブジェクトです。
PublicKeyCredentialCreationOptions.user
資格情報が生成されるユーザーアカウントを示すオブジェクトです。
PublicKeyCredentialCreationOptions.challenge
BufferSource 型で、証明書利用者のサーバーによって生成され、暗号チャレンジとして使用されるものです。この値は認証プロバイダーによって署名され、署名は AuthenticatorAssertionResponse.signature の一部として送り返されます。
PublicKeyCredentialCreationOptions.pubKeyCredParams
Array 型で、資格情報に要求される機能を指定する要素の配列です。暗号化署名の操作で使用される種類とアルゴリズムを含みます。この配列は設定の降順で並べ替えられます。
PublicKeyCredentialCreationOptions.timeout Optional
数値のヒントで、取得操作が完了するまで呼び出し元が待機する時間をミリ秒単位で表します。このヒントは、ブラウザーによって上書きされる場合があります。
PublicKeyCredentialCreationOptions.excludeCredentials Optional
Array で、既存の資格情報の記述子の配列です。これは、すでに資格情報を持つ既存のユーザーが新しい公開鍵資格情報を生成することを防ぐために、認証者によって提供されます。
PublicKeyCredentialCreationOptions.authenticatorSelection Optional
生成操作で使用可能な認証機器を絞り込む条件をプロパティに持つオブジェクトです。
PublicKeyCredentialCreationOptions.attestation Optional
String で、認証結果を (認証機器の元が) 送信する方法を示します。
PublicKeyCredentialCreationOptions.extensions Optional
複数のクライアント拡張機能の入力を持つオブジェクトです。これらの拡張機能は、追加の処理を要求するために使用されます (例えば、従来の FIDO API 資格情報を処理、認証端末上でのテキストの要求など)。

メソッド

なし。

// some examples of COSE algorithms
const cose_alg_ECDSA_w_SHA256 = -7;
const cose_alg_ECDSA_w_SHA512 = -36;

var createCredentialOptions = {
    // Format of new credentials is publicKey
    publicKey: {
        // Relying Party
        rp: {
            name: "Example CORP",
            id: "login.example.com",
            icon: "https://login.example.com/login.ico"
        },
        // Cryptographic challenge from the server
        challenge: new Uint8Array(26), 
        // User
        user: {
            id: new Uint8Array(16),
            name: "john.p.smith@example.com",
            displayName: "John P. Smith",
        },
        // Requested format of new keypair
        pubKeyCredParams: [{
            type: "public-key",
            alg: cose_alg_ECDSA_w_SHA256,
        }],
        // Timeout after 1 minute
        timeout: 60000,
        // Do not send the authenticator's origin attestation
        attestation: "none",
        extensions: {
          uvm: true,
          exts: true
        },
        // Filter out authenticators which are bound to the device
        authenticatorSelection:{
          authenticatorAttachment: "cross-platform",
          requireResidentKey: true,
          userVerification: "preferred"
        },
        // Exclude already existing credentials for the user
        excludeCredentials: [
          {
            type: "public-key",
            // the id for john.doe@example.com
            id  : new Uint8Array(26) /* this actually is given by the server */
          },
          {
            type: "public-key",
            // the id for john-doe@example.com
            id : new Uint8Array(26) /* another id */
          }
        ]
    }
};

// Create the new credential with the options above
navigator.credentials.create(createCredentialOptions)
  .then(function (newCredentialInfo) {
    var attestationResponse = newCredentialInfo.response;
    var clientExtensionsOutputs = newCredentialInfo.getClientExtensionsResults();

    // Send the response to the relying party server
    // it will verify the content and integrity before
    // creating a new credential

  }).catch(function (err) {
    // Deal with any error properly
    console.error(err);
  });;

仕様書

仕様書 状態 備考
Web Authentication: An API for accessing Public Key Credentials Level 1
PublicKeyCredentialCreationOptions dictionary の定義
勧告 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
PublicKeyCredentialCreationOptions
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera 完全対応 ありSafari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android 完全対応 ありSafari iOS ? Samsung Internet Android 未対応 なし
attestation
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android 未対応 なし
authenticatorSelection
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android 未対応 なし
challenge
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android 未対応 なし
excludeCredentials
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android 未対応 なし
extensions
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android 未対応 なし
pubKeyCredParams
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android 未対応 なし
rp
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera 完全対応 ありSafari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android 完全対応 ありSafari iOS ? Samsung Internet Android 未対応 なし
timeout
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android 未対応 なし
user
実験的
Chrome 完全対応 67Edge 完全対応 ≤79Firefox 完全対応 60IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 67Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。

関連情報