OpenIdConnect перенаправляет на http вместо httpsC#

Место общения программистов C#
Ответить
Anonymous
 OpenIdConnect перенаправляет на http вместо https

Сообщение Anonymous »

У меня возникла проблема с интеграцией веб-приложения ASP.NET CORE 5.0 с OKTA.
Моей компании необходимо, чтобы все веб-приложения были интегрированы с OKTA. Это приложение, о котором я писал, размещено в кластере Fargate как контейнер Linux (и для использования HTTPS будет использовать сертификат Application Load Balancer + AWS). Контейнер работает по HTTP и перенаправляется на HTTPS с помощью ALB.
Когда я получаю доступ к имени хоста приложения (https://exampleapp.companyname.com), он пытается перенаправить меня на следующую ссылку:
https://dev-1234567.okta.com/oauth2/def ... ope=openid profile email&code_challenge=xyz&code_challenge_method=S256&response_mode=form_post&nonce=xyz&x-client-ver=6.7.1.0

Как вы можете видеть, этот redirect_uri указывает мне на конечную точку http, что дает мне ошибку 400 (поскольку в Okta у меня не указан URI перенаправления входа в систему http, только HTTPS). >
Почему Okta пытается перенаправить меня на http://, когда я захожу на страницу с https://?
Если я попытаюсь добавить адрес http:// в URI входа в систему Okta, когда я пытаюсь получить доступ к странице эта ошибка происходит:
The information you’re about to submit is not secure

и когда я нажимаю кнопку «Все равно отправить», на странице отображается ошибка ASP.NET CORE:
System.Exception: An error was encountered while handling the remote login.
---> System.Exception: OpenIdConnectAuthenticationHandler: message.State is null or empty.
--- End of inner exception stack trace ---
at Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler`1.HandleRequestAsync()
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

Как заставить его работать в этой среде? На локальном хосте все работает как часы, HTTP и HTTPS. Раньше мне приходилось проделывать некоторые трюки с файлами cookie (SameSiteModes и т. д.), потому что на странице отображались ошибки корреляции.
Это мои службы ConfigurationServices в Startup.cs, используемые в проекте:public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();

services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
options.Cookie.SameSite = SameSiteMode.Lax;
})
.AddOpenIdConnect(options =>
{
options.NonceCookie.SecurePolicy = CookieSecurePolicy.Always;
options.CorrelationCookie.SecurePolicy = CookieSecurePolicy.Always;
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.Authority = oktaOrgUri;
options.RequireHttpsMetadata = true;
options.ClientId = oktaClientId;
options.ClientSecret = oktaClientSecret;
options.ResponseType = OpenIdConnectResponseType.Code;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("openid");
options.Scope.Add("profile");
options.Scope.Add("email");
options.SaveTokens = true;
options.TokenValidationParameters = new TokenValidationParameters
{
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(oktaClientSecret)),
NameClaimType = "name",
RoleClaimType = "groups",
ValidateIssuer = true
};
});

services.AddAuthorization();
}

oktaOrgUri = https://dev-1234567.okta.com/oauth2/default
oktaClientId and oktaClientSecret filled with values from Okta

Затем настройте в Startup.cs
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}

app.UseStaticFiles();

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}


Подробнее здесь: https://stackoverflow.com/questions/724 ... d-of-https
Ответить

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

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

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

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

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