New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
[馃殌 Feature]: Add virtual authenticator support for all Selenium language bindings #10541
Comments
@pujagani, thank you for creating this issue. We will troubleshoot it as soon as we can. Info for maintainersTriage this issue by using labels.
If information is missing, add a helpful comment and then
If the issue is a question, add the
If the issue is valid but there is no time to troubleshoot it, consider adding the
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
add the applicable
After troubleshooting the issue, please add the Thank you! |
I'll start working on the Py binding. |
Starting to work on nodejs binding. |
Feature UpdateVirtual Authenticator changes needs to be implemented in the Steps to Follow
See Example: #10579 |
Co-authored-by: David Burns <david.burns@theautomatedtester.co.uk> Related to #10541
@titusfortner @SinghHrmn removed |
* [JS] feat: Added virtual authenticator Relates #10541 * [JS] fix: code review changes Co-authored-by: Puja Jagani <puja.jagani93@gmail.com> Co-authored-by: Sri Harsha <12621691+harsha509@users.noreply.github.com>
Removed NodeJS label as the PR was merged |
Co-authored-by: David Burns <david.burns@theautomatedtester.co.uk> Related to SeleniumHQ#10541
* [JS] feat: Added virtual authenticator Relates SeleniumHQ#10541 * [JS] fix: code review changes Co-authored-by: Puja Jagani <puja.jagani93@gmail.com> Co-authored-by: Sri Harsha <12621691+harsha509@users.noreply.github.com>
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Feature and motivation
Applications often integrate WebAuthn as part of the login step. This triggers a WebAuthn browser-specific WebAuthn flow.
Example of WebAuthn in Chrome:
Automating interaction with the WebAuthn dialog, as shown above, is possible via the extension VirtualAuthenticator APIs defined as part of https://w3c.github.io/webauthn/#sctn-automation.
Implementation
Implementation for Java was added as part of #7760 and #7842. The rest of the language bindings need to add the relevant code and can refer to the Java implementation for guidance.
An outline of implementing VirtualAuthenticator
Refer:
selenium/java/src/org/openqa/selenium/remote/RemoteWebDriver.java
Line 654 in b1fafa7
selenium/java/src/org/openqa/selenium/remote/RemoteWebDriver.java
Line 1158 in b1fafa7
Tests are defined in https://github.com/SeleniumHQ/selenium/blob/trunk/java/test/org/openqa/selenium/virtualauthenticator/VirtualAuthenticatorTest.java
Note: Currently, only chromium-based browsers implement the WebAuthn APIs. Though Java does not do it, till the rest of the vendors implement it might be a good idea for the VirtualAuthenticator APIs to sit in the chromium section of each binding (similar to the current implementation of Permissions API).
C#
It can follow the Java implementation since both are strongly typed. C# binding has similar interface declarations as Java for existing features (example: HasPermissions).
Ruby
All extension APIs are defined in https://github.com/SeleniumHQ/selenium/tree/39dec028673260e8a9518898fe40a910426adc85/rb/lib/selenium/webdriver/common/driver_extensions. Similarly,
has_virtualauthenticator
interface can be implemented and added here and used in the chromium module.Python
Chromium-specific Selenium commands in python are in https://github.com/SeleniumHQ/selenium/blob/trunk/py/selenium/webdriver/chromium/webdriver.py
VirtualAuthenticator commands can be added here and authentication id can be defined as a local variable.
Javascript
Chromium-specific Selenium commands in javascript are in https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/chromium.js
VirtualAuthenticator commands can be added here and authentication id can be defined as a local variable.
Usage example
A sample java example:
The text was updated successfully, but these errors were encountered: