Мы пытаемся развернуть IdentityServer4 за обратным прокси. Документ обнаружения возвращает локальные URL-адреса, например
https://xxx.local/connect/token
Где нам нужно
https://xxx.domain.com/connect/token
В IdentityServer документы указывают нам на этой GitHub странице. Однако, когда мы настраиваем промежуточное ПО, как описано, мы не видим никаких изменений.
var options = new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
};
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
app.UseForwardedHeaders(options);
Аналогичная настройка найдена на этой странице github. Представленное решение использует nginx, поэтому, возможно, наша конфигурация iis отключена.
В IIS для прокси:
<serverVariables>
<set name="HTTP_X_ORIGINAL_REMOTE_ADDR" value="{REMOTE_ADDR}" />
<set name="HTTP_X_FORWARDED_PROTO" value="https" />
</serverVariables>
Любая помощь будет оценена по достоинству.
Внутри IDS запуска, где вы запускаете IDS, попробуйте следующий код
var builder = services.AddIdentityServer(options =>
{
...
options.PublicOrigin = "https://domainName.com";// <= try adding this!
...
})
Это заставит вашу конечную точку обнаружения быть вашим публичным IP. Дай мне знать, если это работает. я