in src/Saas.Lib/Saas.Identity/Provider/SaasGraphClientCredentialsProvider.cs [9:38]
public class SaasGraphClientCredentialsProvider<TOptions>(
SaasApiAuthenticationProvider<ISaasMicrosoftGraphApi, TOptions> authProvider,
ILogger<SaasGraphClientCredentialsProvider<TOptions>> logger) : IAuthenticationProvider
where TOptions : AzureAdB2CBase
{
private readonly ILogger _logger = logger;
private readonly SaasApiAuthenticationProvider<ISaasMicrosoftGraphApi, TOptions> _authProvider = authProvider;
// https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/loggermessage?view=aspnetcore-8.0
private static readonly Action<ILogger, Exception> _logError = LoggerMessage.Define(
LogLevel.Error,
new EventId(1, nameof(SaasGraphClientCredentialsProvider<TOptions>)),
"Client Assertion Signing Provider");
public async Task AuthenticateRequestAsync(
RequestInformation request,
Dictionary<string, object>? additionalAuthenticationContext = null,
CancellationToken cancellationToken = default)
{
try
{
request.Headers.Add("Authorization", $"bearer { await _authProvider.GetAccessTokenAsync() }");
}
catch (Exception ex)
{
_logError(_logger, ex);
throw;
}
}
}