【问题标题】:How to handle Azure AD Authentication with Kubernetes Ingress如何使用 Kubernetes Ingress 处理 Azure AD 身份验证
【发布时间】:2019-10-23 19:08:20
【问题描述】:

我有一个在 pod 中运行的 ASP.NET Core 2 应用程序。

这没什么特别的。只是 Visual Studio 创建的默认应用,启用了“学校/工作帐户”-身份验证。

我的入口指向/ 的服务

- path: /
  backend:
    serviceName: debug-ui
    servicePort: 80

当我点击那个端点 (/) 时,我被重定向到 Azure AD 登录。我进行了身份验证,Azure AD 重定向到 /signin-oidc,这对于 AD 登录来说是正常的。到目前为止,一切都按预期工作。

问题在于入口响应“502 - 网关错误”,可能是因为入口将 /signin-oidc 视为通往另一个(不存在)服务的路由,但它应该是应用程序上的端点/ 自己。

/ 运行的应用程序还具有/about/contact - 在禁用身份验证时可以正常工作

/signin-oidc 被称为带有身份验证令牌的 HTTP POST。 (智威汤逊)

我该如何解决这个问题?

技术:

  • Azure ACS 上的 Kubernetes
  • nginx-ingress-controller
  • Azure 活动目录
  • .NET Core 2

【问题讨论】:

  • 添加另一个路径?
  • 谢谢,但是应该怎么做呢?如果我将 /signin-oidc 添加为指向同一服务的路径,则该服务将在 / 而不是 /singin-oidc 调用 - 我猜。
  • @TechnoCowboy,你解决了这个问题吗?我有一个类似的topic 关于
  • @AlexejSommer,抱歉回复晚了。就我而言,这是因为我在 ingress 中进行了重写。 (ingress.kubernetes.io/rewrite-target: /) 删除该行解决了它。

标签: nginx kubernetes azure-active-directory


【解决方案1】:
  paths:
  - path: /tea
    backend:
      serviceName: tea-svc
      servicePort: 80
  - path: /coffee
    backend:
      serviceName: coffee-svc
      servicePort: 80

【讨论】:

  • 是的,我知道——但这并不能解决问题。在 / (这是主页)上运行的应用程序也有一个路径 /signin-oidc (因为它有 /about 和一个 /contact - 当禁用身份验证时工作正常) signin-oidc 被称为 HTTTP POST 与身份验证令牌。 (JWT)(我也会在描述中添加这个)
【解决方案2】:

使用 Flask(而不是 .NET)和 AAD 与 nginx 入口一起使用,如下所示:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: flask-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  tls:
  - hosts:
    - example.com
    secretName: flask-auth
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: flask-app
          servicePort: 80
        path: /app(/|$)(.*)
---

这有点像:

AAD

example.com/app  
example.com/app/login  
example.com/app/other-logins-urls 

呈现 html 模板

example.com/app/app-name

【讨论】:

    猜你喜欢
    • 2021-01-18
    • 2021-01-16
    • 2020-10-27
    • 2019-10-15
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    相关资源
    最近更新 更多