Документ обнаружения IdentityServer4 возвращает 404 при развертывании в подчиненном маршруте за обратным прокси-сервером - PullRequest
0 голосов
/ 04 января 2019

Мне нужно изменить URL-адрес конечной точки обнаружения со следующего:

/.well-known/openid-configuration

на следующее:

/identity/.well-known/openid-configuration

Я пытаюсь развернуть ID4 в Azure Kubernetes Service.Все это прекрасно работает, когда я развертываю ID4 по корневому адресу (например, http://xxxx.europe.cloudapp.azure.com) - я вижу страницу приветствия и могу получить доступ к своей конечной точке обнаружения.

Однако, когда я развертываю ID4 в подчиненном канале(http://xxxx.europe.cloudapp.azure.com/identity) я не могу получить доступ к oidc-конфигурации. Я использую перезапись URL-адреса, поэтому при нажатии на ссылку для доступа к документу обнаружения (http://xxxx.europe.cloudapp.azure.com/identity/.well-known/openid-configuration) я получаю HTTP404.

РЕДАКТИРОВАТЬ:

при добавлении:

    app.Use(async (context, next) =>
    {
        context.Request.PathBase = "/identity";
        await next.Invoke();
    });

все файлы css / js / jpeg загружены правильно. Это прогресс.

Однако, когда я нажимаю на ссылку, видимую настраница приветствия ((http://xxxx.europe.cloudapp.azure.com/identity/.well-known/openid-configuration) я получаю HTTP404. Когда я нажимаю гранты ((http://xxxx.europe.cloudapp.azure.com/identity/grants). Это та же история. Удаление вручную "/ identity" из ссылки все равно приводит к 404.

Ответы [ 3 ]

0 голосов
/ 09 января 2019
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.Map("/identity", authApp =>
{
    app.UseStaticFiles("/identity");
    authApp.UsePathBase(new PathString("/identity"));
    authApp.UseIdentityServer();
});
}

Редактировать:

и стараться не использовать

app.UseHttpsRedirection()

оставить HTTPS для прокси-сервера

0 голосов
/ 14 января 2019

Благодаря ответам Видмантаса и Мохамеда мне удалось заставить его работать.Я использовал их советы, и вот что в итоге заставило меня работать:

         app.Map("/identity", authApp =>
        {
            authApp.UseStaticFiles();
            authApp.UseIdentityServer();
            authApp.UseMvcWithDefaultRoute();

        });

Каким-то образом это не сработало без

authApp.UseMvcWithDefaultRoute ();

У меня были некоторые проблемы в конфигурации шлюза istio.После их решения IS4 работает как шарм в подгруппе.Спасибо вам, ребята, за ваши ответы.

0 голосов
/ 04 января 2019

Вы должны иметь возможность использовать относительные URI, используя Map Api на IApplicationBuilder.

        app.Map("/identity", authApp =>
        {
            authApp.UseIdentityServer();
        });
...