diff --git a/src/azure-cli-core/azure/cli/core/_profile.py b/src/azure-cli-core/azure/cli/core/_profile.py index 8b49653cc9f..cd977628510 100644 --- a/src/azure-cli-core/azure/cli/core/_profile.py +++ b/src/azure-cli-core/azure/cli/core/_profile.py @@ -1022,6 +1022,8 @@ def _create_identity_instance(cli_ctx, authority, tenant_id=None, client_id=None def _use_msal_managed_identity(cli_ctx): # This indicates an Azure Arc-enabled server from msal.managed_identity import get_managed_identity_source, AZURE_ARC + from azure.cli.core.telemetry import set_use_msal_managed_identity # PREVIEW: Use core.use_msal_managed_identity=true to enable managed identity authentication with MSAL use_msal_managed_identity = cli_ctx.config.getboolean('core', 'use_msal_managed_identity', fallback=False) + set_use_msal_managed_identity(use_msal_managed_identity) return use_msal_managed_identity or get_managed_identity_source() == AZURE_ARC diff --git a/src/azure-cli-core/azure/cli/core/telemetry.py b/src/azure-cli-core/azure/cli/core/telemetry.py index 02de81d5f01..0fb4349ccc1 100644 --- a/src/azure-cli-core/azure/cli/core/telemetry.py +++ b/src/azure-cli-core/azure/cli/core/telemetry.py @@ -78,6 +78,7 @@ def __init__(self, correlation_id=None, application=None): self.enable_broker_on_windows = None self.msal_telemetry = None self.login_experience_v2 = None + self.use_msal_managed_identity = None def add_event(self, name, properties): for key in self.instrumentation_key: @@ -234,6 +235,7 @@ def _get_azure_cli_properties(self): set_custom_properties(result, 'EnableBrokerOnWindows', str(self.enable_broker_on_windows)) set_custom_properties(result, 'MsalTelemetry', self.msal_telemetry) set_custom_properties(result, 'LoginExperienceV2', str(self.login_experience_v2)) + set_custom_properties(result, 'UseMsalManagedIdentity', str(self.use_msal_managed_identity)) return result @@ -470,6 +472,7 @@ def set_region_identified(region_input, region_identified): _session.region_identified = region_identified +# region authentication-related @decorators.suppress_all_exceptions() def set_broker_info(enable_broker_on_windows): # Log the value of `enable_broker_on_windows` @@ -487,6 +490,12 @@ def set_login_experience_v2(login_experience_v2): _session.login_experience_v2 = login_experience_v2 +@decorators.suppress_all_exceptions() +def set_use_msal_managed_identity(use_msal_managed_identity): + _session.use_msal_managed_identity = use_msal_managed_identity +# endregion + + @decorators.suppress_all_exceptions() def set_user_agent(user_agent): if user_agent: