如何为endpoint /saml 2/authenticate/{registrationId} spring-security-saml 2配置{baseUrl}?

sqougxex  于 2024-01-05  发布在  Spring
关注(0)|答案(1)|浏览(140)

我正在尝试实现saml 2 SSO。
我的项目使用网关(端口8090)。认证逻辑位于第二个服务(端口8080)中,但我希望所有请求都通过网关
我尝试实现这个功能,但最终重定向到了第二个服务localhost:8080/saml 2/authenticate/{registrationId}。我假设问题是调用身份提供者的服务(第二个)也必须接受请求,而不是将它们委托给网关。
也许有一些变通方法可以使此请求通过网关?
另外,我不能将此逻辑传输到网关,因为目前还不支持React式SAML。
我几乎没有安全方面的工作经验(尤其是SAML)。所以我将感谢任何帮助!
学历:

  • 网关
  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-gateway</artifactId>
  4. <version>3.0.4</version>
  5. </dependency>

字符串

  • 第二个服务中的SAML依赖项
  1. <dependency>
  2. <groupId>org.springframework.security</groupId>
  3. <artifactId>spring-security-saml2-service-provider</artifactId>
  4. <version>5.5.2</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.opensaml</groupId>
  8. <artifactId>opensaml-core</artifactId>
  9. <version>4.1.1</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.opensaml</groupId>
  13. <artifactId>opensaml-saml-api</artifactId>
  14. <version>4.1.1</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.opensaml</groupId>
  18. <artifactId>opensaml-saml-impl</artifactId>
  19. <version>4.1.1</version>
  20. </dependency>

t0ybt7op

t0ybt7op1#

最后我发现这可以用6版本的Spring安全配置来完成。
https://github.com/spring-projects/spring-security/issues/8873

  1. http.saml2Login(saml2 -> {
  2. saml2.authenticationRequestUri("yourUrl")
  3. };

字符串

相关问题