mod_auth_request
模块简介
mod_auth_request支持请求发送至指定的服务进行认证。
基础配置
配置描述
模块配置文件: conf/mod_auth_request/mod_auth_request.conf
配置项 | 描述 |
---|---|
Basic.DataPath | String 规则配置的文件路径 |
Basic.AuthAddress | String 认证服务的地址 |
Basic.AuthTimeout | Number 认证超时时间 单位ms |
Log.OpenDebug | Boolean 是否开启调试日志 默认值False |
配置示例
[Basic]
DataPath = mod_auth_request/auth_request_rule.data
AuthAddress = http://127.0.0.1
AuthTimeout = 100
[Log]
OpenDebug = false
规则配置
配置描述
配置项 | 描述 |
---|---|
Version | String 配置文件版本 |
Config | Object 所有产品线的请求认证规则配置 |
Config{k} | String 产品线名称 |
Config{v} | Object 产品线的请求认证规则表 |
Config{v}[] | Object 请求认证规则 |
Config{v}[].Cond | String 匹配条件, 语法详见Condition |
Config{v}[].Enable | Boolean 是否启用规则 |
配置示例
{
"Config": {
"example_product": [
{
"Cond": "req_path_in(\"/auth_request\", false)",
"Enable": true
}
]
},
Version": "20190101000000"
}
对于example_product产品线配置了一条规则,针对请求路径为/auth_request的请求(例如www.example.com/auth_request),BFE将构造请求发送至http://127.0.0.1进行认证。
模块动作
动作 | 条件 |
---|---|
封禁 | 响应状态码为401或403 |
放行 | 响应状态码为200或其他 |
监控项
监控项 | 描述 |
---|---|
AUTH_REQUEST_CHECKED | 命中基本认证规则的请求数 |
AUTH_REQUEST_PASS | 认证成功并放行的请求数 |
AUTH_REQUEST_FORBIDDEN | 被禁止的请求数 |
AUTH_REQUEST_UNAUTHORIZED | 未通过认证的请求数 |
AUTH_REQUEST_FAIL | 认证失败的请求数 |
AUTH_REQUEST_UNCERTAIN | 认证状态不确定的请求数 |
BFE构造请求的说明
- Method: BFE构造的请求Method为GET
- Header: BFE构造的请求Header为原请求Header,同时进行如下修改:
- 删除如下头部:Content-Length/Connection/Keep-Alive/Proxy-Authenticate/Proxy-Authorization/Te/Trailers/Transfer-Encoding/Upgrade
- 增加如下头部:X-Forwarded-Method(代表原请求Method)、X-Forwarded-Uri(代表原请求URI)
- Body: BFE构造的请求Body为空