首页 > 解决方案 > 从 KEYCLOAK 登录页面重写 URL 的最后部分

问题描述

我已经设置了一个带有 keycloak 和 openresty 的 docker 来处理使用 Nginx 作为 Web 服务器的帐户。一切都按预期工作,但我唯一的问题是我找不到重写 Keycloack 登录页面 URL 的方法

我需要重写这个

http://test-site.myown.lan:8080/auth/realms/test-site/protocol/openid-connect/auth?response_type=code&client_id=test-login&state=56ccae05bad8e93b09297c3907db9591&redirect_uri=http%3A%2F%2Ftest-site.int.master.lan%2Flogin%2Fcallback&nonce=4f1ecb367a9067e5697812c48f2f9b9e&scope=openid%20email%20profile

进入这个

http://test-site.myown.lan/auth/realms/test-site

所以缩短最后一部分并隐藏端口。

我尝试了重写规则,但我没有看到 URL 有任何变化。

我如何实现这一目标?

编辑:这是 Nginx 配置

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
worker_connections 1024;
}

http {
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
keepalive_timeout   65;
types_hash_max_size 2048;
add_header          X-Frame-Options SAMEORIGIN;

include            /usr/local/openresty/nginx/conf/mime.types;
#default_type        application/octet-stream;

# set search paths for pure Lua external libraries (';;' is the default path):
lua_package_path '${prefix}/lualib/ngx/?.lua;${prefix}/lualib/resty/?.lua;;';
# set search paths for Lua external libraries written in C (can also use ';;'):
lua_package_cpath '${prefix}/lualib/?.so;${prefix}/luajit/lib:/?.so;;';
# use internal dns as hostname resolver
resolver xxxxxxxxxx;
# cache for discovery metadata documents
lua_shared_dict discovery 1m;
# cache for JWKs
lua_shared_dict jwks 1m;
# Turning Lua Code Cache Off
lua_code_cache off;

server {
    listen 80;
    server_name *.myown.lan;
    return 301 https://test-site.myown.lan:443$request_uri;
}


server {
    listen      443 ssl default_server;

  server_name test-site.myown.lan;
    root        /opt/nginx/html;

    # Disabled caching so the browser won't cache the site.
    expires     0;
    add_header      Pragma "no-cache";
    add_header      Cache-Control "private, max-age=0, no-cache, no-store";

    # enables SSLv3/TLSv1, but not SSLv2 which is weak and should no longer 
  be used.

    ssl_certificate /etc/ssl/certs/wildcard.pem;
    ssl_certificate_key /etc/ssl/certs/wildcard.key;
    ssl on;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL;
    ssl_prefer_server_ciphers on;

    # set session secret
    set $session_secret secret;




  location / {
    access_by_lua_file /usr/local/openresty/nginx/conf/lua/cs-login.lua;


  }

  location /assets {
    root       /opt/nginx/html;
  }

  # redirect server error pages to the static pages
  error_page 401 /401.html;
  location = /401.html {
    root       /opt/nginx/html;
  }
  error_page 403 /403.html;
  location = /403.html {
    root       /opt/nginx/html;
  }
  error_page 404 /404.html;
  location = /404.html {
    root       /opt/nginx/html;
  }
  error_page 405 /405.html;
  location = /405.html {
    root       /opt/nginx/html;
  }
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root       /opt/nginx/html;
  }


  location /name2 {
    root       /opt/html;
    access_by_lua_file /usr/local/openresty/nginx/conf/lua/name2.lua;
  }


  location /name4 {
    root       /opt/html;
    access_by_lua_file /usr/local/openresty/nginx/conf/lua/name4.lua;
   }
 }
}

标签: nginxkeycloakopenresty

解决方案


推荐阅读