mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 09:08:48 +01:00
Start sending ClientAuthError telemetry for microsoft auth (#278643)
To better bucketize MSAL broker errors.
This commit is contained in:
committed by
GitHub
parent
3dcee1b440
commit
134826b979
+17
-17
@@ -10,8 +10,8 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@azure/ms-rest-azure-env": "^2.0.0",
|
||||
"@azure/msal-node": "^3.8.0",
|
||||
"@azure/msal-node-extensions": "^1.5.23",
|
||||
"@azure/msal-node": "^3.8.3",
|
||||
"@azure/msal-node-extensions": "^1.5.25",
|
||||
"@vscode/extension-telemetry": "^0.9.8",
|
||||
"keytar": "file:./packageMocks/keytar",
|
||||
"vscode-tas-client": "^0.1.84"
|
||||
@@ -33,21 +33,21 @@
|
||||
"integrity": "sha512-dG76W7ElfLi+fbTjnZVGj+M9e0BIEJmRxU6fHaUQ12bZBe8EJKYb2GV50YWNaP2uJiVQ5+7nXEVj1VN1UQtaEw=="
|
||||
},
|
||||
"node_modules/@azure/msal-common": {
|
||||
"version": "15.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.13.0.tgz",
|
||||
"integrity": "sha512-8oF6nj02qX7eE/6+wFT5NluXRHc05AgdCC3fJnkjiJooq8u7BcLmxaYYSwc2AfEkWRMRi6Eyvvbeqk4U4412Ag==",
|
||||
"version": "15.13.2",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.13.2.tgz",
|
||||
"integrity": "sha512-cNwUoCk3FF8VQ7Ln/MdcJVIv3sF73/OT86cRH81ECsydh7F4CNfIo2OAx6Cegtg8Yv75x4506wN4q+Emo6erOA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/msal-node": {
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-3.8.0.tgz",
|
||||
"integrity": "sha512-23BXm82Mp5XnRhrcd4mrHa0xuUNRp96ivu3nRatrfdAqjoeWAGyD0eEAafxAOHAEWWmdlyFK4ELFcdziXyw2sA==",
|
||||
"version": "3.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-3.8.3.tgz",
|
||||
"integrity": "sha512-Ul7A4gwmaHzYWj2Z5xBDly/W8JSC1vnKgJ898zPMZr0oSf1ah0tiL15sytjycU/PMhDZAlkWtEL1+MzNMU6uww==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@azure/msal-common": "15.13.0",
|
||||
"@azure/msal-common": "15.13.2",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"uuid": "^8.3.0"
|
||||
},
|
||||
@@ -56,14 +56,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/msal-node-extensions": {
|
||||
"version": "1.5.23",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-node-extensions/-/msal-node-extensions-1.5.23.tgz",
|
||||
"integrity": "sha512-9i9GibDBxEUiYon/3Ecisde4SDFJD89nW+VCnvlzbFnVyo2TSaV047anLA/lk2ena52GSJvBGGdZLpAQqxwo3w==",
|
||||
"version": "1.5.25",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-node-extensions/-/msal-node-extensions-1.5.25.tgz",
|
||||
"integrity": "sha512-8UtOy6McoHQUbvi75Cx+ftpbTuOB471j4V4yZJmRM3KJ30bMO7forXrVV+/xArvWdgZ9VkBvq26OclFstJUo8Q==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@azure/msal-common": "15.13.0",
|
||||
"@azure/msal-node-runtime": "^0.19.0",
|
||||
"@azure/msal-common": "15.13.2",
|
||||
"@azure/msal-node-runtime": "^0.20.0",
|
||||
"keytar": "^7.8.0"
|
||||
},
|
||||
"engines": {
|
||||
@@ -71,9 +71,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/msal-node-runtime": {
|
||||
"version": "0.19.5",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-node-runtime/-/msal-node-runtime-0.19.5.tgz",
|
||||
"integrity": "sha512-0oBQgCcgOb+VwQ5k8OXShbuXCBU8FKKhpwnqWSBzzYWSFoYAtyad2zggl26ME4IKzN9telaOJPEEcsQOf/+3Ug==",
|
||||
"version": "0.20.1",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-node-runtime/-/msal-node-runtime-0.20.1.tgz",
|
||||
"integrity": "sha512-WVbMedbJHjt9M+qeZMH/6U1UmjXsKaMB6fN8OZUtGY7UVNYofrowZNx4nVvWN/ajPKBQCEW4Rr/MwcRuA8HGcQ==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
|
||||
@@ -141,8 +141,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@azure/ms-rest-azure-env": "^2.0.0",
|
||||
"@azure/msal-node": "^3.8.0",
|
||||
"@azure/msal-node-extensions": "^1.5.23",
|
||||
"@azure/msal-node": "^3.8.3",
|
||||
"@azure/msal-node-extensions": "^1.5.25",
|
||||
"@vscode/extension-telemetry": "^0.9.8",
|
||||
"keytar": "file:./packageMocks/keytar",
|
||||
"vscode-tas-client": "^0.1.84"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { AuthError } from '@azure/msal-node';
|
||||
import { AuthError, ClientAuthError } from '@azure/msal-node';
|
||||
import TelemetryReporter, { TelemetryEventProperties } from '@vscode/extension-telemetry';
|
||||
import { IExperimentationTelemetry } from 'vscode-tas-client';
|
||||
|
||||
@@ -108,6 +108,40 @@ export class MicrosoftAuthenticationTelemetryReporter implements IExperimentatio
|
||||
});
|
||||
}
|
||||
|
||||
sendTelemetryClientAuthErrorEvent(error: ClientAuthError): void {
|
||||
const errorCode = error.errorCode;
|
||||
const correlationId = error.correlationId;
|
||||
let brokerErrorCode: string | undefined;
|
||||
let brokerStatusCode: string | undefined;
|
||||
let brokerTag: string | undefined;
|
||||
|
||||
// Extract platform broker error information if available
|
||||
if (error.platformBrokerError) {
|
||||
brokerErrorCode = error.platformBrokerError.errorCode;
|
||||
brokerStatusCode = `${error.platformBrokerError.statusCode}`;
|
||||
brokerTag = error.platformBrokerError.tag;
|
||||
}
|
||||
|
||||
/* __GDPR__
|
||||
"msalClientAuthError" : {
|
||||
"owner": "TylerLeonhardt",
|
||||
"comment": "Used to determine how often users run into client auth errors during the login flow.",
|
||||
"errorCode": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The client auth error code." },
|
||||
"correlationId": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The client auth error correlation id." },
|
||||
"brokerErrorCode": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The broker error code." },
|
||||
"brokerStatusCode": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The broker error status code." },
|
||||
"brokerTag": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The broker error tag." }
|
||||
}
|
||||
*/
|
||||
this._telemetryReporter.sendTelemetryErrorEvent('msalClientAuthError', {
|
||||
errorCode,
|
||||
correlationId,
|
||||
brokerErrorCode,
|
||||
brokerStatusCode,
|
||||
brokerTag
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an event for an account type available at startup.
|
||||
* @param scopes The scopes for the session
|
||||
|
||||
@@ -522,7 +522,11 @@ export class MsalAuthProvider implements AuthenticationProvider {
|
||||
} catch (e) {
|
||||
// If we can't get a token silently, the account is probably in a bad state so we should skip it
|
||||
// MSAL will log this already, so we don't need to log it again
|
||||
this._telemetryReporter.sendTelemetryErrorEvent(e);
|
||||
if (e instanceof ClientAuthError) {
|
||||
this._telemetryReporter.sendTelemetryClientAuthErrorEvent(e);
|
||||
} else {
|
||||
this._telemetryReporter.sendTelemetryErrorEvent(e);
|
||||
}
|
||||
this._logger.info(`[getAllSessionsForPca] [${scopeData.scopeStr}] [${account.username}] failed to acquire token silently, skipping account`, JSON.stringify(e));
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user