@@ -6,7 +6,7 @@ import { MachineWorkflow } from './machine_workflow';
66
77/** Base URL for getting Azure tokens. */
88const AZURE_BASE_URL =
9- 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01 ' ;
9+ 'http://169.254.169.254/metadata/identity/oauth2/token?' ;
1010
1111/** Azure request headers. */
1212const AZURE_HEADERS = Object . freeze ( { Metadata : 'true' , Accept : 'application/json' } ) ;
@@ -41,7 +41,7 @@ export class AzureMachineWorkflow extends MachineWorkflow {
4141 */
4242 async getToken ( credentials ?: MongoCredentials ) : Promise < string > {
4343 const tokenAudience = credentials ?. mechanismProperties . TOKEN_AUDIENCE ;
44- const tokenClientId = credentials ?. mechanismProperties . TOKEN_CLIENT_ID ;
44+ const username = credentials ?. username ;
4545 if ( ! tokenAudience ) {
4646 throw new MongoAzureError ( TOKEN_AUDIENCE_MISSING_ERROR ) ;
4747 }
@@ -51,7 +51,7 @@ export class AzureMachineWorkflow extends MachineWorkflow {
5151 token = entry . token ;
5252 } else {
5353 this . cache . deleteEntry ( tokenAudience ) ;
54- const response = await getAzureTokenData ( tokenAudience , tokenClientId ) ;
54+ const response = await getAzureTokenData ( tokenAudience , username ) ;
5555 if ( ! isEndpointResultValid ( response ) ) {
5656 throw new MongoAzureError ( ENDPOINT_RESULT_ERROR ) ;
5757 }
@@ -67,13 +67,15 @@ export class AzureMachineWorkflow extends MachineWorkflow {
6767 */
6868async function getAzureTokenData (
6969 tokenAudience : string ,
70- tokenClientId ?: string
70+ username ?: string
7171) : Promise < AzureAccessToken > {
72- let url = `${ AZURE_BASE_URL } &resource=${ tokenAudience } ` ;
73- if ( tokenClientId ) {
74- url += `&client_id=${ tokenClientId } ` ;
72+ const url = new URL ( AZURE_BASE_URL ) ;
73+ url . searchParams . append ( 'api-version' , '2018-02-01' ) ;
74+ url . searchParams . append ( 'resource' , tokenAudience ) ;
75+ if ( username ) {
76+ url . searchParams . append ( 'object_id' , username ) ;
7577 }
76- const data = await request ( url , {
78+ const data = await request ( url . toString ( ) , {
7779 json : true ,
7880 headers : AZURE_HEADERS
7981 } ) ;
0 commit comments