Skip to content

Commit 8c03bb3

Browse files
Imdsv2: Generate CSR and execute CSR request (#5427)
1 parent 024e7b4 commit 8c03bb3

20 files changed

+670
-56
lines changed

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<PackageVersion Include="System.ComponentModel.TypeConverter" Version="4.3.0" />
1818
<!-- Should match Azure Functions runtime: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/4456 -->
1919
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="6.0.1" />
20+
<PackageVersion Include="System.Formats.Asn1" Version="9.0.8" />
2021
<PackageVersion Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
2122
<PackageVersion Include="System.Net.NameResolution" Version="4.3.0" />
2223
<PackageVersion Include="System.Runtime.Serialization.Formatters" Version="4.3.0" />
@@ -80,6 +81,5 @@
8081
<PackageVersion Include="System.ValueTuple" Version="4.5.0" />
8182
<PackageVersion Include="System.Windows.Forms" Version="4.0.0" />
8283
<PackageVersion Include="CommandLineParser" Version="2.8.0" />
83-
<PackageVersion Include="System.Formats.Asn1" Version="9.0.0" />
8484
</ItemGroup>
8585
</Project>

src/client/Microsoft.Identity.Client/ManagedIdentity/AbstractManagedIdentity.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public virtual async Task<ManagedIdentityResponse> AuthenticateAsync(
5555
// Convert the scopes to a resource string.
5656
string resource = parameters.Resource;
5757

58-
ManagedIdentityRequest request = CreateRequest(resource);
58+
ManagedIdentityRequest request = await CreateRequestAsync(resource).ConfigureAwait(false);
5959

6060
// Automatically add claims / capabilities if this MI source supports them
6161
if (_sourceType.SupportsClaimsAndCapabilities())
@@ -149,7 +149,7 @@ protected virtual Task<ManagedIdentityResponse> HandleResponseAsync(
149149
throw exception;
150150
}
151151

152-
protected abstract ManagedIdentityRequest CreateRequest(string resource);
152+
protected abstract Task<ManagedIdentityRequest> CreateRequestAsync(string resource);
153153

154154
protected ManagedIdentityResponse GetSuccessfulResponse(HttpResponse response)
155155
{

src/client/Microsoft.Identity.Client/ManagedIdentity/AppServiceManagedIdentitySource.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
// Licensed under the MIT License.
33

44
using System;
5-
using System.Collections.Generic;
65
using System.Globalization;
7-
using Microsoft.Identity.Client.ApiConfig.Parameters;
6+
using System.Threading.Tasks;
87
using Microsoft.Identity.Client.Core;
98
using Microsoft.Identity.Client.Internal;
10-
using Microsoft.Identity.Client.Utils;
119

1210
namespace Microsoft.Identity.Client.ManagedIdentity
1311
{
@@ -66,7 +64,7 @@ private static bool TryValidateEnvVars(string msiEndpoint, ILoggerAdapter logger
6664
return true;
6765
}
6866

69-
protected override ManagedIdentityRequest CreateRequest(string resource)
67+
protected override Task<ManagedIdentityRequest> CreateRequestAsync(string resource)
7068
{
7169
ManagedIdentityRequest request = new(System.Net.Http.HttpMethod.Get, _endpoint);
7270

@@ -92,7 +90,7 @@ protected override ManagedIdentityRequest CreateRequest(string resource)
9290
break;
9391
}
9492

95-
return request;
93+
return Task.FromResult(request);
9694
}
9795
}
9896
}

src/client/Microsoft.Identity.Client/ManagedIdentity/AzureArcManagedIdentitySource.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,15 @@ private AzureArcManagedIdentitySource(Uri endpoint, RequestContext requestContex
7979
}
8080
}
8181

82-
protected override ManagedIdentityRequest CreateRequest(string resource)
82+
protected override Task<ManagedIdentityRequest> CreateRequestAsync(string resource)
8383
{
8484
ManagedIdentityRequest request = new ManagedIdentityRequest(System.Net.Http.HttpMethod.Get, _endpoint);
8585

8686
request.Headers.Add("Metadata", "true");
8787
request.QueryParameters["api-version"] = ArcApiVersion;
8888
request.QueryParameters["resource"] = resource;
8989

90-
return request;
90+
return Task.FromResult(request);
9191
}
9292

9393
protected override async Task<ManagedIdentityResponse> HandleResponseAsync(
@@ -119,7 +119,7 @@ protected override async Task<ManagedIdentityResponse> HandleResponseAsync(
119119

120120
var authHeaderValue = "Basic " + File.ReadAllText(splitChallenge[1]);
121121

122-
ManagedIdentityRequest request = CreateRequest(parameters.Resource);
122+
ManagedIdentityRequest request = await CreateRequestAsync(parameters.Resource).ConfigureAwait(false);
123123

124124
_requestContext.Logger.Verbose(() => "[Managed Identity] Adding authorization header to the request.");
125125
request.Headers.Add("Authorization", authHeaderValue);

src/client/Microsoft.Identity.Client/ManagedIdentity/CloudShellManagedIdentitySource.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System;
55
using System.Globalization;
66
using System.Net.Http;
7-
using Microsoft.Identity.Client.ApiConfig.Parameters;
7+
using System.Threading.Tasks;
88
using Microsoft.Identity.Client.Core;
99
using Microsoft.Identity.Client.Internal;
1010

@@ -74,7 +74,7 @@ private CloudShellManagedIdentitySource(Uri endpoint, RequestContext requestCont
7474
}
7575
}
7676

77-
protected override ManagedIdentityRequest CreateRequest(string resource)
77+
protected override Task<ManagedIdentityRequest> CreateRequestAsync(string resource)
7878
{
7979
ManagedIdentityRequest request = new ManagedIdentityRequest(HttpMethod.Post, _endpoint);
8080

@@ -83,7 +83,7 @@ protected override ManagedIdentityRequest CreateRequest(string resource)
8383

8484
request.BodyParameters.Add("resource", resource);
8585

86-
return request;
86+
return Task.FromResult(request);
8787
}
8888
}
8989
}

src/client/Microsoft.Identity.Client/ManagedIdentity/ImdsManagedIdentitySource.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ internal ImdsManagedIdentitySource(RequestContext requestContext) :
4343
requestContext.Logger.Verbose(() => "[Managed Identity] Creating IMDS managed identity source. Endpoint URI: " + _imdsEndpoint);
4444
}
4545

46-
protected override ManagedIdentityRequest CreateRequest(string resource)
46+
protected override Task<ManagedIdentityRequest> CreateRequestAsync(string resource)
4747
{
4848
ManagedIdentityRequest request = new(HttpMethod.Get, _imdsEndpoint);
4949

@@ -80,7 +80,7 @@ protected override ManagedIdentityRequest CreateRequest(string resource)
8080

8181
request.RequestType = RequestType.Imds;
8282

83-
return request;
83+
return Task.FromResult(request);
8484
}
8585

8686
public static KeyValuePair<string, string>? GetUserAssignedIdQueryParam(

src/client/Microsoft.Identity.Client/ManagedIdentity/MachineLearningManagedIdentitySource.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
using System;
55
using System.Globalization;
6-
using Microsoft.Identity.Client.ApiConfig.Parameters;
6+
using System.Threading.Tasks;
77
using Microsoft.Identity.Client.Core;
88
using Microsoft.Identity.Client.Internal;
99

@@ -64,7 +64,7 @@ private static bool TryValidateEnvVars(string msiEndpoint, ILoggerAdapter logger
6464
return true;
6565
}
6666

67-
protected override ManagedIdentityRequest CreateRequest(string resource)
67+
protected override Task<ManagedIdentityRequest> CreateRequestAsync(string resource)
6868
{
6969
ManagedIdentityRequest request = new(System.Net.Http.HttpMethod.Get, _endpoint);
7070

@@ -108,7 +108,7 @@ protected override ManagedIdentityRequest CreateRequest(string resource)
108108
null); // statusCode is null in this case
109109
}
110110

111-
return request;
111+
return Task.FromResult(request);
112112
}
113113
}
114114
}

src/client/Microsoft.Identity.Client/ManagedIdentity/ManagedIdentityClient.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Microsoft.Identity.Client.PlatformsCommon.Shared;
1010
using System.IO;
1111
using Microsoft.Identity.Client.Core;
12+
using Microsoft.Identity.Client.ManagedIdentity.V2;
1213

1314
namespace Microsoft.Identity.Client.ManagedIdentity
1415
{

src/client/Microsoft.Identity.Client/ManagedIdentity/ServiceFabricManagedIdentitySource.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using System.Net.Http;
77
using System.Net.Security;
88
using System.Security.Cryptography.X509Certificates;
9-
using Microsoft.Identity.Client.ApiConfig.Parameters;
9+
using System.Threading.Tasks;
1010
using Microsoft.Identity.Client.Core;
1111
using Microsoft.Identity.Client.Internal;
1212

@@ -75,7 +75,7 @@ private ServiceFabricManagedIdentitySource(RequestContext requestContext, Uri en
7575
}
7676
}
7777

78-
protected override ManagedIdentityRequest CreateRequest(string resource)
78+
protected override Task<ManagedIdentityRequest> CreateRequestAsync(string resource)
7979
{
8080
ManagedIdentityRequest request = new ManagedIdentityRequest(HttpMethod.Get, _endpoint);
8181

@@ -102,7 +102,7 @@ protected override ManagedIdentityRequest CreateRequest(string resource)
102102
break;
103103
}
104104

105-
return request;
105+
return Task.FromResult(request);
106106
}
107107
}
108108
}

0 commit comments

Comments
 (0)