Spring boot 为微服务中开发的API集成SAML身份验证

Spring boot 为微服务中开发的API集成SAML身份验证,spring-boot,spring-security,oauth-2.0,microservices,saml-2.0,Spring Boot,Spring Security,Oauth 2.0,Microservices,Saml 2.0,我需要开发一套微服务(rest API),供web和移动客户端使用,微服务位于API网关后面,我必须与SSO(使用SAML)集成以进行用户身份验证,我知道必须进行SAML令牌到oAuth2令牌的转换,以便我可以在API网关验证auth令牌并在那里处理授权,但我不清楚的是谁将负责SAML令牌到oAuth2令牌的转换,是IDP提供了这种现成的功能,还是我需要建立自己的功能 我想到的一个可能的解决办法是 用户(来自web/mobile)通过SSO登录 从IDP获取SAML响应 将该SAML响应发送到

我需要开发一套微服务(rest API),供web和移动客户端使用,微服务位于API网关后面,我必须与SSO(使用SAML)集成以进行用户身份验证,我知道必须进行SAML令牌到oAuth2令牌的转换,以便我可以在API网关验证auth令牌并在那里处理授权,但我不清楚的是谁将负责SAML令牌到oAuth2令牌的转换,是IDP提供了这种现成的功能,还是我需要建立自己的功能

我想到的一个可能的解决办法是

  • 用户(来自web/mobile)通过SSO登录
  • 从IDP获取SAML响应
  • 将该SAML响应发送到服务器以生成身份验证令牌
  • 服务器获取生成身份验证令牌的请求,查找SAML响应并根据IDP验证它
  • 若SAML响应有效,则生成auth令牌并将其发送回客户端
  • 在来自客户端的后续API请求中,令牌作为API网关验证的标头传递

问题是我自己有点不愿意实现SAML和oAuth,并且正在寻找一些现成的解决方案,但找不到任何解决方案,请有人建议任何库来解决这个问题,提前谢谢。

感觉您的方法是正确的-这是授权服务器(AS)的角色为您处理SAML登录集成。虽然您当然需要使用支持SAML集成的AS,但只需要更改配置

您的UI和API不需要了解任何有关SAML的信息,只需要使用OAuth令牌。应该不需要任何代码更改


大多数公司使用现成的AS-eg,例如来自低成本云提供商的AS-eg。我总结了整合IDP的过程。本演练使用AWS Cognito作为as,IDP可以是SAML。感觉您的方法是正确的,授权服务器(as)的角色是为您处理SAML登录集成。虽然您当然需要使用支持SAML集成的AS,但只需要更改配置

您的UI和API不需要了解任何有关SAML的信息,只需要使用OAuth令牌。应该不需要任何代码更改


大多数公司使用现成的AS-eg,例如来自低成本云提供商的AS-eg。我总结了整合IDP的过程。本演练使用AWS Cognito作为as,IDP可以是SAML。

我维护了一个微服务,听起来它可以帮助您-

Osso针对少数IDP提供程序处理SAML配置,规范有效负载,并在oauth 2.0授权代码授予流中为您提供用户资源


OSO主要充当身份验证服务器——虽然我们目前还没有API网关验证访问令牌的方法(仍然有效),但这对于我们来说是很小的补充,我们很乐意考虑它。

< P>我维护一个听起来像它可以帮助你的微服务-

Osso针对少数IDP提供程序处理SAML配置,规范有效负载,并在oauth 2.0授权代码授予流中为您提供用户资源

OSO主要充当认证服务器——虽然我们目前没有API网关验证访问令牌的方法(仍然有效),但这对于我们来说是很小的补充,我们很乐意考虑。