mod_auth_request

模块简介

mod_auth_request支持请求发送至指定的服务进行认证。

基础配置

配置描述

模块配置文件: conf/mod_auth_request/mod_auth_request.conf

配置项描述
Basic.DataPathString
规则配置的文件路径
Basic.AuthAddressString
认证服务的地址
Basic.AuthTimeoutNumber
认证超时时间
单位ms
Log.OpenDebugBoolean
是否开启调试日志
默认值False

配置示例

  1. [Basic]
  2. DataPath = mod_auth_request/auth_request_rule.data
  3. AuthAddress = http://127.0.0.1
  4. AuthTimeout = 100
  5. [Log]
  6. OpenDebug = false

规则配置

配置描述

配置项描述
VersionString
配置文件版本
ConfigObject
所有产品线的请求认证规则配置
Config{k}String
产品线名称
Config{v}Object
产品线的请求认证规则表
Config{v}[]Object
请求认证规则
Config{v}[].CondString
匹配条件, 语法详见Condition
Config{v}[].EnableBoolean
是否启用规则

配置示例

  1. {
  2. "Config": {
  3. "example_product": [
  4. {
  5. "Cond": "req_path_in(\"/auth_request\", false)",
  6. "Enable": true
  7. }
  8. ]
  9. },
  10. Version": "20190101000000"
  11. }

对于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为空