【问题标题】:Analyzing oAuth2 client credential flow with oAuth2-proxy, Keycloak / oAuth2-proxy logging使用 oAuth2-proxy、Keycloak / oAuth2-proxy 日志记录分析 oAuth2 客户端凭证流
【发布时间】:2022-12-08 08:31:08
【问题描述】:

我在 Kubernetes (AKS) 上运行的应用程序有一个有效的标准 oAuth2 身份验证流程,我使用 oAuth2-proxy 和 Keycloak 添加了它。通过浏览器的密码凭据授予类型/标准流工作正常。在重定向到 KC 登录页面并手动登录后,oAuth2-proxy 让用户通过并显示应用程序页面(回显服务器)。

现在我正在尝试使用 Grant 类型的客户端凭据,例如来自 Postman 或 Curl。我已启用“已启用服务帐户”。我可以毫无问题地检索 access_token / bearer 令牌,并将其包含在标头“授权”中。我可以看到该令牌有效,其他内容看起来也正确,但请求未通过。oauth2-proxy 重定向请求到登录页面。

oAuth2-代理参数:

  - --provider=keycloak-oidc
  - --client-id=nginx
  - --client-secret=topsecret
  - --redirect-url=https://my-redirect-url
  - --oidc-issuer-url=https://myurl
  - --silence-ping-logging
  - --auth-logging=true
  - --session-store-type=redis
  - --set-xauthrequest=true
  - --set-authorization-header=true
  - --pass-authorization-header=true
  - --pass-access-token=true
  - --insecure-oidc-allow-unverified-email
  - --show-debug-on-error
  - --errors-to-info-log
  - --cookie-secret=gf...
  - --cookie-httponly=false
  - --force-json-errors

我不确定是否需要在 Ingress 中包含此脚本:

# nginx.ingress.kubernetes.io/configuration-snippet: |
#   auth_request_set $name_upstream_1 $upstream_cookie__oauth2_proxy_1;

#   access_by_lua_block {
#     if ngx.var.name_upstream_1 ~= "" then
#       ngx.header["Set-Cookie"] = "_oauth2_proxy_1=" .. ngx.var.name_upstream_1 .. ngx.var.auth_cookie:match("(; .*)")
#     end
#   }

候选根本原因:

  • 令牌不包含检查的内容(KC 配置...)
  • 令牌没有以正确的方式包含在请求中
  • oAuth2-proxy 配置缺少从请求中正确获取令牌的内容
  • oAuth2-proxy 无法根据 Keycloak 验证令牌

我可以访问 Keycloak、Nginx 和 oauth2-proxy 日志。到目前为止,oauth2-proxy 日志帮助解决了早期的问题,但一直以来我都没有更好地分析正在发生的事情。我希望 oAuth2-proxy 上有一个跟踪日志级别,我可以使用我的 Helm 值文件通过环境变量启用它,但文档中的可用选项似乎不合适。

我错过了什么?我怎样才能更好地分析这个问题?或者已经有关于根本原因/修复的任何建议?

【问题讨论】:

    标签: oauth-2.0 oauth keycloak oauth2-proxy


    【解决方案1】:

    您需要启用resource server mode--skip-jwt-bearer-tokens = true标志)。

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 2021-12-22
      • 2022-01-07
      • 2012-12-17
      • 1970-01-01
      • 2020-01-18
      • 2023-04-09
      • 2020-12-25
      • 1970-01-01
      相关资源
      最近更新 更多