使用Spring Oauth2实现SAML断言流程

时间:2015-03-10 18:32:44

标签: spring-security-oauth2 spring-saml

我需要使用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);

提前感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:0)

您可能需要注册自定义TokenGranterCompositeTokenGranter(默认值)可以通过执行您的建议(将传入的请求grant_type与每个Granter支持的请求进行比较)来处理多种授权类型。如果您使用Spring SAML作为服务提供程序来检查断言,那么我猜您还需要将其设置为/ token端点上的单独安全过滤器(具有非常特定的请求匹配器,因此它仅拦截SAML授权)。