使用 SAML 对 Spring Boot 应用程序进行身份验证的问题

Posted

技术标签:

【中文标题】使用 SAML 对 Spring Boot 应用程序进行身份验证的问题【英文标题】:Issue using SAML for authentication with spring boot app 【发布时间】:2018-04-16 19:07:36 【问题描述】:

我目前正在阅读this article,了解如何使用 Spring Boot 应用程序设置 SAML。

我按照所有步骤操作,只是将单点登录 URL 从“https://localhost:8443/saml/SSO”更改为“https://localhost:8443/mycompanysaml/SSO”。

当我运行应用程序时,我在 IDE 控制台中没有看到任何错误,但是 Okta 的登录页面没有显示在浏览器上。我有以下消息。 Error message in the browser

控制台中消息的堆栈跟踪如下:

2017-11-03 15:21:23.991  INFO 50013 --- [nio-8443-exec-7] o.a.c.c.C[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-11-03 15:21:23.991  INFO 50013 --- [nio-8443-exec-7]o.s.web.servlet.DispatcherServlet        : FrameworkServlet'dispatcherServlet': initialization started
2017-11-03 15:21:24.006  INFO 50013 --- [nio-8443-exec-7]o.s.web.servlet.DispatcherServlet        : FrameworkServlet'dispatcherServlet': initialization completed in 15 ms
2017-11-03 15:21:24.021  INFO 50013 --- [nio-8443-exec-7]o.s.s.s.m.MetadataGeneratorFilter        : No default metadata configured, generating with default values, please pre-configure metadata for production use
2017-11-03 15:21:24.060  INFO 50013 --- [nio-8443-exec-7]o.s.s.s.m.MetadataGeneratorFilter        : Created default metadata for system with entityID: https://localhost:8443/saml/metadata
2017-11-03 15:21:24.708  INFO 50013 --- [nio-8443-exec-7].s.m.p.AbstractReloadingMetadataProvider : New metadata succesfullyloaded for 'https://dev-531605.oktapreview.com/app/exkcp2fsptqmfDGtf0h7/sso/saml/metadata'
2017-11-03 15:21:24.720  INFO 50013 --- [nio-8443-exec-7].s.m.p.AbstractReloadingMetadataProvider : Next refresh cycle for metadata provider 'https://dev-531605.oktapreview.com/app/exkcp2fsptqmfDGtf0h7/sso/saml/metadata' will occur on '2017-11-04T01:21:24.240Z' ('2017-11-03T18:21:24.240-07:00' local time)
2017-11-03 15:21:24.865  INFO 50013 --- [io-8443-exec-10]o.s.security.saml.log.SAMLDefaultLogger:AuthNRequest;SUCCESS;0:0:0:0:0:0:0:1;https://localhost:8443/saml/metadata;http://www.okta.com/exkcp2fsptqmfDGtf0h7;;;

有人可以解释一下发生了什么吗?是不是因为我把 Single Sign On URL 改成了我自己的,应该没问题吧?

提前感谢您的帮助。 G.

【问题讨论】:

是的,我相信这是因为您更改了 URL。 https://localhost:8443/saml/SSO 是 Spring Security 希望您使用的 URL - 我不确定您是否可以更改它。 @MattRaible 登录时会话多长时间? @MattRaible 我更改了 URL 并且它有效。但我真的很想了解为什么我们不能更改那个 url。 【参考方案1】:

您在应用程序中为 SAML 设置的配置将有一个与 SAML 相关的弹簧安全过滤器,您已在其中添加了过滤器。

因此,如果您想更改 SSO url,则必须更改配置文件中声明的过滤器中的 url。

对于您所指的应用程序正在使用默认配置。

了解更多信息。 http://www.sylvainlemoine.com/2016/06/06/spring-saml2.0-websso-and-jwt-for-mobile-api/ 看看这个

【讨论】:

以上是关于使用 SAML 对 Spring Boot 应用程序进行身份验证的问题的主要内容,如果未能解决你的问题,请参考以下文章

是否有用于将 SAML 与 Spring Boot 应用程序集成的 Spring Boot SAML 客户端?

在 ELB 后面使用带有 Spring Boot 的 SAML 重定向到 http 而不是 https

单个 Spring Boot 应用程序中的 SAML 和 Oauth2

Okta/Spring Boot Saml 应用程序进入无限循环

Spring Boot 和 SAML 2.0

基于 SAML 的 SSO 用于身份验证和 LDAP 用于授权 - Spring Boot Security