首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用oAuth2 -代理、Keycloak /OAuth2-代理日志分析oAuth2客户端凭证流

用oAuth2 -代理、Keycloak /OAuth2-代理日志分析oAuth2客户端凭证流
EN

Stack Overflow用户
提问于 2022-11-21 14:41:22
回答 1查看 51关注 0票数 0

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

现在,我正在尝试使用Grant类型的客户端凭据,例如邮递员或Curl。我启用了“服务帐户启用”。我可以在没有问题的情况下检索access_token /承载令牌,并将它包含在标题“授权”中。我可以看到令牌是有效的,其他内容看起来也是正确的,但请求没有通过。OAuth2-代理将请求重定向到登录页面。

OAuth2-代理参数:

代码语言:javascript
复制
  - --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

我不确定是否需要将此脚本包含在“大会”中:

代码语言:javascript
复制
# 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-代理配置缺少从请求中正确获取令牌的内容。
  • OAuth2-代理无法针对Keycloak验证令牌

我可以访问Keycloak,Nginx和OAuth2-代理日志。到目前为止,oauth2-proxy日志帮助解决了以前的问题,但是一直以来,我忽略了更好的分析正在发生的事情。我希望oAuth2-proxy上有一个跟踪日志级别,我可以使用我的Helm值文件通过env var启用该日志级别,但是文档中的可用选项似乎不合适。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-30 08:55:15

您需要启用‘资源服务器模式’(

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74520641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档