Keycloak поддерживает циклы приложений ASP.net после аутентификации.C#

Место общения программистов C#
Ответить
Anonymous
 Keycloak поддерживает циклы приложений ASP.net после аутентификации.

Сообщение Anonymous »

Моя программа недавно начала поддерживать Keycloak, и я делаю все возможное, чтобы изучить его, одновременно выполняя другие задачи. Однако недавно я столкнулся с проблемой, которую просто не могу решить.
Настройка: У нас есть приложение ASP.NET, размещенное на экземпляре IIS виртуальной машины. Привязки являются базовыми, без имени хоста, с использованием http и порта 80.
Проблема: Если Keycloak не применяется, веб-приложение может быть запущено на локальном хосте или http://VirtualMachineHostname. Однако, когда Keycloak применяется после аутентификации (экран входа), система войдет в цикл вызовов http://VirtualMachineHostname/signin-oidc и http://KeycloakServer.net:29480/realms/ ... VirtualMac hineHostname%2Fsignin-oidc&response_type=code%20id_token%20token&scope=openid%20profile&response_mode=form_post&nonce=
Я недостаточно хорошо разбираюсь в этой области, чтобы определить проблему. Кажется, что он получает токен, но затем при перенаправлении он зацикливается. Моя «кишка» подсказывает мне, что проблема заключается в том, что он пытается перенаправить обратно на «VirtualMachineHostname», но вместо этого нажимает «localhost», но URL-адрес перенаправления показывает «VirtualMachineHostname», как и ожидалось. Мы также не настраиваем явно вход в систему, позволяя это обрабатывать через пользовательский интерфейс Keycloak, в отличие от выхода из системы, у которого есть контроллер и связанные методы для очистки учетных данных и перенаправления после выхода из системы.
Настройки Keycloak
  • Действительные URI перенаправления после выхода из системы = '+'
  • Web Origins = '+'
  • Действительные URI перенаправления = «http://localhost/» и «http://VirtualMachineHostname/»
Ниже приведен основной блок кода для аутентификации Keycloak
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})

.AddCookie(opt =>
{
opt.ExpireTimeSpan = TimeSpan.FromMinutes(Convert.ToInt32(Configuration["Keycloak:cookie-timeout"]));
})
.AddOpenIdConnect(options =>
{
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.Authority = $"{Configuration["Keycloak:auth-server-url"]}realms/{Configuration["Keycloak:realm"]}";
options.ClientId = Configuration["Keycloak:resource"];
options.ResponseType = OpenIdConnectResponseType.CodeIdTokenToken;
options.UsePkce = true;
options.Scope.Add("profile");
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters() { RoleClaimType = "roles" };

options.SignedOutCallbackPath = "/signout-callback-oidc";
});

var requireAuthPolicy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
services.AddAuthorizationBuilder().SetFallbackPolicy(requireAuthPolicy);


Подробнее здесь: https://stackoverflow.com/questions/797 ... entication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»