You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core部署AWS EKS后OpenID Connect回调路径异常问题

.NET 6 EKS部署后OAM OpenID Connect认证失败问题排查与解决

核心问题梳理

本地运行正常的OAM OIDC认证,部署到AWS EKS后失败;将回调路径从/改为/test后,页面重定向到主页但认证流程未完成。以下是针对性的排查和修复方案:


1. 回调路径与重定向URL一致性校验

问题点

你的重定向URL为https://admin.aws.xxx.com/test,但代码中初始CallbackPath设为/,后续修改为/test后仍未完成认证,大概率是OAM控制台配置与代码中的RedirectUri不匹配。

修复步骤

  • 登录OAM控制台,检查已注册应用的重定向URL列表,确保包含https://admin.aws.xxx.com/test,必须与代码中生成的地址完全一致。
  • 代码中明确设置CallbackPath为/test:
    .AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
    {
        // ...其他配置
        options.CallbackPath = "/test"; // 与重定向URL的路径部分保持一致
        // ...其他配置
    });
    
  • 确认GetRedirectURL方法返回的是完整的https://admin.aws.xxx.com/test,而非仅路径。

2. 移除手动AuthorizationCode处理逻辑

问题点

你在OnAuthorizationCodeReceived事件中手动调用TokenClient兑换令牌,这会覆盖ASP.NET Core OIDC框架的默认处理流程,可能导致会话绑定、令牌存储等关键步骤缺失,进而无法完成认证。

修复步骤

注释或移除自定义的令牌兑换逻辑,让框架自动处理:

options.Events.OnAuthorizationCodeReceived = async context =>
{
    Log.Information("Authorization code received.");
    // 移除所有手动令牌请求代码,保留日志即可
    await Task.CompletedTask;
};

3. EKS环境Cookie配置验证

问题点

代码中设置了SameSiteMode.None和CookieSecurePolicy.Always,要求必须在HTTPS环境下运行。如果EKS的Ingress未正确配置SSL,会导致Cookie无法正常写入,认证会话无法建立。

修复步骤

  • 检查EKS Ingress配置,确保启用HTTPS并强制HTTP重定向:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      annotations:
        alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
        alb.ingress.kubernetes.io/ssl-redirect: '443'
        # 其他必要的ALB配置
    spec:
      tls:
        - hosts:
            - admin.aws.xxx.com
          secretName: your-ssl-secret
      rules:
        - host: admin.aws.xxx.com
          http:
            paths:
              - path: /
                pathType: Prefix
                backend:
                  service:
                    name: your-app-service
                    port:
                      number: 80
    
  • 确认Pod内部通过https://admin.aws.xxx.com访问应用,而非HTTP。

4. 日志与网络排查

  • 查看EKS Pod的日志,重点关注OnRemoteFailure、OnAuthorizationCodeReceived中的错误信息,确认是令牌兑换失败、回调URL不匹配还是网络问题。
  • 检查OAM服务器的日志,查看是否有回调URL校验失败、客户端凭证错误等记录。
  • 验证EKS Pod能否正常访问OAM的元数据地址(Authentication:OAM:MetadataAddress),是否存在网络策略或安全组限制。

5. 配置参数一致性检查

确认EKS环境中的配置文件/环境变量与本地一致:

  • Authentication:OAM:ClientId、Authentication:OAM:ClientSecret是否正确
  • Authentication:OAM:MetadataAddress是否可访问
  • Authentication:OAM:RedirectUrl是否准确设置为https://admin.aws.xxx.com/test

内容的提问来源于stack exchange,提问作者Titan1818

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:33:12