我需要使用Spring OAuth2 Authorization Server实现SAML断言流程。我正在努力解决如何将这两个项目联系起来的问题。 我也尝试将SAML securityContext导入到我的OAuth项目中,但似乎SAML流程始终优先。有没有办法这样做,它会查看grant_type以确定它是否应该使用saml流。
此外,当它确实处理saml断言时,是否会绑定到ResourceOwnerPasswordTokenGranter,或者我是否必须使用类似的东西注册自定义令牌granter?
With OAuth2, we have a way of registering different TokenGranters through something like this:
List<TokenGranter> tokenGranters = new ArrayList<TokenGranter>();
tokenGranters.add( endpoints.getTokenGranter());
tokenGranters.add(new SamlTokenGranter(authenticationManager,tks,cds,endpoints.getOAuth2RequestFactory()));
CompositeTokenGranter ctg = new CompositeTokenGranter(tokenGranters);
endpoints.tokenGranter(ctg);
提前感谢您提供的任何帮助
答案 0 :(得分:0)
您可能需要注册自定义TokenGranter
。 CompositeTokenGranter
(默认值)可以通过执行您的建议(将传入的请求grant_type
与每个Granter支持的请求进行比较)来处理多种授权类型。如果您使用Spring SAML作为服务提供程序来检查断言,那么我猜您还需要将其设置为/ token端点上的单独安全过滤器(具有非常特定的请求匹配器,因此它仅拦截SAML授权)。