使用JWT验证保护API

💡 原文英文,约2000词,阅读约需7分钟。
📝

内容提要

Cloudflare客户现在可以通过使用API Gateway验证传入的JSON Web Tokens(JWTs)来保护其API免受破坏的身份验证攻击。此更新包括了对客户反馈的更新,如支持Bearer令牌格式、多个JWKS配置和验证以cookie形式发送的JWTs。破坏的身份验证是一个重大威胁,JWT验证有助于对经过身份验证的API用户实施积极的安全模型。JWTs提供了防篡改的封印和过期日期,增强了安全性。API Gateway的JWT验证检查JWT签名、过期时间和身份验证令牌,以防止破坏的身份验证和授权攻击。Cloudflare Access和自定义Cloudflare Workers也可以使用JWTs,但API Gateway提供了更简单和更可管理的体验。未来的更新将包括在API Gateway内生成和强制执行授权策略。

🔎

延伸解读

JWT验证的三大安全机制

API Gateway的JWT验证通过检查签名、过期时间和令牌存在性来防御攻击。签名验证确保令牌未被篡改,防止恶意用户提升权限;过期时间检查阻止过期令牌的重放攻击;令牌存在性检查则拦截未携带认证令牌的请求。这三层机制共同构建了积极的安全模型,有效应对OWASP列出的破坏身份验证威胁。

GA版本的关键改进

相比2023年初的测试版,正式版JWT验证增加了对Bearer令牌格式的支持,允许每个区域配置最多四个JWKS以适应不同环境,并能验证Cookie中的JWT。此外,用户可以在验证规则中排除任意数量的托管端点,提供了更灵活的部署选项。这些改进直接回应了客户反馈,提升了实用性和管理效率。

与其他Cloudflare方案的对比

Cloudflare Access主要面向内部用户,与身份提供商集成;而API Gateway的JWT验证则适用于外部用户,无需改变现有用户流程。自定义Cloudflare Workers也能验证JWT,但对于简单用例,API Gateway提供了更易管理和交互的体验。两者互补,企业通常需要同时部署Access和API Gateway来覆盖内外用户场景。

未来功能展望

Cloudflare计划在未来版本中让客户直接在API Gateway内生成和执行授权策略,并升级按需开发者门户,使其能向开发团队发放密钥和认证令牌。此外,还将利用API流量规范知识自动建议安全策略,以防御对象/功能级授权攻击。这些更新旨在进一步简化API管理并增强安全性。

❓

Q&A

Cloudflare API Gateway 的 JWT 验证功能有什么新更新?

GA 版本支持 Bearer 令牌格式、最多四个 JWKS 配置、验证 cookie 中的 JWT,并可在 JWT 验证规则中排除任意数量的托管端点。

JWT 验证如何防止 API 攻击?

API Gateway 的 JWT 验证检查 JWT 签名、过期时间和身份验证令牌是否存在,以防止破坏的身份验证和授权攻击。

JWT 的结构是怎样的?

JWT 由三个字段组成:头部、有效载荷和签名,用句点分隔。头部包含算法和类型,有效载荷包含声明,签名用于验证令牌的合法性。

JWT 验证能防止哪些具体的 API 攻击?

可以防止缺失或破坏的身份验证、过期令牌重用以及破坏功能级授权攻击(如篡改声明)。

Cloudflare Access 和 API Gateway 的 JWT 验证有什么区别?

Cloudflare Access 用于内部用户,与身份提供商集成;API Gateway 的 JWT 验证用于外部用户,验证预先存在的 JWT,无需改变现有用户流程。两者都需要。

未来 API Gateway 会推出哪些新功能?

未来将支持在 API Gateway 内生成和强制执行授权策略,并升级开发者门户以直接签发密钥和身份验证令牌,还会自动建议安全策略。

🏷️

标签

➡️

继续阅读