【问题标题】:In spring security how to implement both SAML and custom authentication handler在 Spring Security 中如何实现 SAML 和自定义身份验证处理程序
【发布时间】:2021-01-27 08:05:10
【问题描述】:

我正在实现三种类型的身份验证机制,它们是 SAML 和两种自定义身份验证。那么,如何实现基于标头的过滤器,它将检测身份验证类型并将路由到适当的身份验证机制。

  1. SAML:在 SAML 的情况下,如果 cookie 的密钥为 saml,则必须进行 SAML 身份验证。在 SAML 身份验证中,每当用户登录时,我都会在浏览器中插入一个名为 saml 的 cookie,对于进一步的请求,我需要通过传递 saml cookie 值来调用 REST API 并检查身份验证是否有效。

  2. Custom authentication:如果 cookie 密钥具有 token1token2,则执行自定义身份验证,其中涉及通过传递令牌调用 Rest API 并检查用户是否有效。

我知道带有 Spring Security 的 SAML,但正如我在 SAML 中解释的那样,我们如何进行其余的 API 调用并实现一个过滤器来调用适当的身份验证机制,我们如何才能实现这一点。是否有任何参考可以帮助解决上述情况。

【问题讨论】:

  • 您能否提供更多有关 SAML 身份验证的详细信息?我的意思是您要集成的第三个应用程序是什么等。
  • @Shakthifuture 在 SAML 中,如果 saml cookie/header 不存在,则必须登录,一旦登录成功,我将在浏览器中添加一个 cookie(会话索引)。因此,对于进一步的请求,我将收到 saml 令牌(即会话索引)。因此,在收到标头中的 saml 令牌后,我将通过传递 saml 令牌调用 REST API 并验证响应。这是我正在遵循的流程。我不想在服务器端维护会话(spring security 微服务应该是无状态的)。

标签: java spring spring-security saml


【解决方案1】:

您可以使用 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);

完整的例子可以看this article

【讨论】:

    【解决方案2】:

    我假设您使用 Azure 进行 SAML 身份验证。按照这种方式实现自定义和saml认证。

    1. 首先,使用spring security实现Simple JWT token认证。我希望使用这个用户可以通过usernamepassword 进行身份验证
    2. 实施 SAML 身份验证,我假设您使用的是 Azure。此 azure 将返回一个令牌。
    3. 将天蓝色令牌从前端传递到休息 API。在 RestTemplate 的帮助下,使用 azure API 验证此令牌。如果令牌有效,则创建普通的 spring jwt 令牌。

    现在实际上您正在为所有身份验证维护单个令牌

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 2013-08-15
      • 2010-11-08
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 2014-12-13
      • 2014-01-12
      相关资源
      最近更新 更多