You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx反向代理下Zammad无法使用Microsoft登录/注册问题排查

Zammad仅Microsoft登录/注册功能失效排查

Zammad系统所有功能均正常运行,仅Microsoft登录/注册功能无法使用,错误截图如下:
Microsoft登录错误截图

现有Nginx配置

外层反向代理Nginx配置

# Settings for a TLS enabled server.
upstream backend
{
    server 192.168.99.99:443;
}

server
{
    ssl on;
    listen 9443 ssl http2 default_server;

    ssl_certificate "/etc/pki/nginx/bundle.pem";
    ssl_certificate_key "/etc/pki/nginx/private/tpsonline.com.key";

    location /
    {
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Ssl on;
        proxy_set_header Host $host;
        proxy_pass https://backend;
    }
}

注:原配置末尾多了一个多余的},需删除后重新加载Nginx配置

Zammad-Helm的Nginx配置

server_tokens off;

upstream zammad-railsserver {
    server localhost:3000;
}

upstream zammad-websocket {
    server localhost:6042;
}

server {
    listen 8080;

    server_name _;

    root /opt/zammad/public;

    access_log /dev/stdout;
    error_log  /dev/stderr;

    client_max_body_size 50M;

    location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico) {
        expires max;
    }

    location /ws {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_read_timeout 86400;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Ssl on;
        proxy_pass http://zammad-websocket;
    }

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_read_timeout 180;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Ssl on;
        proxy_pass http://zammad-railsserver;

        gzip on;
        gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml;
        gzip_proxied any;
    }
}

已严格遵循Zammad官方文档及相关GitHub Issue指引配置请求头,但问题仍未解决,请问可能的原因是什么?


排查方向参考

  • 回调URL完全匹配检查:Azure AD应用中配置的回调URL必须和Zammad后台设置的完全一致,包括协议(https)、域名、端口(如你使用的9443),格式应为https://你的域名:9443/auth/microsoft_office365/callback,任何字符差异(如大小写、斜杠)都会导致失败。
  • Nginx配置语法修复:外层反向代理配置末尾多了一个多余的},这会导致Nginx配置加载失败,先删除该括号,执行nginx -t验证配置,再重启Nginx。
  • 可信代理设置:在Zammad系统设置的「安全」->「可信代理」中,添加外层Nginx的IP地址,确保Zammad信任转发的X-Forwarded-*头,否则会将请求识别为HTTP,导致微软OAuth回调时协议不匹配。
  • SSL证书完整性:检查外层Nginx使用的SSL证书链是否完整(包含根证书和中间证书),微软OAuth服务会验证回调地址的证书有效性,证书链不完整可能导致后端回调被拒绝。
  • Azure AD应用配置验证:确认Azure AD应用的Client ID、Client Secret与Zammad配置完全一致,无多余空格;应用已开启授权码流,且添加了User.Read等必要的API权限,并完成了管理员同意(若需)。
  • 端口与流量拦截检查:确认外层Nginx的9443端口可正常访问,且后端Zammad服务的443端口无防火墙/安全组拦截,流量能正常转发。

内容的提问来源于stack exchange,提问作者Sana.91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:45:28