Я следую инструкциям по быстрому запуску IdentityServer4 для настройки защищенного API и доступа к нему с помощью клиента ( Образец 2 ). Я использую .Net Core + Docker для Windows (контейнеры Windows) для запуска моего тестового приложения.
Настройка должна выглядеть примерно так:
Когда я звоню https://<identity-url>/.well-known/openid-configuration
, я получаю конфигурацию, но с заранее известной страницей "небезопасно - ты уверен".
API 1
защищен:
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options =>
{
options.Authority = "https://<identity-url>";
options.RequireHttpsMetadata = this.Environment.IsProduction();
options.ApiName = "api1";
});
и Config.cs
(в IdentityServer
) в соответствии с документацией по быстрому запуску.
Проблема:
Когда я пытаюсь позвонить API 1
с моего Client
, мне нужно сначала получить доступ к IdentityServer
(в соответствии с быстрым стартом) с помощью:
var disco = await DiscoveryClient.GetAsync("https://<identity-url>");
if (disco.IsError)
{
Console.WriteLine(disco.Error);
return BadRequest(disco.Exception);
}
Это приводит к этой ошибке
Удаленный сертификат недействителен в соответствии с проверкой
процедура.
Я использую сертификаты по умолчанию от .net core templates for web applications
и думаю, что проблема как-то связана с тем, что сертификат самоподписан. Это правильно?
Как правильно доверять самозаверяющему сертификату в другом контейнере, чтобы можно было установить соединение?