当前位置: 首页 > 知识库问答 >
问题:

使用Terraform和Helm部署的Nginx Ingress背后的IdentityServer 4:并非所有用户都可以登录

韦阳辉
2023-03-14

我有一个Kubernetes集群,我在其中部署了两个容器,分别带有一个网页(Asp.Net Core和Kestrel,React)和identity server 4。我使用的入口控制器是Nginx入口。identity server配置为对Azure Active Directory应用程序注册使用Oidc隐式流。一个用户可以成功登录该网页,另两个用户不能:他们看到502个错误或“无法访问网页”。nginx日志显示Oidc流正确运行到第二次调用/identityserver/External/Callback路径。目前还没有迹象表明为什么这些电话被剥夺了细节。

我试过的都是这两个答案,但都没有用。

12.25.114.244-[12.25.114.244]-[2019年8月8日:14:35:59 0000]“POST/identityserver/signin oidc HTTP/2.0”302 0https://login.microsoftonline.com/common/SAS/ProcessAuth“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134”2518 0.222[default-identityserver-9000]10.244。0.40:9000 0.220 302 8249f8f3ce72756bf8f2cfa1cc2faf3d 12.25。114.244-[12.25.114.244]-[2019年8月8日:14:35:59 0000]“-“000”https://login.microsoftonline.com/common/SAS/ProcessAuth“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134”5604 0.000[]---a162031b9747a7b9ff8d281265d62d4f 12.25。114.244-[12.25.114.244]-[2019年8月8日:14:35:59 0000]“-“000”https://login.microsoftonline.com/common/SAS/ProcessAuth“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134”5870 0.000[]--6f2e99f98fdb7cb367134572fbf52c37 12.25。114.244-[12.25.114.244]-[2019年8月8日:14:35:59 0000]“-“000”https://login.microsoftonline.com/common/SAS/ProcessAuth“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134”5870 0.000[]---2837E78E72E64EF64EDD27078AE6B2BbB 12.25。114.244-[12.25.114.244]-[2019年8月8日:14:35:59 0000]“-“000”https://login.microsoftonline.com/common/SAS/ProcessAuth“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134”5870 0.000[]---1De946ED242F391ADFB78BB9F72BFDC 12.25。114.244-[12.25.114.244]-[2019年8月8日:14:35:59 0000]“-“000”https://login.microsoftonline.com/common/SAS/ProcessAuth“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134”5870 0.000[]----4b441be747adb2c29f10d55568dc4e64 12.25。114.244-[12.25.114.244]-[2019年8月8日:14:36:00 0000]“-“000”https://login.microsoftonline.com/common/SAS/ProcessAuth“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134”5870 0.000[]---dce572bd77990586010372c156fff9be 12.25。114.244-[12.25.114.244]-[2019年8月8日:14:36:00 0000]“-“000”https://login.microsoftonline.com/common/SAS/ProcessAuth“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134”5870 0.000[]---fc2094d7a449925eccc9b525f908b477

关于为什么两个用户不能登录而另一个可以登录,我有什么遗漏吗?

后期编辑:需要在此处添加完整图片的部分。Terraform用于部署到Kubernetes,使用一个头盔提供者和一个用于Nginx入口的头盔图表。

共有1个答案

萧星火
2023-03-14

这两个答案以及Github问题都很有用,但Terraform需要一个模板文件来指定这些注释和配置值。以下是我的结论:

data "template_file" "nginx-ingress" {
    template = <<EOF
controller:
  config: 
    http2-max-field-size: "16k"
    http2-max-header-size: "64k"
    proxy-buffer-size: "64k"
EOF
}

并且helm_release提供程序需要设置其

resource "helm_release" "nginx_ingress" {
  values = [
    "${data.template_file.nginx-ingress.rendered}"
  ]
}
 类似资料:
  • CATALINA_OPTS=“-dcom.sun.management.jmxremote-dcom.sun.management.jmxremote.port=6969-dcom.sun.management.jmxremote.ssl=false-dcom.sun.management.jmxremote.authenticate=false${CATALINA_OPTS}” 并使用jcons

  • 我正在尝试使用Kubernetes helm图表实现Kubernetes服务部署。实际上,我正在使用Jenkins管道作业进行部署。Jenkins安装在Kubernetes集群的外侧。所以如果我在安装Jenkins的机器中使用Helm,那么我可以在Jenkins管道作业中使用Helm部署命令吗? 如果我在一个Jenkins管道作业中调用“helm install”命令?它是否部署到远程Kubern

  • 快速启动 $ cd ./script/server/helm/seata-server $ helm install seata-server ./seata-server 自定义配置 环境变量 支持的环境变量和 Docker 相同,可以参考 使用 Docker 部署 Seata Server 使用自定义配置文件 指定配置文件可以通过挂载的方式实现,如将/root/workspace/seata

  • 我正在研究Terraform以及如何使用它来设置AWS环境。到目前为止,我已经有了用3个公共子网、3个私有子网、一个互联网网关和3个Nat网关设置VPC的脚本。然而,我对如何在私有子网中部署和重新部署应用程序感到困惑? 在我的场景中,我们使用Spring Boot构建微服务。我们的想法是转移到一种状态,在这种状态下,我们可以将弹性负载平衡器连接到公共子网,并在私有子网中的自动缩放组中承载我们的应用

  • 在将新版本部署到谷歌之后。玩启用的崩溃报告(由Crashlytics)我看到关于奇怪崩溃的报告: 活动在Intent中启动时不需要参数。但是这个活动没有导出(没有意图过滤器,没有显式的在清单中) 意向服务也一样 奇怪的是: 用户在应用程序首次启动时设置的一些参数没有设置(这些参数总是在正常崩溃报告中显示)。如果不设置它们,应用程序将无法工作,用户也无法到达该活动/服务的启动点 这三种错误都具有这些

  • 我有10个消费者和10个分区。我取分区数 并且使用相同的group.id创建相同数量的消费者。 我也发现很少这样的日志->