From 18bedb6db3b4cb3b63e7471ed978921062b45964 Mon Sep 17 00:00:00 2001 From: Melissa Ahn Date: Mon, 21 Aug 2023 11:24:13 -0700 Subject: [PATCH 1/3] Adding webauthn query parameter switch --- .../client/testapp/AcquireTokenFragment.java | 4 ++++ .../identity/client/testapp/MsalWrapper.java | 14 +++++++++++++ .../client/testapp/RequestOptions.java | 1 + .../src/main/res/layout/fragment_acquire.xml | 21 +++++++++++++++++++ .../testapp/src/main/res/values/strings.xml | 1 + 5 files changed, 41 insertions(+) diff --git a/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/AcquireTokenFragment.java b/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/AcquireTokenFragment.java index da7df6f04..d8aba89da 100644 --- a/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/AcquireTokenFragment.java +++ b/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/AcquireTokenFragment.java @@ -81,6 +81,7 @@ public class AcquireTokenFragment extends Fragment { private EditText mClaims; private Button mAddDeviceIdClaimButton; private Button mAddNgcMfaClaimButton; + private Switch mWebauthnQueryParameter; private Switch mEnablePII; private Switch mForceRefresh; private Switch mEnableNewBrokerDiscovery; @@ -149,6 +150,7 @@ public void onClick(View v) { } }); + mWebauthnQueryParameter = view.findViewById(R.id.webauthnQueryParameter); mEnablePII = view.findViewById(enablePII); mForceRefresh = view.findViewById(R.id.forceRefresh); mSelectAccount = view.findViewById(R.id.select_user); @@ -541,6 +543,7 @@ private RequestOptions getCurrentRequestOptions() { final String scopes = mScope.getText().toString(); final String extraScopesToConsent = mExtraScope.getText().toString(); final String claims = mClaims.getText().toString(); + final boolean webauthnQueryParameter = mWebauthnQueryParameter.isChecked(); final boolean enablePII = mEnablePII.isChecked(); final boolean forceRefresh = mForceRefresh.isChecked(); final String authority = mAuthority.getText().toString(); @@ -560,6 +563,7 @@ private RequestOptions getCurrentRequestOptions() { scopes, extraScopesToConsent, claims, + webauthnQueryParameter, enablePII, forceRefresh, authority, diff --git a/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/MsalWrapper.java b/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/MsalWrapper.java index bf5781205..927122365 100644 --- a/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/MsalWrapper.java +++ b/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/MsalWrapper.java @@ -25,13 +25,17 @@ import com.microsoft.identity.client.exception.MsalException; import com.microsoft.identity.client.exception.MsalServiceException; import com.microsoft.identity.client.exception.MsalUiRequiredException; +import com.microsoft.identity.common.internal.fido.FidoConstants; import com.microsoft.identity.common.java.util.StringUtil; import java.net.MalformedURLException; import java.net.URL; +import java.util.AbstractMap; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; +import java.util.Map; /// Acting as a bridge between the result of MsalWrapper's results and the outside world. interface INotifyOperationResultCallback { @@ -121,6 +125,16 @@ private AcquireTokenParameters.Builder getAcquireTokenParametersBuilder(@NonNull builder.withClaims(ClaimsRequest.getClaimsRequestFromJsonString(requestOptions.getClaims())); } + if (requestOptions.isWebauthnQueryParameter()) { + final List> extraQueryParameters = new ArrayList<>(); + extraQueryParameters.add( + new AbstractMap.SimpleEntry<>( + FidoConstants.WEBAUTHN_QUERY_PARAMETER_FIELD, + FidoConstants.WEBAUTHN_QUERY_PARAMETER_VALUE + )); + builder.withAuthorizationQueryStringParameters(extraQueryParameters); + } + if (requestOptions.getAuthScheme() == Constants.AuthScheme.POP) { try { builder.withAuthenticationScheme( diff --git a/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/RequestOptions.java b/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/RequestOptions.java index 1d9b1bde2..a67c5247c 100644 --- a/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/RequestOptions.java +++ b/testapps/testapp/src/main/java/com/microsoft/identity/client/testapp/RequestOptions.java @@ -43,6 +43,7 @@ class RequestOptions { private final String mScopes; private final String mExtraScope; private final String mClaims; + private final boolean mWebauthnQueryParameter; private final boolean mEnablePII; private final boolean mForceRefresh; private final String mAuthority; diff --git a/testapps/testapp/src/main/res/layout/fragment_acquire.xml b/testapps/testapp/src/main/res/layout/fragment_acquire.xml index 676b977e2..341cd6d3e 100644 --- a/testapps/testapp/src/main/res/layout/fragment_acquire.xml +++ b/testapps/testapp/src/main/res/layout/fragment_acquire.xml @@ -315,6 +315,27 @@ android:textSize="12sp" /> + + + + + + + Clear Active Broker Cache Current Cached Active Broker None + WebAuthn Query Parameter From 2f9bee660e75a22839da073260b6e642ace59637 Mon Sep 17 00:00:00 2001 From: Melissa Ahn Date: Mon, 21 Aug 2023 17:46:22 -0700 Subject: [PATCH 2/3] updating common submodule --- common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common b/common index 225112908..201111d9c 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 2251129087f1d2b4896532bf40d8e6ef2071871a +Subproject commit 201111d9cb03156972bea2ebb86a8351acee56d0 From cf79d900bdb7e574dc1ef048fe56b4930f14a973 Mon Sep 17 00:00:00 2001 From: Melissa Ahn Date: Wed, 23 Aug 2023 18:36:28 -0700 Subject: [PATCH 3/3] updating submodule --- common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common b/common index 35f893187..e5a7a8ba2 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 35f893187f0b1b202a1a05d5db9b06dfa1a44fbf +Subproject commit e5a7a8ba255f75d89b0782672af23cc6edf120fc