当前位置: 首页 > 知识库问答 >
问题:

KeyClope无效参数:在反向代理后重定向\u uri

岳杜吟
2023-03-14

如何正确地将NGINX配置为keydove前面的代理?

询问

这是专门处理keydove位于反向代理后面的情况,例如nginx和nginx终止SSL并推送到keydove。这与keydape Invalid parameter:redirect_uri的问题不同,尽管它会产生相同的错误消息。

共有3个答案

傅玮
2023-03-14

我也有同样的问题,因为我重用/复制粘贴了另一个服务的代理配置。

一旦我改变了proxy\u set\u头主机$Host:$server\u端口 到代理集头主机$Host 成功了。

(已删除:$server\u端口)

颜志业
2023-03-14

上面的答案涉及对代理所做的配置。

在keydepot容器的哪些方面,如果您在尝试登录到管理控制台时遇到redirect_uri错误,则必须为keydepot(从版本10.0.2开始)设置两个环境变量,以便在反向代理之后工作。

如果管理控制台的URL为https://your.fqdn/auth然后必须设置:

KEYCLOAK_FRONTEND_URL = https://your.fqdn/auth

除上述各项外:

PROXY_ADDRESS_FORWARDING = true

下面是一个最小的docker组合。yml将在一个反向代理后启动KeyClope 10,该代理将请求转发给https://your.fqdn进入docker主机的端口8000。根据您的意愿,启动时只需在环境(或.env文件)中设置变量keydove\u ADMIN\u PWDPG\u KC\u PASS

version: '3'

volumes:
  pgkeycloak-data:
services:

  pg-keycloak:
    image: "postgres:12-alpine"
    container_name: pg-keycloak
    volumes:
      - "pgkeycloak-data:/var/lib/postgresql/data"
    restart: always
    environment:
      POSTGRES_DB: keycloak
      POSTGRES_USER: keycloakdb
      POSTGRES_PASSWORD: ${PG_KC_PASS}

  auth:
    user: root
    privileged: true
    image: "quay.io/keycloak/keycloak:10.0.2"
    depends_on:
      - "pg-keycloak"
    restart: always
    ports:
      - 8000:443
    command:
      -Djboss.http.port=443
      -Djboss.bind.address=0.0.0.0
    environment:
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: ${KEYCLOAK_ADMIN_PWD}
      KEYCLOAK_FRONTEND_URL: https://your.fqdn/auth
      PROXY_ADDRESS_FORWARDING: "true"
      DB_USER: keycloakdb
      DB_PASSWORD: ${PG_KC_PASS}
      DB_ADDR: pg-keycloak
      DB_VENDOR: postgres
印晋
2023-03-14

这方面的关键在于https://www.keycloak.org/docs/latest/server_installation/index.html#identifying-客户端ip地址

必须设置代理地址转发,以及各种X- 标题。

如果您使用的是来自的Docker图像https://hub.docker.com/r/jboss/keycloak/然后设置环境。arg-e PROXY\u ADDRESS\u 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和其他人都有自己的设置方法。

 类似资料:
  • [Edit-1]在oauth2配置中添加作用域,添加grafana服务,删除 : 我访问了Grafana,请求被路由到Keyclope 我已经搜索并尝试了一些建议,但它们对我不起作用。希望你们能帮忙。我真的很感激。 这是我的docker swarm配置:

  • 我有一个运行在Minikube中的应用程序,它可以像预期的那样与入口网关一起工作。调用spring boot应用程序,显示视图,并通过链接调用受保护的资源。呼叫被转发到Key斗篷,并通过登录掩码进行授权,受保护的资源按预期显示。 使用Istio时,重定向失败,并显示消息:“无效参数:重定向\u uri”。 我的Istio网关配置 我的虚拟服务配置 点击受保护的链接后,我在浏览器中得到以下URI:

  • 我正在使用keydepot身份验证对angular应用程序进行身份验证,到目前为止,我已成功将登录重定向到keydeport服务器。但当重定向而不是登录页面时,我会收到一个500错误页面,其中包含消息

  • 我有一个RestHighLevelClient连接到一个远程elasticDB,它位于一个反向代理后面,该代理剥离了ssl。 当我打电话的时候 我得到一个握手失败的例外 正如这里和这里所描述的,我检查了日志,发现了ClientHello 服务员:你好 客户端和服务器都同意密码套件TLS_ECDHE_RSA_和_AES_128_GCM_SHA256 然后以加密和纯文本的形式跟踪请求。然后是另一个Cl

  • 什么是反向代理 反向代理(Reverse Proxy)方式是指用代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 举个例子,一个用户访问 http://www.example.com/readme,但是 www.example.com 上并不存在

  • 反向代理是一个 V2Ray 的附加功能,可以把服务器端的流量向客户端转发,即逆向流量转发。 反向代理功能在 V2Ray 4.0+ 可用。目前处于测试阶段,可能会有一些问题。 反向代理的大致工作原理如下: 假设在主机 A 中有一个网页服务器,这台主机没有公网 IP,无法在公网上直接访问。另有一台主机 B,它可以由公网访问。现在我们需要把 B 作为入口,把流量从 B 转发到 A。 在主机 A 中配置一