Skip to content

Commit 92be713

Browse files
committed
Update auth
1 parent a731e26 commit 92be713

3 files changed

Lines changed: 24 additions & 15 deletions

File tree

application/CohortManager/src/Functions/Shared/Common/Authentication/JwtAuthentication.cs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ namespace Common;
33
using Microsoft.IdentityModel.Protocols;
44
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
55
using Microsoft.Extensions.Options;
6-
using HttpRequestData = Microsoft.Azure.Functions.Worker.Http.HttpRequestData; // Alias to avoid confusion with Microsoft.IdentityModel.Protocols
76
using Microsoft.IdentityModel.Tokens;
87
using System.IdentityModel.Tokens.Jwt;
98
using Microsoft.Extensions.Logging;
@@ -28,18 +27,37 @@ public JWTAuthentication(IOptions<AuthConfig> authConfig, ILogger<JWTAuthenticat
2827

2928
public async Task<bool> ValidateTokenAsync(string token)
3029
{
30+
if (string.IsNullOrWhiteSpace(token))
31+
{
32+
_logger.LogWarning("Token is missing");
33+
return false;
34+
}
35+
3136
try
3237
{
38+
var handler = new JwtSecurityTokenHandler();
39+
if (!handler.CanReadToken(token))
40+
{
41+
_logger.LogWarning("Token is not a valid JWT format");
42+
return false;
43+
}
44+
3345
var oidcConfig = await _configurationManager.GetConfigurationAsync();
3446
var validatorParam = new TokenValidationParameters
3547
{
48+
ValidateIssuer = true,
3649
ValidIssuer = oidcConfig.Issuer,
50+
ValidateAudience = true,
3751
ValidAudience = _authConfig.ClientId,
38-
IssuerSigningKeys = oidcConfig.SigningKeys
52+
ValidateIssuerSigningKey = true,
53+
IssuerSigningKeys = oidcConfig.SigningKeys,
54+
ValidateLifetime = true,
55+
RequireExpirationTime = true,
56+
RequireSignedTokens = true,
57+
ClockSkew = TimeSpan.FromMinutes(1)
3958
};
4059

41-
var handler = new JwtSecurityTokenHandler();
42-
handler.ValidateToken(token, validatorParam, out var validatedToken);
60+
_ = handler.ValidateToken(token, validatorParam, out _);
4361
return true;
4462

4563
}

application/CohortManager/src/Functions/Shared/Common/Extensions/AuthenticationExtension.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ public static IHostBuilder AddAuthentication(this IHostBuilder hostBuilder)
1515
});
1616
hostBuilder.ConfigureServices((context, services) =>
1717
{
18-
19-
//services.AddSingleton<IAuthenticationService, JWTAuthentication>();
18+
services.AddSingleton<IAuthenticationService, JWTAuthentication>();
2019
});
2120
return hostBuilder;
2221
}

application/CohortManager/src/Functions/screeningDataServices/GetValidationExceptions/Program.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,13 @@
1010

1111
var host = new HostBuilder()
1212
.AddConfiguration<GetValidationExceptionsConfig>(out GetValidationExceptionsConfig config)
13-
.AddConfiguration<AuthConfig>()
14-
.ConfigureFunctionsWorkerDefaults(
15-
workerOptions =>
16-
{
17-
workerOptions.UseMiddleware<CIS2AuthMiddleware>();
18-
}
19-
)
13+
.AddAuthentication()
2014
.AddDataServicesHandler()
2115
.AddDataService<ExceptionManagement>(config.ExceptionManagementDataServiceURL)
2216
.AddDataService<ParticipantDemographic>(config.DemographicDataServiceURL)
2317
.Build()
24-
//.AddAuthentication()
2518
.ConfigureServices(services =>
2619
{
27-
services.AddSingleton<IAuthenticationService, JWTAuthentication>();
2820
services.AddTransient<IValidationExceptionData, ValidationExceptionData>();
2921
services.AddSingleton<ICreateResponse, CreateResponse>();
3022
services.AddSingleton<IHttpParserHelper, HttpParserHelper>();

0 commit comments

Comments
 (0)