应用身份认证功能以 Web 应用防火墙(WAF)作为反向代理,协助 Web 应用快速集成 OIDC 身份认证。该功能支持接入阿里云 IDaaS 或第三方身份提供商(IdP),旨在使后端应用无需进行大量代码改造,即可实现统一登录、单点登录(SSO)及精细化访问控制。
功能优势
低改造接入与后端鉴权:WAF 作为 OIDC 依赖方(RP)反向代理,自动处理重定向、Token 交换、会话管理及 Cookie 下发。后端应用仅需验证 WAF 传递的 Token 即可完成身份认证,实现低代码改造接入。
多 IdP 接入与安全增强:支持阿里云 IDaaS 原生接入及第三方 IdP 接入。通信过程全程采用 PKCE 与 State 参数进行防护,身份凭据加密存储,保障认证链路安全。
精细化认证策略:支持基于 URL 级别的认证策略,灵活控制特定路径的认证需求。同时采用统一回调路径,有效降低配置复杂度。
登录行为审计与可观测性:提供登录可观测总览页面,展示登录次数、独立用户数、24小时趋势及 Top5 域名排行。同时提供全字段登录日志表,支持对登录行为进行全面审计。
操作步骤
步骤一:添加应用
执行以下步骤前,请确保已满足以下条件:
业务接入:已存在防护对象(已将Web业务接入WAF),若尚未将业务接入,请参见接入概述。
网络配置:请在后端应用的防火墙或安全组中,将 WAF 的 IP 地址段加入白名单,以确保认证请求可正常通行。
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,选择。
进入应用管理页签,单击添加域名,在添加需要身份认证的应用页面完成以下配置。
应用名称:填写一个便于识别的应用名称。
添加域名:输入需配置身份认证的域名(例如
example.com),不支持泛域名。添加路径:填写路径,例如
/index.php或/admin/*,如需匹配根目录,请填写/*。关联防护对象:选择该域名对应的防护对象。
Cookie Domain:设置单点登录认证 Cookie 的作用域。建议填写主域(例如
.example.com),以实现同主域下多个子域名的单点登录。
步骤二:新建身份认证配置
返回应用身份认证页面,单击进入身份认证配置页签。
单击新建配置,在新增身份提供商配置页面完成以下配置。
配置名称:填写一个便于识别的配置名称。
IdP 来源:支持阿里云IDaaS与第三方Idp。
重要当使用应用身份服务 IDaaS时,可选择IDaaS方式,一键快捷配置,但存在以下限制:
仅支持企业版实例。
仅支持本账号下的IDaaS实例。
当 WAF 实例被释放后,已绑定的 IDaaS 应用归属权将自动转移至用户,该应用不会被删除。
若不满足要求,请使用第三方Idp模式。
阿里云IDaaS
IDaaS Region:选择IDaaS企业版实例所在的地域。
IDaaS Instance:选择IDaaS企业版实例。
第三方Idp
IdP Source Info:填写一个便于识别的信息。
Issuer:输入OIDC 服务地址,可以单击解析验证连通性。
Client ID:OIDC 客户端标识。
鉴权方式:支持Client Secret与Public Client,推荐Public Client模式。
Public Client:基于 PKCE(Proof Key for Code Exchange)协议进行安全认证,无需配置 Client Secret。避免在客户端存储密钥,安全性更高。使用此模式时,请确保IdP已支持 PKCE 协议并开启公共客户端功能。
Client Secret:使用此模式时,需填写 Client Secret。
WAF Redirect URL:由系统自动生成且不支持自定义的重定向地址,所有接入应用身份认证服务的域名均须预留此路径,专用于阿里云 WAF 的 Token 交换,严禁在该路径下部署任何真实业务。
作用说明:用户完成身份认证后,身份提供商将回调此地址。WAF 接收认证结果后,会执行二次重定向,将用户引导至其原始访问页面。
配置要求:为确保回调链路通畅,请将此 URL 添加至第三方 IdP 的回调地址(Redirect URL)白名单中。
Scope 配置:OIDC 授权范围。默认包含
openid、profile、email、phone,支持按需增删。
关联应用:选择在步骤一中添加的应用,将其移至右侧已选择区域。
步骤三:后端应用集成
WAF 完成身份认证后,将向后端应用转发包含 JWT(JSON Web Token)的 x-ali-waf-auth 请求头。您的后端服务必须对该 Token 进行验证,以确保请求的合法性与安全性。完成此项后端集成,是后端服务成功提取用户信息及控制台展示登录记录的前提。
获取验签公钥 (JWKS Endpoint)
您的后端服务需通过 WAF 提供的 JWKS(JSON Web Key Set)端点获取公钥,以验证 Token 签名。请根据 WAF 实例所在地域选择对应的端点地址。为提升性能,建议根据 HTTP 响应头
Cache-Control中的max-age值对公钥进行缓存。地域
JWKS 公钥端点
中国内地
https://waf-sso.cn-hangzhou.aliyuncs.com/common/.well-known/keys非中国内地
https://waf-sso.ap-southeast-1.aliyuncs.com/common/.well-known/keys验证 Token 签名与声明 (Claims)
收到请求后,请从
x-ali-waf-auth请求头中提取 JWT,并执行以下校验:签名验证:使用上一步获取的公钥,采用 RS256 算法验证 Token 的签名是否有效。
声明 (Claims) 校验:验证 Token Payload 中的关键字段,以下三项为必须校验项:
校验项
说明
校验规则
aud(Audience)受众,即您的业务域名
与在步骤一:添加应用处配置的域名完全一致。这是防止跨站请求伪造的关键。
exp(Expiration Time)过期时间
校验当前时间未超过
exp指定的时间戳,拒绝已过期的 Token。iss(Issuer)签发者
校验其值与您的 WAF 实例地域匹配:
中国内地:
https://waf-sso.cn-hangzhou.aliyuncs.com/common非中国内地:
https://waf-sso.ap-southeast-1.aliyuncs.com/common
提取用户信息
当上述所有校验均通过后,才可以信任该 Token,并从其 Payload 中安全地提取用户信息,例如:
sub: 用户唯一标识email: 用户邮箱name: 用户姓名phone_number: 用户手机号
步骤四:浏览单点登录信息
完成控制台配置及后端应用集成后,即可访问配置的域名进行登录验证。若 WAF 执行身份认证且校验失败时,将向客户端返回 HTTP 403 状态码。
应用身份认证的总览页面提供近30天的用户登录概览与详细日志,支持登录行为监控与审计。主要功能如下:
时间范围选择:通过页面左上角的选择框设定查询时间,支持查看近30天的数据。
登录趋势:展示所选时间范围内的累计登录次数、登录用户数及趋势图。
域名登录排行:展示所选时间范围内访问量排名前五的域名。
登录日志:展示所选时间范围内的详细登录记录,支持按用户标识、请求路径及源IP等条件进行搜索。若已开启日志服务,可在目标日志的操作列单击跳转SLS,前往日志服务页面查看完整日志。
日常运维
针对已创建的应用与身份认证配置,支持以下管理操作:
应用管理
配置应用:在应用管理页签定位至目标应用,单击其操作列的配置,可修改应用信息(当前仅支持修改 Cookie Domain)。
禁用应用:应用默认处于生效状态。如需停用,可单击操作列的禁用。
删除应用:单击操作列的删除,可移除目标应用。
身份认证配置管理
编辑配置:在身份认证配置页签定位目标配置,单击编辑可修改配置信息。
说明当从旧的身份提供商(IdP)切换至新的 IdP 时,请先清除浏览器中由旧 IdP 认证产生的 Cookie,以避免因认证状态冲突导致登录失败。
复制配置:单击复制,可快速生成一份相同的配置。
删除配置:单击删除,可移除目标配置。
启用/禁用配置:新建的配置默认生效,可通过
按钮进行禁用或启用操作。