Привет! Я пытаюсь протестировать простое приложение WebApi с токеном JWT. В основном, я следовал примеру здесь
Я использую https.
В настоящее время Авторизация не используется. Проблема в том, что все работает нормально, если я выбираю «Inherit auth from parent» в Почтальон .
Как только я изменяю опцию на «BearerToken» и пытаюсь ввести JSONWebToken, который я получил , это дает мне
System.InvalidOperationException: IDX20803: Невозможно получить конфигурацию из: 'https://localhost: 44387 / api / .well-known / openid-configuration '. ---> System.IO.IOException: IDX20804: невозможно получить документ из: 'https://localhost: 44387 / api / .well-known / openid-configuration '. ---> Система. Net .Http.HttpRequestException: Код состояния ответа не указывает на успешность: 404 (Не найдено). в System. Net .Http.HttpResponseMessage.EnsureSuccessStatusCode () в Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsyn c (строковый адрес, отмена CancellationToken) --- конец трассировки стека внутренних исключений --- в Microsoft.I .Protocols.HttpDocumentRetriever.GetDocumentAsyn c (Строковый адрес, CancellationToken cancel)
Обратите внимание, я не использую промежуточное программное обеспечение IdentityServer здесь, а также в браузере, я не могу для просмотра https://localhost: 44387 / api / .well-known / openid-configuration
Я не уверен, где находится "openid-configuration" , особенно, если я не использую его явно в своем как pnet Core 3.0 веб-приложении APi? Вот мой код ..
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
//extra code removed for brevity
//Authentication
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.Authority = "https://localhost:44387/api";
options.Audience = "JWT:Issuer";
options.TokenValidationParameters.ValidateLifetime = true;
options.TokenValidationParameters.ClockSkew = TimeSpan.FromMinutes(5);
options.RequireHttpsMetadata = false;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
//to send HTTP Strict Transport Security Protocol (HSTS) headers to clients.
app.UseHsts();
}
//to redirect HTTP requests to HTTPS.
app.UseHttpsRedirection();
app.UseAuthentication();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
});
}
Вместо https://localhost: 44387 / api Я также пытался https://localhost: 44387 / и https://localhost но не повезло .. Я в основном пытаюсь понять почему openid появляется, когда я его вообще не использовал. Все на моем локальном компьютере, и я использую IIS Express.
Я также попытался удалить и восстановить SSL-сертификаты localhost, восстановив IIS Express.
Любая подсказка будет полезна.