私の使用例では、ブラウザ固有の webauthn フローをトリガーする登録ページがあります。たとえば、Mac 上の Chrome では、次の一連のポップアップが表示されます。
- USB セキュリティ キーと内蔵センサーのどちらかを選択してください
- Touch IDによるMacOSの確認
- セキュリティ キーへのアクセスを要求する Chrome からの確認ダイアログ
https://w3c.github.io/webauthn/#add-virtual-authenticator以外に、セレン テストの一部として webauthn を使用した認証に関するドキュメントはあまり見つかりませんでした。JavaScript で Selenium を使用して webauthn をテストする方法を開発者が理解するのに役立つリソースは何ですか? https://github.com/SeleniumHQ/selenium/issues/7829もチェックアウトしましたが、テストケースの例は意味がありません。例は非常に高く評価されます。
js のソリューションで更新します。
import { Command } from 'selenium-webdriver/lib/command';
addVirtualAuthenticator = async () => {
await this.driver.getSession().then(async session => {
this.driver
.getExecutor()
.defineCommand('AddVirtualAuthenticator', 'POST', `/session/${session.id_}/webauthn/authenticator`);
let addVirtualAuthCommand = new Command('AddVirtualAuthenticator');
addVirtualAuthCommand.setParameter('protocol', 'ctap2');
addVirtualAuthCommand.setParameter('transport', 'internal');
addVirtualAuthCommand.setParameter('hasResidentKey', true);
addVirtualAuthCommand.setParameter('isUserConsenting', true);
await this.driver.getExecutor().execute(addVirtualAuthCommand);
});
};
this.driver
タイプであることに注意してくださいWebDriver
。
addVirtualAuthenticator
と対話するコードをヒットする前に呼び出しnavigator
ます (この場合、ユーザー登録には への呼び出しが含まれますnavigator.credentials.create
)。navigator.credentials.get({ publicKey: options })
ログイン中にpublicKey にアクセスする必要がある場合hasResidentKey
は、重要です。