Я столкнулся со следующим сценарием: у меня есть ASP. NET Core WebAPI (ресурс API, который я пытаюсь защитить), размещенный на той же машине, что и IdentityServer, и у меня есть клиенты вне моей сети который связывается с обоими через их публичные c адреса (например: https://myapi.com и https://myidentity.com).
Мне было интересно, можно ли установить API для связи с IdentityServer через адрес локального хоста (например: http://localhost: 5000 ), в то время как внешние клиенты поддерживают связь с обоими через свои публичные c адреса?
I ' Мы пытались изменить свойство IdentityServer Authority для использования адреса localhost:
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options =>
{
options.Authority = http://localhost:5000;
options.ApiName = apiName;
});
Но я получаю следующую ошибку, когда API пытается проверить токен, полученный от клиента:
Bearer error="invalid_token", error_description="The issuer 'https://myidentity.com' is invalid"
Это имеет смысл, поскольку токен был выдан https://myidentity.com
, а мой API имеет полномочия http://localhost:5000
.
Есть идеи?