У меня возникла проблема с интеграцией веб-приложения 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
OpenIdConnect перенаправляет на http вместо https ⇐ C#
Место общения программистов C#
-
Anonymous
1736246815
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/default/v1/authorize?client_id=xyz&redirect_uri=http://exampleapp.companyname.com/signin-oidc&response_type=code&scope=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();
});
}
Подробнее здесь: [url]https://stackoverflow.com/questions/72488243/openidconnect-redirects-to-http-instead-of-https[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия