鳄梨酱 SAML 1.4 身份验证循环

问题描述 投票:0回答:2

我在面向互联网的前端中使用 ms 应用程序代理进行工作设置,并使用 SAML 扩展为 1.3 的鳄梨酱和下面的 guacamole.properties 文件。

# Available as "Login URL" from the Azure Active Directory Console
saml-idp-metadata-url: file:///etc/guacamole/metadata.xml

# The Entity ID you assigned to this application
saml-entity-id: https://example.privatedomain.com

# The redirect URL
saml-callback-url: https://example-public.msappproxy.net/

saml-debug: true

现在,当您使用 https://example-public.msappproxy.net/ 时,它会重定向到 azure 进行身份验证,然后重定向到鳄梨酱,但在浏览器中,URI 仍为“https://example-public.msappproxy.net” /#/?responseHash=E666C2CD34669C06776889QCJKADTAOIUD8A763FD0B77F"

但是对于 SAML 1.4,此设置最终会在 ms 和鳄梨酱之间循环。

MS App 代理设置完全相同。鳄梨酱或 MS 端是否需要任何额外的配置?

注意:只是一个简短的 MS 应用程序代理,其回复 URI 设置为“https://example.privatedomain.com”和“https://example-public.msappproxy.net/”,但 MS 应用程序代理默认设置为 URI。

以下是 1.4 鳄梨酱日志中的错误

ERROR c.onelogin.saml2.authn.SamlResponse - The response was received at https://example.privatedomain.com/api/ext/saml/callback instead of https://example-public.msappproxy.net/api/ext/saml/callback
saml guacamole
2个回答
0
投票

SAML 扩展知道响应是在

https://example.privatedomain.com
而不是
https://example-public.msappproxy.net
处收到的。

在SAML扩展中,

saml-strict
的默认设置是
true
需要有效的证书,但也需要两个URL匹配。设置
saml-strict: false
将删除 URL 必须匹配的要求。

如果您有一个鳄梨酱通过 HTTP 提供服务并使用处理 HTTPS 的负载均衡器,也会发生同样的情况,鳄梨酱服务器将在

http://guacamole.privatedomain.com
而不是
https://guacamole.privatedomain.com
接收响应,并且它将无法通过“严格”检查。


您还应该考虑更改您的

saml-idp-metadata-url
以直接从 Azure/Microsoft 下载元数据,以防更新。您可以在 Azure 控制台中找到元数据 URL。


0
投票

我也进行了搜索,通过在 Tomcat 配置(/etc/tomcat9/server.xml)连接器块中设置这些行,可以通过代理传递正确的 URL/协议:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           # New lines are here :
           proxyName="FQDN.guacamole.com"
           proxyPort="443"
           secure="true"
           scheme="https"/>

© www.soinside.com 2019 - 2024. All rights reserved.