diff --git a/src/azure-cli-core/azure/cli/core/auth/util.py b/src/azure-cli-core/azure/cli/core/auth/util.py index 74ae75ad9e0..61e91b27ca1 100644 --- a/src/azure-cli-core/azure/cli/core/auth/util.py +++ b/src/azure-cli-core/azure/cli/core/auth/util.py @@ -129,6 +129,12 @@ def check_result(result, **kwargs): if not result: raise AuthenticationError("Can't find token from MSAL cache.", recommendation="To re-authenticate, please run:\naz login") + + # msal_telemetry should be sent no matter if the MSAL response is a success or an error + if 'msal_telemetry' in result: + from azure.cli.core.telemetry import set_msal_telemetry + set_msal_telemetry(result['msal_telemetry']) + if 'error' in result: aad_error_handler(result, **kwargs) diff --git a/src/azure-cli-core/azure/cli/core/telemetry.py b/src/azure-cli-core/azure/cli/core/telemetry.py index 90dd0d3642d..9ecef53ebd5 100644 --- a/src/azure-cli-core/azure/cli/core/telemetry.py +++ b/src/azure-cli-core/azure/cli/core/telemetry.py @@ -71,6 +71,7 @@ def __init__(self, correlation_id=None, application=None): self.poll_start_time = None self.poll_end_time = None self.allow_broker = None + self.msal_telemetry = None def add_event(self, name, properties): for key in self.instrumentation_key: @@ -217,6 +218,7 @@ def _get_azure_cli_properties(self): set_custom_properties(result, 'RegionInput', self.region_input) set_custom_properties(result, 'RegionIdentified', self.region_identified) set_custom_properties(result, 'AllowBroker', str(self.allow_broker)) + set_custom_properties(result, 'MsalTelemetry', self.msal_telemetry) return result @@ -459,6 +461,12 @@ def set_broker_info(allow_broker): _session.allow_broker = allow_broker +@decorators.suppress_all_exceptions() +def set_msal_telemetry(msal_telemetry): + if not _session.msal_telemetry: + _session.msal_telemetry = msal_telemetry + + @decorators.suppress_all_exceptions() def add_dedicated_instrumentation_key(dedicated_instrumentation_key): if not dedicated_instrumentation_key: diff --git a/src/azure-cli-core/setup.py b/src/azure-cli-core/setup.py index 380f8cc26c0..5d50c627ad3 100644 --- a/src/azure-cli-core/setup.py +++ b/src/azure-cli-core/setup.py @@ -52,7 +52,7 @@ 'jmespath', 'knack~=0.10.1', 'msal-extensions~=1.0.0', - 'msal[broker]==1.22.0', + 'msal[broker]==1.24.0b1', 'msrestazure~=0.6.4', 'packaging>=20.9', 'paramiko>=2.0.8,<4.0.0', diff --git a/src/azure-cli/requirements.py3.Darwin.txt b/src/azure-cli/requirements.py3.Darwin.txt index 5fd0c47d76d..600ac1d7a42 100644 --- a/src/azure-cli/requirements.py3.Darwin.txt +++ b/src/azure-cli/requirements.py3.Darwin.txt @@ -110,7 +110,7 @@ jsondiff==2.0.0 knack==0.10.1 MarkupSafe==2.0.1 msal-extensions==1.0.0 -msal[broker]==1.22.0 +msal[broker]==1.24.0b1 msrest==0.7.1 msrestazure==0.6.4 oauthlib==3.2.2 diff --git a/src/azure-cli/requirements.py3.Linux.txt b/src/azure-cli/requirements.py3.Linux.txt index 2d5749f0f93..540346486bc 100644 --- a/src/azure-cli/requirements.py3.Linux.txt +++ b/src/azure-cli/requirements.py3.Linux.txt @@ -111,7 +111,7 @@ jsondiff==2.0.0 knack==0.10.1 MarkupSafe==2.0.1 msal-extensions==1.0.0 -msal[broker]==1.22.0 +msal[broker]==1.24.0b1 msrest==0.7.1 msrestazure==0.6.4 oauthlib==3.2.2 diff --git a/src/azure-cli/requirements.py3.windows.txt b/src/azure-cli/requirements.py3.windows.txt index 1af3718ef04..4facaeef3cb 100644 --- a/src/azure-cli/requirements.py3.windows.txt +++ b/src/azure-cli/requirements.py3.windows.txt @@ -110,7 +110,7 @@ jsondiff==2.0.0 knack==0.10.1 MarkupSafe==2.0.1 msal-extensions==1.0.0 -msal[broker]==1.22.0 +msal[broker]==1.24.0b1 msrest==0.7.1 msrestazure==0.6.4 oauthlib==3.2.2