我有一个 .Net Core 3.1 应用程序,托管在 AWS 中的 https 负载均衡器后面。对于外界来说,它是一个 https 站点,但对于 AWS 内部来说,它在平衡器后面的 http 上运行。
因此,OpenID Connect 中间件重定向到 HTTP 路径而不是 HTTPS。
有没有办法强制 OpenId Connect 使用 https 路径?
.AddOpenIdConnect("oidc", options =>
{
var oauthConfig = Configuration.GetSection("OAuthConfiguration").Get<OAuthConfiguration>();
options.Authority = oauthConfig.Authority;
options.ClientId = oauthConfig.ClientId;
options.ClientSecret = oauthConfig.ClientSecret;
options.ResponseType = "code";
options.GetClaimsFromUserInfoEndpoint = true;
options.SaveTokens = true;
options.CallbackPath = "/signin-oidc";
当发出授权请求时,会生成此重定向 uri
"RedirectUri": "http://demo.mysite.com/signin-oidc"
我无法硬核进入CallbackPath
因为我的应用程序运行多租户,并且 URL 根据路由而不同。
您可以强制提供商在 https 中重写您的回调 url,如下所示
option.Events = new OpenIdConnectEvents()
{
OnRedirectToIdentityProvider = context =>
{
var builder = new UriBuilder(context.ProtocolMessage.RedirectUri);
builder.Scheme = "https";
builder.Port = -1;
context.ProtocolMessage.RedirectUri = builder.ToString();
return Task.FromResult(0);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)