用途:在仓库包含联邦身份代码或配置(passport、omniauth、authlib、django-allauth、spring-security、next-auth、express-openid-connect、keycloak、Auth0、Okta、SAML 栈等)时运行,对 OAuth 2.0、OIDC 和 SAML 做深度安全审计。检查按顺序覆盖:流程选择(内隐/混合流程、公共客户端缺少 PKCE、response_mode 混淆、ROPC)、redirect_uri 校验(前缀匹配、路径穿越、通配子域、回环地址、post_logout_redirect_uri)、state 参数(缺失导致登录 CSRF/会话交换、弱值、未绑定会话)、授权码处理(单次使用、泄漏渠道)、RP 侧 id_token/JWT 校验(JWKS 与 kid 处理、算法白名单、iss/aud/exp/nonce/at_hash/c_hash)、令牌存储与刷新轮换、IdP 侧配置(prompt=none 静默授权、授权类型混用、资源范围、动态注册)、SAML(签名包装 XSW、受众限制、有效期、RelayState 开放重定向、元数据信任)、会话桥接(未验证邮箱的账户绑定、预劫持、多租户混淆、登出完整性)以及发现文档与 JWKS 缓存暴露。
使用方式:按仓库技术栈定位文件,例如 Node 的 passport 策略与 callback、Ruby 的 omniauth 初始化器、Python 的 authlib/allauth 配置与解码点、Java 的 spring.security.oauth2.client 配置。核验顺序为先校验后产生副作用,回调中必须先校验 state 再查用户;发现状态分为 Confirmed > Probable > Needs-Review,报告规则见 templates/finding-report.md。
限制:模块仅覆盖上述联邦身份检查,基础认证设计、注入、反序列化、浏览器存储细节、通用出站请求校验分别移交其他模块;CWE 集合限于 352、287、601、347。
以上介绍基于所提供公开资料整理,更完整的术语解释见仓库 GUIDE.md 词汇表。