-
Notifications
You must be signed in to change notification settings - Fork 137
Add WebAuthn version support in configuration, Fixes AB#3385532 #2393
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’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
❌ Work item link check failed. Description does not contain AB#{ID}. Click here to Learn more. |
|
✅ Work item link check complete. Description contains link AB#3385532 to an Azure Boards work item. |
|
❌ Work item link check failed. Description does not contain AB#{ID}. Click here to Learn more. |
|
✅ Work item link check complete. Description contains link AB#3385532 to an Azure Boards work item. |
…er addition logic
…rences in related classes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds WebAuthn protocol version configuration support to enable testing of WebAuthn/passkey flows in broker-less scenarios on PPE MSA environments. The primary objective is to allow apps to specify WebAuthn version 1.1 in their configuration and have the SDK automatically include the appropriate passkey protocol headers when conditions are met.
Key changes:
- Added
webauthn_versionconfiguration field with serialization, accessors, and merge logic - Implemented conditional passkey protocol header injection based on WebAuthn version, Android version, and authorization agent
- Enhanced test app to append MSA OAuth2 query parameter for PPE WebAuthn testing when using version 1.1
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| msal_config_webview_ppe_msa.json | Adds webauthn_version 1.1 to test configuration for PPE MSA WebView testing |
| MsalWrapper.java | Conditionally appends msaoauth2=true query parameter for PPE WebAuthn 1.1 testing |
| CommandParametersAdapter.java | Implements passkey header logic with version checks and helper methods |
| PublicClientApplicationConfiguration.java | Adds webauthn_version field with serialization and configuration merge support |
| versions.gradle | Adds webkit dependency version declaration |
| common | Updates subproject commit reference |
| changelog | Documents the WebAuthn version support feature |
msal/src/main/java/com/microsoft/identity/client/internal/CommandParametersAdapter.java
Outdated
Show resolved
Hide resolved
msal/src/main/java/com/microsoft/identity/client/internal/CommandParametersAdapter.java
Outdated
Show resolved
Hide resolved
testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/MsalWrapper.java
Outdated
Show resolved
Hide resolved
…andParametersAdapter.java Co-authored-by: Copilot <[email protected]>
…estapp/MsalWrapper.java Co-authored-by: Copilot <[email protected]>
…andParametersAdapter.java Co-authored-by: Copilot <[email protected]>
…CommandParametersAdapter
msal/src/main/java/com/microsoft/identity/client/internal/CommandParametersAdapter.java
Show resolved
Hide resolved
msal/src/main/java/com/microsoft/identity/client/internal/CommandParametersAdapter.java
Outdated
Show resolved
Hide resolved
msal/src/main/java/com/microsoft/identity/client/internal/CommandParametersAdapter.java
Outdated
Show resolved
Hide resolved
msal/src/main/java/com/microsoft/identity/client/internal/CommandParametersAdapter.java
Show resolved
Hide resolved
…iguration for MSA passkey registration
AB#3385532
https://identitydivision.visualstudio.com/DevEx/_git/AuthLibrariesApiReview/pullrequest/20357
Add WebAuthn Version Support and Passkey Headers
This PR adds support for handling the WebAuthn protocol version in the app configuration and authentication flow for broker-less scenarios. also enables testing on WEBVIEW PPE MSA
Changes:
webauthn_versionfield toPublicClientApplicationConfiguration, including serialization, accessors, and merge logic, allowing apps to define and retrieve the WebAuthn version from configuration files.CommandParametersAdapterto include passkey protocol headers in authentication requests when WebAuthn is enabled, supported (Android 9+), Authorization agent is Webview and the version is 1.1.MsalWrapper) to append themsaoauth2=trueparameter to query strings when running in the pre-production environment with WebAuthn 1.1 enabled, enabling proper testing of WebAuthn flows.Related PR: AzureAD/microsoft-authentication-library-common-for-android#2769
Test
1- create account https://signup.live-int.com/?lic=1
2 - Install msal test app, (ensure no broker is installed)
3 - change config to MSA_WEBVIEW_PPE
4- Click acquire token and complete auth flow (username, password)
5 - User is presented with the option to register a passkey, complete the flow, and you will end up with a token and a passkey.
6 - try again with no user selected and use the passkey.