在代理后面运行 keycloak 时令牌颁发者无效

2023-11-24

我已将 keycloak 服务器放在 apache 代理后面:

ProxyRequests On
ProxyVia On
ProxyPreserveHost On
SSLProxyEngine On
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
<LocationMatch "/auth/">
    ProxyPass http://keycloak:8090/auth/ Keepalive=On
</LocationMatch>
ProxyPassReverse "/auth/" "http://keycloak:8090/auth/"

我已经成功地告诉我的 javascript 端的 keycloak 使用 /auth 进行身份验证:

{
  "realm" : "local",
  "auth-server-url" : "/auth",
  "ssl-required" : "external",
  "resource" : "client-local",
  "public-client" : true
}

我已成功登录,但在发出服务器请求后,过滤器(org.keycloak.jaxrs.JaxrsBearerTokenFilterImpl from keycloak-jaxrs-oath-client-4.0.0.FINAL) 抛出异常:

WWW-Authenticate:承载领域=“本地”,错误=“invalid_token”, error_description="无效的令牌颁发者。预期 'http://keycloak:8090/auth/realms/local',但当时 'http://localhost/auth/realms/local'"

我在这里缺少什么?我预计反向代理对于 keycloak 来说是透明的...我也找不到将 localhost 添加到 keycloak 管理面板中的有效发行者的选项...

我怎样才能使该设置发挥作用?


您的代理应该在代理上添加转发标头,例如X-Forwarded-For, X-Forwarded-Proto and X-Forwarded-Host,这将允许 keycloak 检索客户端(而不是反向代理)的原始 IP,这对于安全原因很重要。 Keycloak 还可以检索它的主机名,因为它出现在代理外部,这应该有助于令牌发行者无效问题。

另外,您还应该配置 Keycloak,以便使用代理标头,如果您使用 Docker 映像,请使用环境变量执行此操作PROXY_ADDRESS_FORWARDING=true.

查看文档 [1],您会在那里找到更多答案。 [1]https://www.keycloak.org/docs/4.8/server_installation/#_setting-up-a-load-balancer-or-proxy

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在代理后面运行 keycloak 时令牌颁发者无效 的相关文章

随机推荐

  • UIStoryboard如何以编程方式替换约束?

    我在故事板中放置了一个视图控制器 并启用了自动布局 并且正在寻找一种方法来更改约束 以允许我的视图旋转为横向并重新排列屏幕上的按钮 当我尝试下面的代码时 我收到大约两打 无法满足约束 破坏约束 的消息 我无法真正解码 有没有办法用我以编程方
  • Rust 如何处理隐藏变量?

    我有很强的 C C 背景 最近正在学习 Rust 对 Rust 如何处理隐藏变量感到困惑 特别是 我期望以下代码段运行没有问题 因为guess在下一次将其作为字符串调用之前 将其从字符串隐藏为整数read line 看了API文档 我明白了
  • PHP 中规范 uuid 表示的 16 字节二进制形式

    如何从 uuid 的字符串 规范表示形式中获取 16 字节二进制形式 ex 1968ec4a 2a73 11df 9aca 00012e27a270 干杯 马尔辛 bin pack h str replace guid pack
  • 如何在 wsgi 中启动 pdftk 子进程?

    我需要在 Django 中提供 Web 请求时启动 pdftk 进程 并等待它完成 我当前的 pdftk 代码如下所示 proc subprocess Popen usr bin pdftk tmp infile1 pdf tmp infi
  • java.lang.NoClassDefFoundError:无法初始化类 javax.media.jai.JAI

    我最近使用 GeoTools 开始了我的第一个程序 其中我还使用了 JAI Java Advanced Imaging 1 1 2 01 和 JDK 1 7 在我添加 GeoTiff Jars 之前它工作得很好 我发现以下错误 线程 mai
  • Haskell 中函数的类型推断

    我正在为 Haskell 做练习题 其中一个问题是 test3 x y x x y 我必须找到它的类型 解决办法是 test3 a gt a gt a gt a 我不明白为什么解决方案中的变量都是 a 而不是将 x 和 y 视为两个不同的变
  • 如何从 VBA 访问 SQLite?

    我有一个 Excel 工作簿 其中包含一些查询本地访问数据库的 adodb 代码 我想对 SQLite 做同样的事情 因为我相信这会提供更好的性能 我怎么做 我可以使用 adodb 或 odbc 连接到 SQLite 文件吗 我需要一些简单
  • PHP 中最快的 PDF 生成速度?

    我正在尝试动态生成一些报告 非常简单的带边框的 HTML 表格 我尝试过 TCPDF 它最多可以渲染 400 行 但超过这个数量 大约 20 页 它就无法处理 DOMPDF 甚至无法做到这一点 这些报告可能有数千行 关于更快的库或更好的攻击
  • 为什么 undef 值会成为 Perl 中的有效数组引用?

    在 perl 5 8 5 中 如果我执行以下操作 则不会收到错误 use strict my a undef foreach my el a whatever 这里发生了什么 打印输出ref a 表明 a在某个时刻更改为有效的数组引用 但我
  • ELMAH 与企业库异常处理块

    我的团队目前正在构建 ASP NET MVC 应用程序 我们正在尝试决定实施哪些框架来处理错误处理和日志记录 选择其中之一而不是其他的原因是什么 就我个人而言 我一直在为许多客户使用 Enterprise Library 但尚未使用 ELM
  • 如何防止条形图中两个标签重叠?

    下图显示了我使用下面的代码创建的图表 我突出显示了缺失或重叠的标签 有没有办法告诉 ggplot2 不要重叠标签 week c 0 1 1 1 1 2 2 3 4 5 statuses c Shipped Shipped Shipped S
  • TensorFlow 中 Variable 和 get_variable 的区别

    据我所知 Variable是创建变量的默认操作 并且get variable主要用于权重共享 一方面 有人建议使用get variable而不是原始的Variable每当您需要变量时进行操作 另一方面 我只看到任何用途get variabl
  • C# String.Format - 无效的输入字符串

    我有一个像这样的 MVC3 HtmlHelper 扩展 public static MvcHtmlString ShowInfoBar this HtmlHelper helper string message InfoMessageTyp
  • 警告:组件“sparks.component.TextInput”不支持 CSS 类型选择器

    我正在尝试做一个简单的 CSS 声明 但是 我收到了上面的警告 不知道如何解决 我认为 s type 应该为我声明样式
  • Beautifulsoup 通过
    分割标签中的文本

    是否可以通过 br 标签将文本与标签分开 我有这个标签内容 u 420 777 593 531 br u 420 776 593 531 br u 420 775 593 531 我只想得到数字 有什么建议吗 EDIT x for x in
  • 不出现对话框

    我使用以下代码 public class Settings extends Activity implements OnClickListener private Activity activity private AlertDialog
  • 在闪亮的应用程序中以模式显示 dataTableOutput

    伟大的 R 社区 我只是想知道是否可以显示DT dataTableOutput在模式中按下操作按钮 例如 数据表输出如下所示 下面是一些代码 app R library shiny library shinydashboard ui lt
  • 扩展巴科斯-诺尔范式的运算顺序

    我正在为一种非常简单的规则语言创建正式规范 非常简单 我想使用 EBNF 因为这是一个标准 但我不知道如何指定操作顺序 这是到目前为止的规范 rule statement AND OR statement variable alphabet
  • 在 Symfony 中禁用特定操作的 CSS 样式表

    有没有办法在 view yml 中为 Symfony 中的特定操作禁用样式表 例如 我的 view yml 中有这样的内容 default stylesheets default css 我希望能够做类似的事情 displaySuccess
  • 在代理后面运行 keycloak 时令牌颁发者无效

    我已将 keycloak 服务器放在 apache 代理后面 ProxyRequests On ProxyVia On ProxyPreserveHost On SSLProxyEngine On SSLProxyCheckPeerCN o