in-spring安全如何实现saml和自定义身份验证处理程序

dhxwm5r4  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(373)

我正在实现三种身份验证机制,它们是saml和两种自定义身份验证。那么,我如何实现一个基于头的过滤器呢?它将检测身份验证类型,并将路由到适当的身份验证机制。 SAML :在saml的情况下,如果cookie的密钥为 saml 然后必须进行saml身份验证。在saml身份验证中,每当用户登录时,我都会在浏览器中插入一个名为saml的cookie,对于进一步的请求,我需要通过传递调用restapi saml cookie值并检查身份验证是否有效。 Custom authentication :如果cookie密钥具有 token1 或者 token2 然后执行自定义身份验证,其中包括通过传递令牌调用restapi,并检查用户是否有效。
我知道saml与spring security的关系,但正如我在saml中解释的那样,我们如何进行restapi调用并实现一个调用适当身份验证机制的过滤器,我们如何实现这一点。是否有任何参考,可以帮助fr上述情况。

yiytaume

yiytaume1#

您可以使用spring security authenticationmanagerbuilder来完成。使用在别处定义的三个自动连线自动验证提供程序创建安全配置

@Autowired
private CustomAuthenticationProvider1 customProvider1;

@Autowired
private CustomAuthenticationProvider2 customProvider2;

@Autowired
private SAMLAuthenticationProvider samlProvider;

然后使用authenticationmanagerbuilder添加它们

authenticationManagerBuilder.authenticationProvider(customProvider1);
authenticationManagerBuilder.authenticationProvider(customProvider2);
authenticationManagerBuilder.authenticationProvider(samlProvider);

有关完整的示例,请参阅本文

64jmpszr

64jmpszr2#

我假设您正在使用azure进行saml身份验证。按照这种方式实现自定义和saml身份验证。
首先,使用Spring Security 实现简单的jwt令牌身份验证。我希望使用这个用户可以做身份验证 username 以及 password .
实现saml身份验证,我假设您正在使用azure。此azure将返回一个令牌。
将azure令牌从前端传递到rest api。在的帮助下使用azure api验证此令牌 RestTemplate . 如果令牌有效,那么创建普通的springjwt令牌。
现在实际上您正在为所有身份验证维护单个令牌。

相关问题