使用 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