
# ThirdAuthContent
表1ThirdAuthContent 
| 参数                       | 是否必选 | 参数类型                                                                                                        | 描述                                                                     |
|:---|:---|:---|:---|
| auth_request             | 否    | [PluginThirdAuthRequest] object                 | 鉴权接口信息。                                                                |
| identities               | 否    | [PluginThirdAuthIdentities] object           | 用户身份认证信息。                                                              |
| carry_body               | 否    | [PluginThirdAuthCarryBody] object             | 允许携带API请求体进行第三方鉴权。                                                     |
| carry_path_enabled       | 否    | Boolean                                                                                                     | 允许携带原始请求path。                                                          |
| return_resp_body_enabled | 否    | Boolean                                                                                                     | 直接返回鉴权响应。                                                              |
| carry_resp_header        | 否    | Array of strings                                                                                            | 允许携带的响应头部(第三方鉴权成功，将从认证接口响应头中获取此处配置的响应头，透传到后端，支持最多10个参数，参数长度为1\~64个字符)。 |
| simple_auth_mode_enabled | 否    | Boolean                                                                                                     | 简易鉴权模式（鉴权接口返回2××则标识认证通过）。                                              |
| match_auth               | 否    | [PluginThirdAuthMatchAuth] object             | 鉴权结果匹配。                                                                |
| rule_enabled             | 否    | Boolean                                                                                                     | 黑白名单开关（通过黑白名单校验的API将不再调用鉴权接口进行鉴权）。                                     |
| rule_type                | 否    | String                                                                                                      | 黑白名单类型，当打开黑白名单开关时必填。                                                   |
| parameters               | 否    | Array of [PluginThirdAuthParameters] objects | 黑白名单规则参数。                                                              |
| rules                    | 否    | Array of [PluginThirdAuthRule] objects             | 黑白名单参数校验规则，最多支持100条规则。                                                 |
| custom_forbid_limit      | 否    | Integer                                                                                                     | 防爆力破解拦截阈值(5分钟内认证失败次数超过此处配置的值将触发请求拦截，直接返回认证失败，直至下一个5分钟窗口)。              |
| auth_downgrade_enabled   | 否    | Boolean                                                                                                     | 宽松模式（连接鉴权服务失败或者鉴权服务返回5××，网关接受客户端请求）。                                   |
   
 表2PluginThirdAuthRequest 
| 参数                  | 是否必选 | 参数类型                                                                                                      | 描述                                                  |
|:---|:---|:---|:---|
| method              | 是    | String                                                                                                    | 鉴权接口请求方法。                                           |
| protocol            | 是    | String                                                                                                    | 鉴权接口请求协议（不推荐使用HTTP）。                                |
| url_domain          | 否    | String                                                                                                    | 鉴权接口地址，不使用负载通道时必填，长度为0\~255位字符串，支持IP和域名。            |
| timeout             | 否    | Integer                                                                                                   | 鉴权接口超时时间，单位秒，范围1\~60000毫秒，默认5000毫秒。                 |
| path                | 是    | String                                                                                                    | 鉴权接口路径(以"/"开头，后面跟着一段由字母、数字、下划线和连字符组成的字符串，可以包含查询参数)。 |
| vpc_channel_enabled | 是    | Boolean                                                                                                   | 是否启用负载通道，true表示启用，false表示不启用。                       |
| vpc_channel_info    | 否    | [PluginThirdAuthVpcChannelInfo] object | 负载通道信息。                                             |
   
 表3PluginThirdAuthVpcChannelInfo 
| 参数             | 是否必选 | 参数类型   | 描述                                            |
|:---|:---|:---|:---|
| vpc_id         | 是    | String | 负载通道ID。                                       |
| vpc_proxy_host | 否    | String | 自定义host头域（长度为1到254个字符，由字母、数字、点号、冒号或连字符组成的域名）。 |
   
 表4PluginThirdAuthIdentities 
| 参数      | 是否必选 | 参数类型                                                                                                    | 描述                           |
|:---|:---|:---|:---|
| headers | 否    | Array of [PluginThirdAuthIdentity] objects | 携带的请求头信息，最多允许携带10个请求头。       |
| queries | 否    | Array of [PluginThirdAuthIdentity] objects | 携带的query参数，最多允许携带10个query参数。 |
   
 表5PluginThirdAuthIdentity 
| 参数   | 是否必选 | 参数类型   | 描述                                          |
|:---|:---|:---|:---|
| name | 是    | String | 参数名称(以字母开头，长度为1到32个字符、由字母、数字、点号、下划线和连字符组成)。 |
   
 表6PluginThirdAuthCarryBody 
| 参数            | 是否必选 | 参数类型    | 描述                                                             |
|:---|:---|:---|:---|
| enabled       | 是    | Boolean | 是否携带，true为携带，false为不携带。                                        |
| max_body_size | 否    | Integer | 允许携带的最大字节数(最大不超过实例配置参数配置项request_body_size--请求中允许携带的Body大小上限)。 |
   
 表7PluginThirdAuthMatchAuth 
| 参数    | 是否必选 | 参数类型   | 描述                               |
|:---|:---|:---|:---|
| key   | 是    | String | 鉴权响应头中的key(长度为1\~64个字符)。         |
| value | 是    | String | 鉴权响应头中对应key的value（长度为1\~512个字符）。 |
   
 表8PluginThirdAuthParameters 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| type  | 是    | String | 参数类型。支持的取值： - header：HTTP头域的第一个值  - query：QueryString的第一个值  - path：HTTP完整请求路径  - method：HTTP请求方法  - system：系统参数   |
| name  | 是    | String | 参数名称，path为reqPath，method为method，header和query为API请求中的请求头的key和query参数的key，system从以下选取\[sourceIp,stage,apiId,appId,requestId,serverAddr,serverName,handleTime,providerAppId,apiName,appName,authorizer.frotend.××,authorizer.backend.××\]。                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| value | 是    | String | 参数来源值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 表9PluginThirdAuthRule 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| rule_name   | 是    | String | 参数校验规则名称（开头必须是一个字母、数字或汉字，接下来可以是字母、数字、冒号、点、下划线、括号、斜杠或汉字，但不能以空格开头。这个文本可以包含2到254个字符，且结尾不能是空格）。                                                                                                                                                             |
| match_regex | 是    | String | 参数校验规则，一条规则用\[\]表示，\[\]内有参数名称、匹配规则（==（等于），\~=（不等于），in（枚举），\~\~（正则））、匹配值组成，\[\]内可嵌套方括号，同一层级之间的方括号用OR或者AND连接，表示或和与的关系（下面的example表示满足header里的Host参数匹配正则"\^f0269b2874ef0b65bee1f314e52aa.\*$"，或者满足（请求path为/a或/b），或者满足（请求path为/returnRequest或/d），则通过此条规则校验）。 |
   
