You need to enable JavaScript to run this app.
导航

远程鉴权

最近更新时间2023.12.26 15:00:08

首次发布时间2023.12.05 15:21:17

veImageX 支持您通过在域名管理中配置远程鉴权,实现将用户请求转发至您指定的鉴权服务器,由鉴权服务器对用户请求进行校验。校验通过则允许访问,校验失败则拒绝访问或进行其他您的自定义限制,该鉴权方式可有效避免您的资源被非授权用户访问。

注意

提交工单联系技术支持为您的账号开启配置能力。

功能介绍

如果您的站点有专属的鉴权服务器对用户请求进行鉴权,您可以在访问控制配置远程鉴权。
远程鉴权的流程如下:

  1. 用户向您的站点发送请求,请求中包含鉴权参数。
  2. 在收到用户请求后,veImageX 将用户请求转发到鉴权服务器。
  3. 鉴权服务器对用户请求进行鉴权,并将鉴权结果返回给 veImageX。
  4. veImageX 根据鉴权结果,将用户请求的内容发送给用户或者拒绝用户请求。

远程鉴权与 URL 鉴权的区别

  • URL 鉴权:veImageX 直接对请求进行鉴权。
  • 远程鉴权:veImageX 不对请求进行鉴权,而是转发请求给鉴权服务器并从鉴权服务器接收鉴权结果。鉴权服务器由您自主管理。

操作步骤

说明

若您的远程鉴权配置项由于某些原因(如启用了非标配置)被锁定,锁定后界面将展示锁定图标。您可提交工单联系技术支持修改配置。

  1. 登录 veImageX 控制台,单击服务管理。选择相应的图片服务,单击基础配置

  2. 分发配置页签的域名信息中,单击域名的管理按钮。

  3. 在配置页面,单击访问控制并进入页面后。选择远程鉴权,单击编辑按钮。

  4. 设置状态为开启。并按照提示,完成各参数配置。

配置远程鉴权的参数分多个模块:

  1. 完成配置后,单击确认按钮。

生效对象

支持您添加一个或者多个规则,最多支持添加 50 个规则。如果一个请求匹配任何一个规则,该请求需要被鉴权。

说明

如果您需要对所有请求进行鉴权,可以添加一条规则并指定规则类型目录匹配并设置规则/

参数说明

规则类型

选择一个规则的类型。支持以下配置:

  • 文件后缀:根据请求文件的后缀判断请求是否需要被鉴权。
  • 目录匹配:根据请求文件所在的目录判断请求是否需要被鉴权。
  • 文件全路径:根据请求文件的 URL 判断请求是否需要被鉴权。

是否匹配

指定匹配的方式。支持以下配置:

  • 匹配:表示匹配规则内容的请求需要被鉴权。
  • 不匹配:表示不匹配规则内容的请求需要被鉴权。

注意

如果您添加了多条规则,这些规则需要设置为相同的匹配方式。

规则

输入一个或者多个配置项,多个配置项以英文分号(;)分隔。 配置项的要求如下:

  • 如果规则类型文件后缀,您需要输入一个或者多个文件扩展名,总长度不能超过 1,024 个字符。文件扩展名大小写敏感,可包含字母和数字。多个扩展名以以英文分号(;)分隔,例如jpg;png
  • 如果规则类型目录匹配,您需要输入一个或者多个目录路径,总长度不能超过 1,024 个字符。多个目录路径使用英文分号(;)分隔。目录路径大小写敏感。需要遵循的规则如下:
    • 目录路径需以 / 开头和结尾,例如 /test/a/;/test/b/。如果要指定所有目录,输入 /
    • 目录路径可以包含可打印 ASCII 字符。但不支持以下字符:连续的斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。
  • 如果规则类型文件全路径,您需要输入一个或者多个文件路径,总长度不能超过 1,024 个字符。多个文件路径使用英文分号(;)分隔。文件路径大小写敏感。需要遵循的规则如下:
    • 支持通配符*,填写为/*
    • 文件路径必须以反斜杠(/)开头。例如 /www/img/picture.png;/doc/study.docx
    • 文件路径可以包含可打印 ASCII 字符。但不支持以下字符:连续的斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。

鉴权请求地址

指定鉴权服务器的配置。

参数说明

远程鉴权地址(主)

鉴权服务器的主地址,长度不能超过 100 个字符,需要填写合法的域名或 IP。主地址必须采用以下格式之一:

  • <scheme>://<domain>:例如 https://example.com
  • <scheme>://<ip> :例如 http://192.168.0.1

注意

<scheme> 值需为 http 或者 https。<domain> 值不能是 localhost。<ip> 值不能是 127.0.0.1

远程鉴权地址(备)鉴权服务器的备地址,长度不能超过 100 个字符,格式和输入要求与主地址相同。

请求路径

鉴权 URL 中的路径。鉴权服务器的地址和该路径组成了鉴权 URL。veImageX 会把用户请求转发到该鉴权 URL。支持以下配置:

  • 遵循用户请求路径:鉴权 URL 中的路径与用户请求 URL 中的路径相同。
  • 指定具体请求路径:一个指定的路径。您需要在鉴权路径中指定该路径。

鉴权路径

如果请求路径指定具体请求路径,该配置才会出现。在该配置中,您指定一个鉴权路径。需要遵循的规则如下:

  • 鉴权路径必须以斜杠(/)开头。
  • 长度不能超过 100 个字符。
  • 可以包含可打印 ASCII 字符。但不支持以下字符:连续的斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。

请求方法

在发送鉴权请求时 veImageX 所使用的请求方法。支持以下配置:

  • 跟随用户请求的方法:表示鉴权请求使用的方法与用户请求相同。
  • GET:表示鉴权请求使用 GET 方法。
  • POST:表示鉴权请求使用 POST 方法。
  • HEAD:表示鉴权请求使用 HEAD 方法。

鉴权请求参数

支持指定鉴权请求需要包含的参数。

参数说明

用户请求参数

表示哪些用户请求 URL 中的查询参数包含在鉴权请求中。支持以下配置:

  • 保留全部参数:鉴权请求包括用户请求 URL 中的所有查询参数。
  • 删除全部参数:鉴权请求不包括用户请求 URL 中的任何查询参数。
  • 保留部分参数:鉴权请求包括用户请求 URL 中的指定的查询参数。

参数清单

如果用户请求参数保留部分参数,该配置才会出现。该配置表示用户请求 URL 中的哪些查询参数需要包括在鉴权请求中。需要遵循的规则如下:

  • 多个参数使用英文分号 (;) 分隔。
  • 总长度不能超过 1,024 个字符。
  • 参数名称是大小写敏感的,可以包含可打印 ASCII 字符。但不支持以下字符: 空格、双引号(")、Delete(ASCII code 127)

添加鉴权请求参数

该配置表示您需要额外添加的查询参数。最多支持添加 50 个规则。

  • 请求参数名称:您需要添加的一个查询参数的名称。参数名称不能超过 1,024 个字符,可以包含可打印 ASCII 字符。但不支持以下字符:双引号(")、空格、Delete(ASCII code 127)
  • 取值方式:该查询参数的值是如何定义的。支持以下配置:
    • 常量:该参数值是一个固定值,类型是字符串。
    • 变量:该参数的值来自一个变量。参见变量字段说明
  • 参数取值:该查询参数的值。该配置的说明如下:
    • 如果取值方式常量,您指定一个固定值作为该参数的值,长度不能超过 1,024 个字符。该参数值不能以美元符号($)开头,可以包含除了以下字符的可打印 ASCII 字符:双引号(")、Delete(ASCII code 127)
    • 如果取值方式变量,您需要从列表中选择一个变量。您选择的变量的值会作为该参数的值。
变量说明

veImageX 提供了以下变量。

变量说明示例
host表示用户请求中 Host 头的值。example.com:8080
ua表示用户请求中 User-Agent 头的值。Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail
referer表示用户请求中 Referer 头的值。https://www.example.com/file?name=123
content_type表示用户请求中 Content-Type 头的值。text/html
X-Forwarded-For表示用户请求中 X-Forwarded-For 头的值。20.5.118.10
client_ip表示发送用户请求的 IP 地址。15.15.15.10
scheme表示用户请求使用的协议。https
server_protocol表示用户请求使用的协议的版本。HTTP/2.0
URI表示用户请求中的 URI,不包含查询字符串。/dir/page.php
req_args表示用户请求中所有的查询参数。color=red&n=10
request_method表示用户请求使用的请求方法。GET
request_uri表示用户请求中的 URI,包含查询字符串。/dir/page.php?color=red&n=10
local_ip表示在 veImageX 中,响应用户请求的边缘节点的 IP 地址。267.89.0.45
req_time表示 veImageX 收到用户请求的时间。关于时间格式,请参见示例。18/Apr/2022:16:48:48 +0800
msec表示当前的时间。格式是十进制的 Unix 时间戳。1650558396

鉴权请求头

指定鉴权请求需要包含的请求头。

参数说明

HOST 请求头

鉴权请求中 HOST 头部的值。支持以下配置:

  • 加速域名:表示 HOST 头部的值与加速域名相同。
  • 自定义:表示一个指定的 HOST 头部值。

自定义请求 HOST

如果HOST 请求头自定义,该配置才会出现。在该配置中,您需要输入一个 HOST 头部的值。需要遵循的规则如下:

  • 长度不能超过 1,024 个字符。
  • 符合请求头名称格式。
  • 头部清单不能重复。

用户其他请求头

表示哪些用户请求中的请求头包含在鉴权请求中。支持以下配置:

  • 保留全部头部:鉴权请求包含用户请求中的所有请求头。
  • 删除全部头部:鉴权请求不包含任何用户请求中请求头。
  • 保留部分头部:鉴权请求包含用户请求中的指定请求头。

头部清单

如果用户请求头保留部分头部,该配置才会出现。该配置指定需要包含在鉴权请求中的请求头。多个请求头用分号 (;) 分隔。请求头大小写不敏感,不能是 Host,。需要遵循的规则如下:

  • 长度不能超过 1,024 个字符。
  • 符合请求头名称格式。
  • 头部清单不能重复。
添加鉴权请求头该配置表示您需要额外添加的请求头。支持最多添加 50 个请求头。
请求头部名称表示一个您需要添加的请求头。请求头是大小写不敏感的,不能是 Host,长度不能超过 1,024 个字符。该请求头可以包含可打印 ASCII 字符,但不支持以下字符:下划线(_)、空格、双引号("),Delete(ASCII code 127)。

取值方式

表示该请求头的值是如何定义的。支持以下配置:

  • 常量:表示该请求头的值是一个固定值,类型是字符串。
  • 变量:表示该请求头的值来自一个变量。参见变量字段说明

参数取值

表示该请求头的值。该配置的说明如下:

  • 如果取值方式常量,您指定一个固定值作为该请求头的值。该值的长度不能超过 1,024 个字符,不能以美元符号($)开头,可以包含可打印 ASCII 字符,但不支持以下字符:双引号(")、Delete(ASCII code 127)。
  • 如果取值方式变量,您需要从列表中选择一个变量。您选择的变量的值会作为该请求头的值。

鉴权结果

指定 veImageX 是如何处理鉴权服务器返回的鉴权结果,包含鉴权成功状态码、鉴权失败状态码、鉴权超时时间等参数。

说明

截图配置表示 veImageX 基于用户请求的 IP 地址和 URI 对鉴权结果进行缓存。其中,您在配置缓存 key 时必须包含 URI,否则系统无法判断鉴权结果所对应的请求文件。

参数说明

鉴权成功状态码

从鉴权服务器返回的状态码中,哪些被认为是鉴权成功。默认值是 200。

  • 您可以输入范围在 200-299 中的一个或者多个状态码。
  • 多个状态码使用分号(;)分隔。您也可以输入 2xx 表示 200-299 范围中的任意一个状态码。

鉴权失败状态码

表示从鉴权服务器返回的状态码中,哪些被认为是鉴权失败。默认值是 401。

  • 您可以输入范围在 400-499 中的一个或者多个状态码。多个状态码使用分号(;)分隔。
  • 您也可以输入 4xx 表示 400-499 范围中的任意一个状态码。

其他状态码

该配置表示在满足以下所有条件时,veImageX 对用户请求的处理方式。

  • 鉴权服务器返回的状态码不是您指定的表示鉴权成功的状态码。
  • 鉴权服务器返回的状态码不是您指定的表示鉴权失败的状态码。

支持以下配置:

  • 默认放行:表示 veImageX 认为用户请求鉴权成功,并将请求的文件返回给用户。
  • 默认拦截:表示 veImageX 认为用户请求鉴权失败,拒绝该用户请求。

鉴权结果缓存

表示 veImageX 是否缓存鉴权结果,也就是鉴权服务器返回的鉴权状态码。您可以设置该配置为 开启 或者 关闭。默认是 关闭

在开启该配置后,对于收到的用户请求,veImageX 会检测该请求的鉴权状态码是否已被缓存。如果鉴权状态码已被缓存,veImageX 则使用该鉴权状态码来确定是否将请求的文件发送给用户。

说明

该配置可以提升 veIamgeX 响应用户请求的效率。

缓存时间表示鉴权状态码的缓存时间,单位是秒。该配置仅在 鉴权结果缓存 为 开启 的情况下才出现。取值范围为 [1,86400] 。86,400 秒表示 24 小时。

缓存key

表示缓存的鉴权状态码中所包含的字段。这些字段是您在该配置中定义的。每个鉴权状态码都有一个唯一的缓存key。该配置仅在 鉴权结果缓存 为 开启 的情况下才出现。

同时,veImageX 通过缓存 key 来判断用户请求是否命中了鉴权状态码的缓存。 当收到一个请求时,veImageX 尝试使用请求中的字段来匹配缓存 key。如果找到了匹配,veImageX 就会使用该缓存的鉴权状态码。

注意

缓存 key 中必须包含 URI 这个字段,不然 veImageX 无法判断鉴权结果所对应的请求文件。

响应客户端拦截状态码表示鉴权失败时,veImageX 响应用户请求的状态码。默认的状态码是 403。取值范围为[400,499] 。
鉴权超时时间表示鉴权请求的超时时间,单位是毫秒,默认值是 200。取值范围为 [200,3600]。

异常执行策略

该配置表示鉴权异常发生时,veImageX处理用户请求的方式。支持以下配置:

  • 默认放行:表示 veImageX 认为用户请求鉴权成功,并将请求的文件返回给用户。
  • 默认拦截:表示 veImageX 认为用户请求鉴权失败,拒绝该用户请求。

鉴权异常包括但不限于以下情况:

  • 鉴权请求超时。
  • 鉴权服务器拒绝了鉴权请求。
  • veImageX 无法与鉴权服务器建立连接。