From e3410c14c8570eb98eba3fd72ab9698f6dad0af2 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Mon, 24 Feb 2025 16:49:04 -0800 Subject: [PATCH 01/15] Deprecate UsernamePasswordCredential Due to changes around how MFA is required in Azure tenants, UsernamePasswordCredential is no longer recommended. --- sdk/identity/azure-identity/CHANGELOG.md | 2 ++ .../main/java/com/azure/identity/EnvironmentCredential.java | 1 + .../java/com/azure/identity/UsernamePasswordCredential.java | 3 +++ .../com/azure/identity/UsernamePasswordCredentialBuilder.java | 4 ++++ 4 files changed, 10 insertions(+) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 42e6ec805fbf..a2419c9f5efa 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -10,6 +10,8 @@ ### Other Changes +- Marked `UsernamePasswordCredential` and `UsernamePasswordCredentialBuilder` as deprecated. See https://aka.ms/azsdk/identity/mfa for details about MFA enforcement and migration guidance. + ## 1.15.3 (2025-02-20) ### Other Changes diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/EnvironmentCredential.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/EnvironmentCredential.java index 710fa17053b4..06716a52c492 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/EnvironmentCredential.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/EnvironmentCredential.java @@ -65,6 +65,7 @@ * @see EnvironmentCredentialBuilder */ @Immutable +@SuppressWarnings("deprecation") public class EnvironmentCredential implements TokenCredential { private static final ClientLogger LOGGER = new ClientLogger(EnvironmentCredential.class); private final TokenCredential tokenCredential; diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java index cd9349ef88bb..4f29d9187e8b 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java @@ -52,8 +52,11 @@ * @see UsernamePasswordCredentialBuilder * @see DeviceCodeCredential * @see InteractiveBrowserCredential + * + * @deprecated This credential is deprecated because it doesn't support multifactor authentication (MFA). See here for details about MFA enforcement for Entra ID and migration guidance. */ @Immutable +@Deprecated public class UsernamePasswordCredential implements TokenCredential { private static final ClientLogger LOGGER = new ClientLogger(UsernamePasswordCredential.class); diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java index d369f9b6c2fb..15d6fc61526d 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java @@ -38,7 +38,11 @@ * * * @see UsernamePasswordCredential + * + * @deprecated This credential is deprecated because it doesn't support multifactor authentication (MFA). See here for details about MFA enforcement for Entra ID and migration guidance. + * */ +@Deprecated public class UsernamePasswordCredentialBuilder extends AadCredentialBuilderBase { private static final ClientLogger LOGGER = new ClientLogger(UsernamePasswordCredentialBuilder.class); private static final String CLASS_NAME = UsernamePasswordCredentialBuilder.class.getSimpleName(); From 48452d5eca65232408e2312e1586e26815f4db50 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Mon, 24 Feb 2025 16:50:02 -0800 Subject: [PATCH 02/15] add PR link --- sdk/identity/azure-identity/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index a2419c9f5efa..a198d39d9bbf 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -10,7 +10,7 @@ ### Other Changes -- Marked `UsernamePasswordCredential` and `UsernamePasswordCredentialBuilder` as deprecated. See https://aka.ms/azsdk/identity/mfa for details about MFA enforcement and migration guidance. + - Marked `UsernamePasswordCredential` and `UsernamePasswordCredentialBuilder` as deprecated. See https://aka.ms/azsdk/identity/mfa for details about MFA enforcement and migration guidance. [#44381](https://github.com/Azure/azure-sdk-for-java/pull/44381) ## 1.15.3 (2025-02-20) From 890769859d34a788d62cafb81598d3377c8b7f77 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Tue, 25 Feb 2025 13:13:51 -0800 Subject: [PATCH 03/15] Update sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com> --- .../java/com/azure/identity/UsernamePasswordCredential.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java index 4f29d9187e8b..e960a09c63e4 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredential.java @@ -53,7 +53,7 @@ * @see DeviceCodeCredential * @see InteractiveBrowserCredential * - * @deprecated This credential is deprecated because it doesn't support multifactor authentication (MFA). See here for details about MFA enforcement for Entra ID and migration guidance. + * @deprecated This credential is deprecated because it doesn't support multifactor authentication (MFA). See here for details about MFA enforcement for Microsoft Entra ID and migration guidance. */ @Immutable @Deprecated From 1737ff91f890fc588b51bea2a55dfd31560ded2a Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Tue, 25 Feb 2025 13:14:01 -0800 Subject: [PATCH 04/15] Update sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com> --- .../com/azure/identity/UsernamePasswordCredentialBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java index 15d6fc61526d..bfd342b842a9 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/UsernamePasswordCredentialBuilder.java @@ -39,7 +39,7 @@ * * @see UsernamePasswordCredential * - * @deprecated This credential is deprecated because it doesn't support multifactor authentication (MFA). See here for details about MFA enforcement for Entra ID and migration guidance. + * @deprecated This credential is deprecated because it doesn't support multifactor authentication (MFA). See here for details about MFA enforcement for Microsoft Entra ID and migration guidance. * */ @Deprecated From fd5b117a47a6639e02657b5ce2a61c574e11c0d3 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Tue, 25 Feb 2025 13:20:21 -0800 Subject: [PATCH 05/15] PR feedback --- sdk/identity/azure-identity/README.md | 14 +++++++------- .../com/azure/identity/EnvironmentCredential.java | 2 ++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/sdk/identity/azure-identity/README.md b/sdk/identity/azure-identity/README.md index 576f836e4dbb..e13b32081455 100644 --- a/sdk/identity/azure-identity/README.md +++ b/sdk/identity/azure-identity/README.md @@ -301,13 +301,13 @@ Not all credentials honor this configuration. Credentials that authenticate thro ### Authenticate users -|Credential|Usage|Example|Reference| -|-|-|-|-| -|[AuthorizationCodeCredential][cred_acc]|Authenticates a user with a previously obtained authorization code as part of an OAuth 2.0 auth code flow||[OAuth 2.0 auth code][cred_acc_ref]| -|[DeviceCodeCredential][cred_dcc]|Interactively authenticates a user on devices with limited UI|[example][cred_dcc_example]|[device code authentication][cred_dcc_ref]| -|[InteractiveBrowserCredential][cred_ibc]|Interactively authenticates a user with the default system browser|[example][cred_ibc_example]|[OAuth 2.0 auth code][cred_acc_ref]| -|[OnBehalfOfCredential][cred_obo]|Propagates the delegated user identity and permissions through the request chain||[On-behalf-of authentication][cred_obo_ref]| -|[UsernamePasswordCredential][cred_upc]|Authenticates a user with a username and password without multi-factor auth|[example][cred_upc_example]|[Username + password authentication][cred_upc_ref]| +|Credential| Usage |Example|Reference| +|-|-----------------------------------------------------------------------------------------------------------|-|-| +|[AuthorizationCodeCredential][cred_acc]| Authenticates a user with a previously obtained authorization code as part of an OAuth 2.0 auth code flow ||[OAuth 2.0 auth code][cred_acc_ref]| +|[DeviceCodeCredential][cred_dcc]| Interactively authenticates a user on devices with limited UI |[example][cred_dcc_example]|[device code authentication][cred_dcc_ref]| +|[InteractiveBrowserCredential][cred_ibc]| Interactively authenticates a user with the default system browser |[example][cred_ibc_example]|[OAuth 2.0 auth code][cred_acc_ref]| +|[OnBehalfOfCredential][cred_obo]| Propagates the delegated user identity and permissions through the request chain ||[On-behalf-of authentication][cred_obo_ref]| +|[UsernamePasswordCredential][cred_upc]| **Deprecated** Authenticates a user with a username and password without multi-factor auth |[example][cred_upc_example]|[Username + password authentication][cred_upc_ref]| ### Authenticate via development tools diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/EnvironmentCredential.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/EnvironmentCredential.java index 06716a52c492..f212e31204c8 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/EnvironmentCredential.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/EnvironmentCredential.java @@ -38,6 +38,8 @@ * * *

The required environment variables for username password authentication are as follows:

+ *

Deprecated: Username and password authentication doesn't support multifactor authentication (MFA). + * For more details on Microsoft Entra MFA enforcement, see here.

*
    *
  • {@link Configuration#PROPERTY_AZURE_CLIENT_ID AZURE_CLIENT_ID}
  • *
  • {@link Configuration#PROPERTY_AZURE_USERNAME AZURE_USERNAME}
  • From 24af9189e58b79496d4b160a54bc512557f48600 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Tue, 25 Feb 2025 16:27:34 -0800 Subject: [PATCH 06/15] PR feedback --- sdk/identity/azure-identity/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/identity/azure-identity/README.md b/sdk/identity/azure-identity/README.md index e13b32081455..af260abf7dd6 100644 --- a/sdk/identity/azure-identity/README.md +++ b/sdk/identity/azure-identity/README.md @@ -346,6 +346,8 @@ Credentials can be chained together to be tried in turn until one succeeds using ### Username and password +> **Warning**: Username and password authentication doesn't support multifactor authentication (MFA) and is **deprecated**. For more details, see [Planning for mandatory MFA](https://aka.ms/azsdk/identity/mfa). + |Variable name|Value| |-|-| |`AZURE_CLIENT_ID`|ID of a Microsoft Entra application| From 2aa146c98990529398d04b15eb623f119d80c9c7 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Wed, 26 Feb 2025 12:01:54 -0800 Subject: [PATCH 07/15] add deprecation in UsernamePasswordCredentialBuilderFactory --- .../credential/UsernamePasswordCredentialBuilderFactory.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactory.java b/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactory.java index 13a49f839eab..0c70f37bdfa6 100644 --- a/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactory.java +++ b/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactory.java @@ -11,6 +11,7 @@ /** * A credential builder factory for the {@link UsernamePasswordCredentialBuilder}. */ +@SuppressWarnings("deprecated") public class UsernamePasswordCredentialBuilderFactory extends AzureAadCredentialBuilderFactory { /** From bd42df2c1b7c1a92f12bf80e161930b89f8aecd0 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Wed, 26 Feb 2025 14:20:05 -0800 Subject: [PATCH 08/15] fix typo --- .../credential/UsernamePasswordCredentialBuilderFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactory.java b/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactory.java index 0c70f37bdfa6..8af0e4d1dfb3 100644 --- a/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactory.java +++ b/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactory.java @@ -11,7 +11,7 @@ /** * A credential builder factory for the {@link UsernamePasswordCredentialBuilder}. */ -@SuppressWarnings("deprecated") +@SuppressWarnings("deprecation") public class UsernamePasswordCredentialBuilderFactory extends AzureAadCredentialBuilderFactory { /** From 81e454a74ac26ca006342eab4336c001793da3e2 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Thu, 27 Feb 2025 15:51:37 -0800 Subject: [PATCH 09/15] add more deprecation --- .../credential/resolver/AzureTokenCredentialResolverTests.java | 1 + .../credential/UsernamePasswordCredentialBuilderFactoryTest.java | 1 + 2 files changed, 2 insertions(+) diff --git a/sdk/spring/spring-cloud-azure-core/src/test/java/com/azure/spring/cloud/core/implementation/credential/resolver/AzureTokenCredentialResolverTests.java b/sdk/spring/spring-cloud-azure-core/src/test/java/com/azure/spring/cloud/core/implementation/credential/resolver/AzureTokenCredentialResolverTests.java index b0e34dcc5ca7..df783203dc2d 100644 --- a/sdk/spring/spring-cloud-azure-core/src/test/java/com/azure/spring/cloud/core/implementation/credential/resolver/AzureTokenCredentialResolverTests.java +++ b/sdk/spring/spring-cloud-azure-core/src/test/java/com/azure/spring/cloud/core/implementation/credential/resolver/AzureTokenCredentialResolverTests.java @@ -15,6 +15,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +@SuppressWarnings("deprecation") class AzureTokenCredentialResolverTests { diff --git a/sdk/spring/spring-cloud-azure-core/src/test/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactoryTest.java b/sdk/spring/spring-cloud-azure-core/src/test/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactoryTest.java index 84b4c043c0b5..de516d978735 100644 --- a/sdk/spring/spring-cloud-azure-core/src/test/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactoryTest.java +++ b/sdk/spring/spring-cloud-azure-core/src/test/java/com/azure/spring/cloud/core/implementation/factory/credential/UsernamePasswordCredentialBuilderFactoryTest.java @@ -6,6 +6,7 @@ import com.azure.identity.UsernamePasswordCredentialBuilder; import com.azure.spring.cloud.core.properties.AzureProperties; +@SuppressWarnings("deprecation") class UsernamePasswordCredentialBuilderFactoryTest extends AzureAadCredentialBuilderFactoryTest< UsernamePasswordCredentialBuilder, UsernamePasswordCredentialBuilderFactory> { From 58ed1d24c03978b065c83389d79bfc0a460146bf Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Thu, 27 Feb 2025 16:06:49 -0800 Subject: [PATCH 10/15] even more deprecation --- .../factory/AbstractServiceBusSubClientBuilderFactoryTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/spring/spring-cloud-azure-service/src/test/java/com/azure/spring/cloud/service/implementation/servicebus/factory/AbstractServiceBusSubClientBuilderFactoryTests.java b/sdk/spring/spring-cloud-azure-service/src/test/java/com/azure/spring/cloud/service/implementation/servicebus/factory/AbstractServiceBusSubClientBuilderFactoryTests.java index 9473abe8563d..2d9905cc98ce 100644 --- a/sdk/spring/spring-cloud-azure-service/src/test/java/com/azure/spring/cloud/service/implementation/servicebus/factory/AbstractServiceBusSubClientBuilderFactoryTests.java +++ b/sdk/spring/spring-cloud-azure-service/src/test/java/com/azure/spring/cloud/service/implementation/servicebus/factory/AbstractServiceBusSubClientBuilderFactoryTests.java @@ -28,6 +28,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +@SuppressWarnings("deprecation") abstract class AbstractServiceBusSubClientBuilderFactoryTests> extends AzureGenericServiceClientBuilderFactoryBaseTests { From 851abdd7211a2f16271efa050b19aa267e45ac0b Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Thu, 27 Feb 2025 16:27:58 -0800 Subject: [PATCH 11/15] more --- .../main/java/com/azure/endtoend/identity/MultiTenantTest.java | 1 + .../credential/provider/DefaultTokenCredentialProvider.java | 1 + .../java/com/azure/identity/UsernamePasswordCredentialTest.java | 1 + .../AzureServiceClientBuilderFactoryBaseTests.java | 1 + 4 files changed, 4 insertions(+) diff --git a/sdk/e2e/src/main/java/com/azure/endtoend/identity/MultiTenantTest.java b/sdk/e2e/src/main/java/com/azure/endtoend/identity/MultiTenantTest.java index aedf2c4b6fcf..92ae60d42cc8 100644 --- a/sdk/e2e/src/main/java/com/azure/endtoend/identity/MultiTenantTest.java +++ b/sdk/e2e/src/main/java/com/azure/endtoend/identity/MultiTenantTest.java @@ -23,6 +23,7 @@ /** * Runs Identity tests across multiple tests. */ +@SuppressWarnings("deprecation") class MultiTenantTest { private static final String AZURE_MULTI_TENANT_TEST_MODE = "AZURE_MULTI_TENANT_TEST_MODE"; private static final String AZURE_USER_NAME = "AZURE_USER_NAME"; diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java index 0ebfb4c525e9..e30ce7700164 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java @@ -15,6 +15,7 @@ /** * Default tokenCredentialProvider implementation that provides tokenCredential instance. */ +@SuppressWarnings("deprecation") public class DefaultTokenCredentialProvider implements TokenCredentialProvider { private final TokenCredentialProviderOptions options; diff --git a/sdk/identity/azure-identity/src/test/java/com/azure/identity/UsernamePasswordCredentialTest.java b/sdk/identity/azure-identity/src/test/java/com/azure/identity/UsernamePasswordCredentialTest.java index e333a52320dc..6f3754900d02 100644 --- a/sdk/identity/azure-identity/src/test/java/com/azure/identity/UsernamePasswordCredentialTest.java +++ b/sdk/identity/azure-identity/src/test/java/com/azure/identity/UsernamePasswordCredentialTest.java @@ -29,6 +29,7 @@ import static org.mockito.Mockito.mockConstruction; import static org.mockito.Mockito.when; +@SuppressWarnings("deprecation") public class UsernamePasswordCredentialTest { private final String clientId = UUID.randomUUID().toString(); diff --git a/sdk/spring/spring-cloud-azure-service/src/test/java/com/azure/spring/cloud/service/implementation/AzureServiceClientBuilderFactoryBaseTests.java b/sdk/spring/spring-cloud-azure-service/src/test/java/com/azure/spring/cloud/service/implementation/AzureServiceClientBuilderFactoryBaseTests.java index 0b9f8d24416a..ce3963ec69a6 100644 --- a/sdk/spring/spring-cloud-azure-service/src/test/java/com/azure/spring/cloud/service/implementation/AzureServiceClientBuilderFactoryBaseTests.java +++ b/sdk/spring/spring-cloud-azure-service/src/test/java/com/azure/spring/cloud/service/implementation/AzureServiceClientBuilderFactoryBaseTests.java @@ -15,6 +15,7 @@ import static org.mockito.Mockito.times; +@SuppressWarnings("deprecation") public abstract class AzureServiceClientBuilderFactoryBaseTests> extends AzureGenericServiceClientBuilderFactoryBaseTests { From dce663191ff9d069114a2578a9f183e9dc7276ee Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Thu, 27 Feb 2025 16:48:46 -0800 Subject: [PATCH 12/15] more --- .../context/AzureTokenCredentialAutoConfiguration.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/context/AzureTokenCredentialAutoConfiguration.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/context/AzureTokenCredentialAutoConfiguration.java index 8d672810f2aa..88d4359e8007 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/context/AzureTokenCredentialAutoConfiguration.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/context/AzureTokenCredentialAutoConfiguration.java @@ -48,6 +48,7 @@ @Configuration(proxyBeanMethods = false) @AutoConfigureAfter(TaskExecutionAutoConfiguration.class) @Import(AzureServiceClientBuilderFactoryConfiguration.class) +@SuppressWarnings("deprecation") public class AzureTokenCredentialAutoConfiguration extends AzureServiceConfigurationBase { private static final Logger LOGGER = LoggerFactory.getLogger(AzureTokenCredentialAutoConfiguration.class); From 22d55e3282cca91c8c28a29c4a27cec884ad1303 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Thu, 27 Feb 2025 17:03:01 -0800 Subject: [PATCH 13/15] more --- .../implementation/AbstractAzureServiceConfigurationTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/implementation/AbstractAzureServiceConfigurationTests.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/implementation/AbstractAzureServiceConfigurationTests.java index 9285faecaf06..6a669ac18f8b 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/implementation/AbstractAzureServiceConfigurationTests.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/implementation/AbstractAzureServiceConfigurationTests.java @@ -23,6 +23,7 @@ import static com.azure.spring.cloud.core.implementation.util.ReflectionUtils.getField; import static org.assertj.core.api.Assertions.assertThat; +@SuppressWarnings("deprecation") public abstract class AbstractAzureServiceConfigurationTests, P extends AzureProperties> { From daebf344aa24c91987b4f65f9aa0c5657fb0d206 Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Thu, 27 Feb 2025 17:18:52 -0800 Subject: [PATCH 14/15] more --- .../context/AzureTokenCredentialAutoConfigurationTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/implementation/context/AzureTokenCredentialAutoConfigurationTests.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/implementation/context/AzureTokenCredentialAutoConfigurationTests.java index 6b1ae3c7a3ad..2010a77416f3 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/implementation/context/AzureTokenCredentialAutoConfigurationTests.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/implementation/context/AzureTokenCredentialAutoConfigurationTests.java @@ -41,6 +41,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; +@SuppressWarnings("deprecation") class AzureTokenCredentialAutoConfigurationTests { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() From d249dc325904eeddc79d3e639192361e4f05759f Mon Sep 17 00:00:00 2001 From: Bill Wert Date: Fri, 7 Mar 2025 13:13:36 -0800 Subject: [PATCH 15/15] Remove UPC from the readme --- sdk/identity/azure-identity/README.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/sdk/identity/azure-identity/README.md b/sdk/identity/azure-identity/README.md index af260abf7dd6..4807b4a1dcc6 100644 --- a/sdk/identity/azure-identity/README.md +++ b/sdk/identity/azure-identity/README.md @@ -307,7 +307,6 @@ Not all credentials honor this configuration. Credentials that authenticate thro |[DeviceCodeCredential][cred_dcc]| Interactively authenticates a user on devices with limited UI |[example][cred_dcc_example]|[device code authentication][cred_dcc_ref]| |[InteractiveBrowserCredential][cred_ibc]| Interactively authenticates a user with the default system browser |[example][cred_ibc_example]|[OAuth 2.0 auth code][cred_acc_ref]| |[OnBehalfOfCredential][cred_obo]| Propagates the delegated user identity and permissions through the request chain ||[On-behalf-of authentication][cred_obo_ref]| -|[UsernamePasswordCredential][cred_upc]| **Deprecated** Authenticates a user with a username and password without multi-factor auth |[example][cred_upc_example]|[Username + password authentication][cred_upc_ref]| ### Authenticate via development tools @@ -344,17 +343,6 @@ Credentials can be chained together to be tried in turn until one succeeds using |`AZURE_CLIENT_CERTIFICATE_PATH`|path to a PFX or PEM-encoded certificate file including private key| |`AZURE_CLIENT_CERTIFICATE_PASSWORD`|(optional) password for certificate. The certificate can't be password-protected unless this value is specified.| -### Username and password - -> **Warning**: Username and password authentication doesn't support multifactor authentication (MFA) and is **deprecated**. For more details, see [Planning for mandatory MFA](https://aka.ms/azsdk/identity/mfa). - -|Variable name|Value| -|-|-| -|`AZURE_CLIENT_ID`|ID of a Microsoft Entra application| -|`AZURE_TENANT_ID`|(optional) ID of the application's Microsoft Entra tenant| -|`AZURE_USERNAME`|a username (usually an email address)| -|`AZURE_PASSWORD`|that user's password| - ### Managed identity (`DefaultAzureCredential`) |Variable name|Value| @@ -443,9 +431,6 @@ This project has adopted the [Microsoft Open Source Code of Conduct][code_of_con [cred_mic_example]: https://github.com/Azure/azure-sdk-for-java/wiki/Azure-Identity-Examples#authenticating-in-azure-with-managed-identity [cred_obo]: https://learn.microsoft.com/java/api/com.azure.identity.onbehalfofcredential?view=azure-java-stable [cred_obo_ref]: https://learn.microsoft.com/entra/identity-platform/v2-oauth2-on-behalf-of-flow -[cred_upc]: https://learn.microsoft.com/java/api/com.azure.identity.usernamepasswordcredential?view=azure-java-stable -[cred_upc_example]: https://github.com/Azure/azure-sdk-for-java/wiki/Azure-Identity-Examples#authenticating-a-user-account-with-username-and-password -[cred_upc_ref]: https://learn.microsoft.com/entra/identity-platform/v2-oauth-ropc [cred_vsc]: https://learn.microsoft.com/java/api/com.azure.identity.visualstudiocodecredential?view=azure-java-stable [cred_vsc_example]: https://github.com/Azure/azure-sdk-for-java/wiki/Azure-Identity-Examples#authenticating-a-user-account-with-visual-studio-code [cred_vsc_ref]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.azure-account