Я использую AzureAD в приложении asp.net core 2. Я хочу использовать cookie и аутентификацию на предъявителя. У меня есть следующий код в файле запуска:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
//options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options))
.AddAzureADBearer(options => Configuration.Bind("AzureAdClient", options));
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), sqlServerOptions => sqlServerOptions.CommandTimeout(120)));
//services.AddMvc();
services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
//options.Filters.Add(new AuthorizeFilter(policy));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
Я добавил авторизованный атрибут как:
[Authorize(AuthenticationSchemes = "AzureADBearer")]
Теперь при ударе от почтальона я могу получить токен на предъявителя, но когда я использую этот токен для доступа к этому API, я получаю ошибку недопустимой подписи:
WWW-Authenticate → Ошибка носителя = "invalid_token", error_description = "Подпись недействительна"
Есть идеи?