in src/Infrastructure/Services/TokenProviderService.cs [18:45]
public TokenProviderService(IOptions<TokenProviderServiceSettings> settingsOption)
{
var settings = settingsOption.Value;
_scopes = new[] { settings.Resource + "/.default" };
if (string.IsNullOrEmpty(settings.CertificateThumbprint) && string.IsNullOrEmpty(settings.ClientSecret))
throw new InvalidOperationException("Configure the token provider settings in the appsettings.json file.");
if (settings.CertificateThumbprint != "" && settings.ClientSecret != "")
throw new InvalidOperationException("Only configure certificate or secret authenticate, not both, in the appsettings file.");
var builder = ConfidentialClientApplicationBuilder
.Create(settings.ClientId)
.WithAuthority(new Uri(settings.Authority));
if (settings.CertificateThumbprint != "")
{
var x509Cert = CertificateUtility.GetByThumbprint(settings.CertificateThumbprint);
builder = builder.WithCertificate(x509Cert);
}
else
{
builder = builder.WithClientSecret(settings.ClientSecret);
}
_tokenApp = builder.Build();
}