/ signin-oid c перенаправление не работает openid подключиться к Keycloak - PullRequest
0 голосов
/ 05 августа 2020

Примечание. Проблема заключается в моем производственном приложении, в котором установлен SSL. У меня есть приложение ASP. NET Core MVC, развернутое в веб-приложении Azure. Аутентификация выполняется через Keycloak с использованием подключения OpenID. Ниже мой код Startup.cs.

AddOpenIdConnect(options =>
        {
            // URL of the Keycloak server
            options.Authority = "{keycloak realm url}";
            // Client configured in the Keycloak
            options.ClientId = "{clientid}";

            // For testing we disable https (should be true for production)
            options.RequireHttpsMetadata = true;
            options.SaveTokens = true;
            options.MetadataAddress = "{keycloak metadata url}"

            // Client secret shared with Keycloak
            options.ClientSecret = "{clientsecret}"
            options.GetClaimsFromUserInfoEndpoint = true;

            // OpenID flow to use
            options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
        });

После завершения аутентификации URL-адрес перенаправления https: // {webapp} / signin-oid c дает ошибку ниже. Также сообщается, что «ПОДКЛЮЧЕНИЕ К ЭТОМ САЙТУ НЕ ЗАЩИЩЕНО», когда URL-адрес по-прежнему https.

ПРОБЛЕМА НЕПРЕРЫВНАЯ. ВРЕМЯ ПЕРЕНАПРАВЛЕНИЕ В ПРИЛОЖЕНИЕ ПРАВИЛЬНО.

500 ОШИБКА. ВЕБ-ПРИЛОЖЕНИЕ НЕ МОЖЕТ ОБРАТИТЬ ЗАПРОС

введите описание изображения здесь

Наблюдается один шаблон Впервые, если я открываю приложение в режиме инкогнито, пользователь правильно перенаправляется в приложение. и во второй раз, если я открою обычную вкладку, он будет правильно перенаправлен. НЕТ ПРОБЛЕМ

В первый раз, если я открываю приложение в обычной вкладке, выдает ошибку. Тогда последующие запросы в инкогнито или обычных вкладках также вызовут указанную ошибку.

Ответы [ 2 ]

0 голосов
/ 19 августа 2020

Это была ошибка в коде. Изменен тип ответа с CodeIdToken на IdToken

0 голосов
/ 05 августа 2020

Может быть, веб-приложение размещено в Azure, его HTTPS-трафик c завершается в облачной инфраструктуре, а затем расшифровывает трафик c и отправляет его по HTTP в ваше приложение.

Это означает, что ваше приложение видит только HTTP-трафик c, в то время как пользователи в publi c inte rnet видят HTTPS-трафик c?

Я думаю, что по умолчанию HTTPS завершается в Aure при использовании их инфраструктуры HTTPS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...