带有 SAML 令牌的 Spring Security 用于 REST 服务

Adr*_*ian 5 rest spring spring-security saml-2.0

我正在寻找有关如何使用 Spring-Security 和 SAML 保护我的 REST 服务的 Spring 安全配置(首选 Java 配置)的简单示例。

前面有一个 Web 应用程序防火墙,它只会传递包含有效 SAML 令牌或以其他方式重定向到 IDP 的请求。所以我不必查看用户是否已登录或将用户重定向到 IDP。

我唯一需要做的就是只允许向所有 REST 服务发出经过身份验证的请求,从 SAML-Token 读取用户并检查令牌是否来自 Airlock。

稍后,我需要为用户对特定服务的更细粒度的权限添加 ACL 支持,但我已经迷失了 Spring Security 中集成工作的第一部分。欢迎任何帮助:)

Oha*_*adR 1

魔法发生在这里:https://github.com/spring-projects/spring-security-saml/blob/master/core/src/main/java/org/springframework/security/saml/SAMLProcessingFilter.java

在 中attemptAuthentication(),它获取 SAML 消息,对其进行解析并获取令牌 ( SAMLAuthenticationToken)。然后它尝试验证用户身份:authenticate(token);