Spring 安全 SAML 服务提供商元数据生成

Spring Security SAML Service Provider Metadata Generation

大家好 Spring 安全 SAML 专家和爱好者,

例如,服务提供商元数据生成会产生类似

的结果
<md:AssertionConsumerService Location="http://localhost:8080/<app-servlet-context>/saml/SSO"/>

部署后 运行 在本地 Tomcat 容器上,身份管理可以使用它来配置 SAML 消费者 URL。

我们正在使用 Okta 和 OneLogin 进行测试。大家都很开心。

我面临的问题是相同的 Web 应用程序配置部署到预先配置了特定 DNS 记录的 docker 容器 returns

<md:AssertionConsumerService Location="http://<app-context-root>:8080/<app-servlet-context>/saml/SSO"/>

localhost 替换为应用程序上下文根(默认?)。

无法找到实际域 http://<app-name>.<company-domain>.com,呈现断言消费者服务位置值无法用于配置 IdP 启动的 SSO。

单一注销服务位置值的情况相同。

有人可以帮助我理解这种行为并配置我的实现,以便服务提供商元数据中提供的 AssertionConsumerServiceSingleLogoutService 的位置看起来像

<md:AssertionConsumerService Location="http://<my-app-dns-domain-name>:8080/<app-servlet-context>/saml/SSO"/>

<md:SingleLogoutService Location="http://<my-app-dns-domain-name>:8080/<app-servlet-context>/saml/SingleLogout"/>

谢谢!

您是如何生成元数据的?你是以编程方式做的吗?

如果是,您可以使用 MetadataGenerator 的方法 setEntityBaseURL() class。