首页 > 解决方案 > nginx 反向代理背后的 Keycloak:SAML 集成 invalid_destination

问题描述

我在端口 8081 上有 keycloak,由路径 /saml-sp 上的 443 上的 nginx 代理。我按照所有文档设置代理。众所周知的 open-id 端点检查和 IP 地址检查看起来都不错。

但是,我有一个 SAML 2 身份提供程序集成,在提交登录页面后失败。keycloak 日志中的错误是 invalid_destination,但 SAML 中的目标看起来与端点完全一样。我也将 fontendUrl 设置为外部地址。我一定错过了什么,但我不知道是什么。这是错误:

2020-10-02 08:55:36,888 WARN  [org.keycloak.events] (default task-117) type=IDENTITY_PROVIDER_RESPONSE_ERROR, realmId=aerograph, clientId=null, userId=null, ipAddress=xxx.xxx.xxx.xxx, error=invalid_saml_response, reason=invalid_destination

这是我的 nginx 配置:

location /saml-sp/ {
        client_max_body_size 1000m;
        proxy_connect_timeout 7d;
        proxy_send_timeout 7d;
        proxy_read_timeout 7d;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Host $host;
        proxy_pass http://localhost:8081/;
    }

谢谢你的帮助。

标签: nginxkeycloaksaml

解决方案


推荐阅读