所以我遇到的问题是SAML已经在项目中实现,使用spring-security-saml与联邦IDP集成。
现在我需要保护REST API调用,这些调用是从JSESSIONID无法持久化的地方发生的,所以我想交换SAML Assertion,我从federate到JWT,以提供回客户端,以便它可以用于身份验证标题。
现在我有点迷失了,我试图使用spring-security-jwt的JwtAccessTokenConverter创建一个JWT令牌,但无法弄清楚如何将它与SAML粘合在一起。
有人可以对这个问题有所了解吗?或者,如果使用SAML保护REST API是另一种选择,我不知道。
谢谢!
答案 0 :(得分:0)
如果您的IDP支持Oauth2授权类型urn:ietf:params:oauth:grant-type:saml2-bearer
,您可以从IDP与JWT交换SAML令牌。
在这种情况下,您需要调用IDP的oauth2令牌端点并传递saml-assertion,client-id和client-secret以及scope = openid作为输入,并且您的IDP应该返回JWT令牌,您可以使用它确保你的休息api。此jwt令牌还将包含您在SAML断言中收到的所有声明。