【问题标题】:Kubernetes and AAD authenticationKubernetes 和 AAD 身份验证
【发布时间】:2018-12-17 21:47:43
【问题描述】:

在已配置的 AKS 上,有一个带有应用程序的 docker 容器正在使用 AAD 身份验证。

基于this article 还配置了入口。 API 运行良好。

当我使用 https 前缀添加到 Azure Active Directory 应用程序注册回复 URL 时,我收到错误“请求中指定的回复 url 与为应用程序配置的回复 url 不匹配”。我看到在浏览器地址行中,redirect_uri 以 http 开头。

当我添加以 http 开头的回复 URL 时,我收到“异常:关联失败”。

我尝试过的:添加到 ingress.yaml 设置 ingress.kubernetes.io/force-ssl-redirect: "true"

可能有一些方法可以强制入口运行 https 而不是 http,或者可能有一些 AAD 重定向配置?有什么想法吗?

更新 2:http 重定向可能是因为 ADAL。

PS:没有答案就可以找到similar topic

更新3: 我决定不使用 nginx 作为入口。相反,我现在正在使用负载均衡器。很快就可以使用 Azure 应用程序网关入口控制器

【问题讨论】:

  • 将所有回复网址改为https?
  • @4c74356b41,您是指 AAD 应用注册中的所有回复网址吗?没用
  • 不知道具体怎么做,但你必须让认证位将redirect_uri设置为https。

标签: azure-active-directory kubernetes-ingress azure-aks


【解决方案1】:

你试过了吗?

默认情况下,如果为该 Ingress 启用了 TLS,控制器会使用 308 永久重定向响应将 HTTP 客户端重定向到 HTTPS 端口 443。

这可以在 NGINX 配置映射中使用 ssl-redirect: "false" 全局禁用,或者在特定资源中使用 nginx.ingress.kubernetes.io/ssl-redirect: "false" 注释在每个 Ingress 中禁用。

有关此on the Ingress documentation link 的更多信息。

【讨论】:

  • 谢谢你,@mihail-stancescu 这很好,我以前没试过。但仍然没有解决方案。
  • 如上所述,它开箱即用地重定向,我发现 nginx 入口和 AAD 在使用正则表达式stackoverflow.com/a/58521497/7061494时可以工作
【解决方案2】:

您必须决定是否使用 HTTPS。如果这只是一个开发周期的开始,请在没有它​​的情况下开始并让身份验证工作 - 但尽快实施 HTTPS。

AAD同时支持http和https,当然,回复url必须分别添加到应用注册中。

正如@mihail-stancescu 所说,如果您选择不使用 HTTPS,则必须将 ssl-redirect 设置为 false。除此之外,您还必须确保您的应用不会从 HTTP 重定向到 HTTPS。

将 curl 与 -L -k 和 -v 选项一起使用将为您提供有关您的请求实际发生的情况的大量信息。

当 http/https 问题解决后,您必须删除入口中的所有重写注释。 (例如,ingress.kubernetes.io/rewrite-target: / 应该被删除)。

现在,如果您的相关服务的入口路径是例如/myservice,那么回复 url 还应该添加路径的那部分 ([host]/myservice/signin-oidc) - 在 AAD 应用程序注册和应用程序配置中。 (配置中的路径不应包含主机)

如果您使用的是 https,那么您还必须拥有适当的证书。您可以将免费的 LetsEncrypt (https://letsencrypt.org/) 与 KubeLego (https://github.com/jetstack/kube-lego) 结合使用,您可以在其中找到一些很好的示例来说明如何实现它。

【讨论】:

  • 谢谢@TechnoCowboy 我想将其标记为答案,但问题是入口注释中的 nginx.ingress.kubernetes.io/ssl-redirect: "true" 不会重定向到https 在我的情况下。试图找出问题所在。
猜你喜欢
  • 2021-12-14
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 2020-10-14
相关资源
最近更新 更多