【问题标题】:Skipping Oauth 2.0 authorization using additional header param on API Request - Spring Security使用 API 请求上的附加标头参数跳过 Oauth 2.0 授权 - Spring Security
【发布时间】:2019-10-01 19:49:08
【问题描述】:
我已经使用 Spring Security 在 SpringBoot API 中实现了 Oauth 2.0。它工作正常,目前需要在检查标头可用性后在请求附加标头时跳过身份验证。基本上客户端会添加
skip-auth:true //示例
然后在服务器端,我们必须添加过滤器来检查skip-auth 值,如果它是真的,我们需要跳过授权并授予访问资源的权限。
有没有人对此有有效的解决方案的经验?或任何可以创建此请求功能的建议方法
【问题讨论】:
标签:
java
spring
api
spring-security
spring-security-oauth2
【解决方案1】:
我认为使用某种秘密标头绕过安全性是一个非常糟糕的主意。你能改变他们发送固定的 BasicAuth Header 的要求吗?
然后,您可以在 WebSecurityConfig 中的相关端点上允许 Basic-Auth。
【解决方案2】:
您永远不应该为您的后端保留后门。这显然是一个。对应用程序进行简单的反编译或在浏览器中监视网络选项卡将揭示这个看似明显的后门。您需要与发送需求的人合作,并要求他们定义哪些端点需要完全保护以及哪些可以匿名访问。
可以通过ROLE_ANONYMOUS 和在过滤器代理链中定义AnonymousAuthenticationFilter 来保护可以匿名访问的端点。