Я пытаюсь добавить проверку токена на предъявителя в мое веб-приложение ASP.NET. Я использую встроенный код аутентификации JWT, настроенный для использования следующего кода ...
services.AddAuthentication(ConfigureAuthentication).AddJwtBearer(ConfigureJwt);
, который выполняет следующие функции ...
private void ConfigureAuthentication(AuthenticationOptions options)
{
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}
private void ConfigureJwt(JwtBearerOptions options)
{
var directoryId = Configuration["AzureAd:DirectoryId"];
var directoryName = Configuration["AzureAd:DirectoryName"];
var policy = Configuration["AzureAd:SigninPolicyName"];
options.Audience = Configuration["AzureAd:ApplicationId"];
options.Authority = $"https://{directoryName}.b2clogin.com/{directoryName}.onmicrosoft.com/v2.0";
}
Метод ConfigureJwt
- это тот, с которым я имею дело. Я не могу получить базовый код JWT для получения openid-configuration
с соответствующего URL. Это очень близко, но ему не хватает политики из URL. Вот что генерирует мой код выше и пытается извлечь openid-configuration
из ...
https://example-directory.b2clogin.com/example-directory.onmicrosoft.com/v2.0/.well-known/openid-configuration
А вот из чего предполагается получить конфигурацию, указанную на портале Azure ...
https://example-directory.b2clogin.com/example-directory.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1_SignInPolicy
Как видите, в моем коде выше отсутствует название политики.
Я не могу понять, как это указать где-либо. Кто-нибудь знает, как настроить JwtBearerOptions
, чтобы он включал это имя политики?