Skip to content

Commit f46153c

Browse files
Filling ou tthe AT PoP skeleton
1 parent ffaf698 commit f46153c

File tree

3 files changed

+28
-99
lines changed

3 files changed

+28
-99
lines changed

src/Authentication/Authentication.Core/Utilities/AuthenticationHelpers.cs

+28-9
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,32 @@ private static async Task<InteractiveBrowserCredential> GetInteractiveBrowserCre
136136
if (IsATPoPSupported())
137137
{
138138
// Logic to implement ATPoP Authentication
139-
var client = new PopClient(interactiveBrowserCredential, authContext, new PopClientOptions()
140-
{
141-
Diagnostics =
142-
{
143-
IsLoggingContentEnabled = true,
144-
LoggedHeaderNames = { "Authorization" }
145-
}
139+
authRecord = await Task.Run(() =>
140+
{
141+
var popTokenAuthenticationPolicy = new PopTokenAuthenticationPolicy(interactiveBrowserCredential as ISupportsProofOfPossession, $"https://graph.microsoft.com/.default");
142+
143+
var pipelineOptions = new HttpPipelineOptions(new PopClientOptions()
144+
{
145+
Diagnostics =
146+
{
147+
IsLoggingContentEnabled = true,
148+
LoggedHeaderNames = { "Authorization" }
149+
},
150+
});
151+
pipelineOptions.PerRetryPolicies.Add(popTokenAuthenticationPolicy);
152+
153+
var _pipeline = HttpPipelineBuilder.Build(pipelineOptions, new HttpPipelineTransportOptions { ServerCertificateCustomValidationCallback = (_) => true });
154+
using var request = _pipeline.CreateRequest();
155+
request.Method = RequestMethod.Get;
156+
request.Uri.Reset(new Uri("https://20.190.132.47/beta/me"));
157+
var response = _pipeline.SendRequest(request, cancellationToken);
158+
var message = new HttpMessage(request, new ResponseClassifier());
159+
160+
// Manually invoke the authentication policy's process method
161+
popTokenAuthenticationPolicy.ProcessAsync(message, ReadOnlyMemory<HttpPipelinePolicy>.Empty);
162+
// Run the thread in MTA.
163+
return interactiveBrowserCredential.Authenticate(new TokenRequestContext(authContext.Scopes), cancellationToken);
146164
});
147-
//var response = client.Get(new Uri("https://20.190.132.47/beta/me"), CancellationToken.None);
148-
authRecord = client.GetAuthRecord();
149165
}
150166
else
151167
{
@@ -471,4 +487,7 @@ public static Task DeleteAuthRecordAsync()
471487
return Task.CompletedTask;
472488
}
473489
}
490+
internal class PopClientOptions : ClientOptions
491+
{
492+
}
474493
}

src/Authentication/Authentication.Core/Utilities/PopClient.cs

-88
This file was deleted.

src/Authentication/Authentication.Core/Utilities/PopClientOptions.cs

-2
This file was deleted.

0 commit comments

Comments
 (0)