Wener Notes

Louketo Proxy

约 2 分钟阅读

已停止维护,使用 oauth2-proxyGitHuboauth2-proxy/oauth2-proxyoauth2-proxy/oauth2-proxy · 环境变量 + 前缀 · 会话 - · cookie - 默认 · 代理无状态 · 使用 加密 cookie · 并发操作可能会冲突导致需要从新认证 · redis · Cookie 记录 ticket笔记:oauth2-proxy 替代。

  • louketo/louketo-proxyGitHublouketo/louketo-proxy已停止维护,使用 oauth2-proxy 替代。 · louketo/louketo-proxy · 原来的 keycloak gatekeeper · 使用手册 · 两种工作模式 · 反向代理 - 例如 Nginx · 请求上游携带授权信息笔记:Louketo Proxy
    • 原来的 keycloak gatekeeper
  • 使用手册GitHub Filelouketo/louketo-proxy/docs/user-guide.md
  • 两种工作模式
    • 反向代理 - 例如 Nginx
      • 请求上游携带授权信息
    • 前向代理 - HTTP_PROXY
      • 必须提供账号密码
      • 使用提供的账号密码进行 client_credentials 授权
      • 请求附加授权信息
      • 用于 服务之间 使用 Token 鉴权
  • 权限管理
    • 白名单
    • 路径 + HTTP 方法 + 角色
  • 暴露端口
    • /oauth/logout?redirect=url 退出登陆
    • /oauth/callback OpenID 回调
    • /oauth/authorize 鉴权,生成 OpenID 重定向到 provider
    • /oauth/expired 判断 Token 是否过期 - 返回 200 或 401
    • /oauth/health 检查健康状态,可通过头 获取版本
    • /oauth/login 中继账号密码登陆,使用 grant_type=password,通过 POST username 和 password
    • /oauth/token 返回当前 AccessToken
    • /oauth/metrics Prometheus 指标
  • 注意
    • 无法配合 Traefik 的 ForwardAuth - #672GitHub Issuelouketo/louketo-proxy#672 Support for Forward Auth/ External Auth
    • 无法配合 Nginx auth_request 使用 #537GitHub Issuelouketo/louketo-proxy#537
      • 因为 oidc 流程相对复杂,直接的 auth_request 难以实现
      • 可以使用 /expired
bash
docker run -it --rm quay.io/louketo/louketo-proxy \
  --listen 127.0.0.1:8080 \
  --upstream-url http://127.0.0.1:80 \
  --discovery-url https://keycloak.example.com/auth/realms/<REALM_NAME> \
  --client-id <CLIENT_ID>

FAQ

oidc: JWT claims invalid: invalid claims, 'aud' claim and 'client_id' do not match, aud=account

  • 依赖 OIDC 客户端问题 - 待升级
  • 目前解决办法
    • 添加 mapper
    • mapper 类型 audience
    • 添加 客户端
  • #567GitHub Issuelouketo/louketo-proxy#567

no session found in request, redirecting for authorization

未获取到 token 信息

  • 注意 secure-cookie=false
    • 如果没有设置,则默认是 true,导致 http 不会记录 cookie
  • 通过排查前段是否有存储 cookie 来解决

关联信息

反向链接、本文链接的其他页面和外部资料。

References

GitHub6 条
最近更新commit 9bc36d1Edit

On this page