keycloak 无效参数:反向代理后面的redirect_uri

2024-04-10

如何正确配置NGINX作为Keycloak前面的代理?

作为文档询问和回答这个问题,因为我现在不得不重复这样做,并且在一段时间后忘记了细节。

这是专门处理 Keycloak 位于反向代理后面的情况,例如nginx 和 NGINX 正在终止 SSL 并推送到 Keycloak。这与以下问题不是同一个问题keycloak 无效参数:redirect_uri https://stackoverflow.com/questions/45352880/keycloak-invalid-parameter-redirect-uri尽管它会产生相同的错误消息。


关键在于文档中https://www.keycloak.org/docs/latest/server_installation/index.html#identifying-client-ip-addresses https://www.keycloak.org/docs/latest/server_installation/index.html#identifying-client-ip-addresses

The proxy-address-forwarding必须设置以及各种X-...标头。

如果您使用的是来自https://hub.docker.com/r/jboss/keycloak/ https://hub.docker.com/r/jboss/keycloak/然后设置环境。精氨酸-e PROXY_ADDRESS_FORWARDING=true.

server {
  server_name api.domain.com;

  location /auth {
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;

    proxy_pass          http://localhost:8080;
    proxy_read_timeout  90;

 }

  location / {
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;

    proxy_pass          http://localhost:8081;
    proxy_read_timeout  90;
  }



    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/api.domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/api.domain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = api.domain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


  server_name api.domain.com;
    listen 80;
    return 404; # managed by Certbot
}

如果您使用其他代理,则其中重要的部分是正在设置的标头:

proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        X-Forwarded-Proto $scheme;

Apache、ISTIO 和其他公司都有自己的设置方法。

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

keycloak 无效参数:反向代理后面的redirect_uri 的相关文章

随机推荐

  • Visual C++“强制包含”选项

    我刚刚遇到了一个 Visual C 选项 它允许您强制包含文件 当我查看一些缺少 include StdAfx h 在每个 cpp 文件上 但实际上是通过此选项执行此操作 该选项可以在高级 C C 配置属性页并等于 FI编译器选项 这个选项
  • 将 CALayer 渲染为 PDF 输出时保持矢量图形

    我正在将包含许多数据点的绘图渲染到由 NSView 托管的 CALayer 中 CALayer 的drawInContext 中完成的所有绘图操作都是矢量操作 CGPath 等 现在我想将其导出为 PDF 文件 使用 CGPDFContex
  • 使用 persistence.xml 时,将 Hibernate 4.0 与 Tomcat 7 结合使用时出现 JndiException

    我在 Tomcat 7 上使用 Hibernate 4 0 和 JPA persistence xml 文件 没有 Struts 只是直接使用 Hibernate 和一些 Jersey 服务 这是我遇到的异常 Caused by org h
  • React:给定一个数组,有效地以相反的顺序渲染元素

    我目前以典型的 React 风格渲染一个列表 该列表作为数组道具传递 我像这样映射它 this props myList map createListItem this 因此 当添加新元素时 看起来最新的项目已添加到列表的末尾 我希望最新的
  • Body 上带有 Json 的 HTTP POST - Flutter/Dart

    这是我向 API 发出请求的代码 import dart async import dart convert import dart io import package http http dart as http Future
  • 如何使用 Excel 文件中的不同测试数据集在 testng 中运行多个测试用例?

    我有以下 testng xml 我的项目包含多个类 每个类都有一个 Test testNG 方法及其相关的数据提供程序 意味着类 I1 DoLoginTest 包含一种方法及其数据提供程序 类 I2 CreateScenarioTest 包
  • 如何在javaScript中实现分层多级数据表?

    我正在实现多级数据表 而不使用任何插件或库 我想基于javaScript JQuery或Angular js来实现 我检查了下面的一个链接 使用 JavaScript 遍历 JSON 对象树的所有节点 https stackoverflow
  • asp.net gridview:如何在一列中拥有多个按钮字段?

    我需要为 gridview 创建多个操作 例如 批准 拒绝 和 返回 我可以通过为每个操作创建一个按钮字段来做到这一点
  • 从TFS获取当前迭代路径

    我正在尝试获取团队 TFS 项目的当前迭代路径 我尝试做到这一点的方法是使用博客http blog johnsworkshop net tfs11 api reading the team configuration iterations
  • 将会话放入 if 和 else 语句中

    我在将会话存储一些页面信息到变量中时遇到问题 继承人的代码
  • 如何从 Excel VBA for Mac 发出 HTTP GET

    我需要从 Excel for Mac 2011 向 Web 服务发出带有查询字符串的 HTTP Get 我已经看到了使用 QueryTables 的答案 如何使用 VBA 从 Excel 向服务器发送 HTTP POST 请求 https
  • ORDER BY 子句在视图、内联函数、派生表、子查询中无效

    我的存储过程是这样的 alter PROCEDURE dbo ParkingDeatailsReportnewstack startdate NVARCHAR 100 enddate NVARCHAR 100 AS BEGIN DECLAR
  • Cosmos DB Change Feed 的多个使用者

    我正在使用更改源处理器库 或 Azure Functions Cosmos DB 触发器 来订阅集合更新 如何为同一集合的 feed 设置多个独立 非竞争 消费者 一种方法是使用多个租赁集合 例如leases1 leases2等等 但这有点
  • 当输入多个单词作为输入时,使用 AND 条件过滤列表

    我正在尝试使用 jQuery 根据用户输入过滤列表 到目前为止 它工作正常 但如果用户输入多个单词 我希望能够使用相当于 AND 条件的方式充分过滤列表 例如 如果用户输入 丰田手册 则仍应显示以下两个元素 丰田 Echo 2001 手册
  • 相对于另一个居中视图的位置视图

    你好 SwiftUI 社区 我正在尝试做一些可能很容易做的事情 但我已经坚持了几个小时了 在列表中 我希望项目由以下组成 水平居中的文本 数字 号码左侧的文字 号码右侧的文字 我尝试了很多东西 对齐 对齐指南 GeometryReader
  • 单个 postgresql 查询中的文本和 jsonb 连接

    如何在 postgresql 中连接 jsonb 对象内的字符串 换句话说 我在同一查询中使用 JSONb 连接运算符以及文本连接运算符 但遇到了麻烦 或者 如果我应该执行一个完全不同的查询 我将不胜感激听到建议 目标是更新包含 jsonb
  • 对齐按钮背景图像

    我的 WinForms 应用程序中有一个按钮 我向其中添加了图像和文本 我将文本向右对齐 并希望将背景图像向左对齐 但发现这是不可能的 有什么办法可以做到这一点吗 我还尝试在按钮上仅设置图像 但无法在按钮属性中调整图像大小 有人可以帮我解决
  • Julia:生成唯一的随机整数数组

    我正在尝试创建 10 个唯一随机整数的元素数组 但是我无法创建具有唯一值的数组 Julia 中是否有类似 Python 的东西样本函数 https docs python org 2 library random html random s
  • 使用 SQLCeResultSet 更新/插入表

    我有一个定期更新的 SQL Compact Edition 数据库 通过 Web 服务 我写入数据库的部分花费的时间太长 我目前正在使用 Linq to Datasets 进行此操作 如这个问题 https stackoverflow co
  • keycloak 无效参数:反向代理后面的redirect_uri

    如何正确配置NGINX作为Keycloak前面的代理 作为文档询问和回答这个问题 因为我现在不得不重复这样做 并且在一段时间后忘记了细节 这是专门处理 Keycloak 位于反向代理后面的情况 例如nginx 和 NGINX 正在终止 SS