更新时间:2024-08-15 GMT+08:00
分享

认证鉴权

应用网关允许您使用自建的认证鉴权服务来给网关提供鉴权能力。

网关需要能够从业务请求中获取某些参数、编写成一个新的请求发送到您自建的鉴权服务,根据鉴权服务的返回值来决定原始请求是否可以通过。

创建鉴权规则

应用网关最多支持创建5条鉴权规则,最多可同时启用1条鉴权规则。

  1. 登录微服务引擎控制台
  2. 在左侧导航栏选择“应用网关 ”。
  3. 单击待操作的实例名称。
  4. 在左侧导航栏选择“访问控制 > 认证鉴权”。
  5. 单击“创建鉴权规则”,在弹出框中配置如下参数,其中带*为必填参数。

    表1 鉴权规则配置参数

    类别

    参数

    说明

    鉴权类型

    *鉴权规则名称

    自定义输入合法的鉴权规则名称。以英文字母开头,支持数字、字母,长度为2~64位字符。

    鉴权类型

    当前只支持自定义鉴权。

    *鉴权服务

    可在下拉框中选择已接入该应用网关的服务。

    说明:

    鉴权服务与后端业务建议为不同服务,若为同服务,则鉴权的负载均衡和后端转发的负载均衡可能会互相影响,导致负载均衡出现异常结果。

    *端口

    鉴权服务的端口,用于接收来自客户端或网关的鉴权请求。取值范围为1~65534。

    说明:

    当“鉴权服务”选择的服务,其来源为CSE Nacos引擎、CSE ServiceComb引擎或CCE 服务时,需要配置此参数。

    *鉴权接口

    鉴权服务的接口路径。网关访问的实际鉴权服务路径为:此处配置的接口路径拼接客户端请求路径。例如此处配置的接口路径为“/auth ”,客户端请求路径为“/hello”,则网关访问的鉴权服务路径为“/auth/hello”。

    请求中允许携带的请求头

    此处配置的请求头,如果出现在客户端请求中,则会添加到鉴权请求的请求头里。请至少添加鉴权token所在的请求头。Host、Method、Path和Content-Length请求头会被默认添加,您无需手动添加。

    说明:

    客户端发送给应用网关的请求类型与应用网关转发给鉴权服务的类型一致。

    请求中是否允许携带Body

    可单击设置允许携带Body,输入Body最大字节数。

    响应中允许保留的响应头

    此处配置的响应头如果出现在鉴权响应中,则会添加到客户端请求的请求头中。需要注意,客户端请求本身携带相同字段的请求头会被覆盖。

    超时时间

    网关等待鉴权服务响应的最大时间,超时后,会认为鉴权服务不可用。

    鉴权服务容错模式

    选择鉴权服务容错模式,当前支持:

    • 全部拦截:当鉴权服务不可用时(鉴权服务建立连接失败、超时或者返回5xx请求),网关拦截客户端请求。
    • 全部放通:当鉴权服务不可用时(鉴权服务建立连接失败、超时或者返回5xx请求),网关放通客户端请求。

    规则条件

    选择鉴权模式

    当前支持的鉴权模式为黑名单模式,即符合条件的需要鉴权,其余不需要鉴权。

    匹配规则

    单击“ 新增匹配规则”可添加匹配规则,选择域名、设置服务地址、选择请求方法和添加请求头。服务地址支持前缀匹配和精确匹配:

    • 前缀匹配:以前缀作为匹配条件。注意末尾要加上/*,如输入参数为/opt/*,则匹配以/opt开头的所有服务地址。
    • 精确匹配:即完全匹配,如输入参数为/opt,则匹配路径等于/opt的所有服务地址。
    说明:

    多个匹配规则间是“或”的关系。最多允许配置10条匹配规则。单个匹配规则内是“与”的关系。

  6. 单击“确定”,鉴权规则创建完成,则在鉴权规则列表显示新创建的鉴权规则。

    • 对于新创建的鉴权规则,默认是关闭状态,可在鉴权规则的“启用状态”列,单击,在弹出确认框中,单击“确认”,则该条鉴权规则为启用状态。

      同时只能开启一条鉴权规则。

    • 对于已启用的鉴权规则,可在鉴权规则的“启用状态”列,单击,在弹出确认框中,单击“确认”,则关闭该条鉴权规则。

编辑鉴权规则

  1. 登录微服务引擎控制台
  2. 在左侧导航栏选择“应用网关 ”。
  3. 单击待操作的实例名称。
  4. 在左侧导航栏选择“访问控制 > 认证鉴权”。
  5. 单击待编辑的鉴权规则右侧“操作”列的“编辑”,在弹出框中编辑该条鉴权规则信息。
  6. 单击“确定”编辑完成。

删除鉴权规则

  1. 登录微服务引擎控制台
  2. 在左侧导航栏选择“应用网关 ”。
  3. 单击待操作的实例名称。
  4. 在左侧导航栏选择“访问控制 > 认证鉴权”。
  5. 单击待删除的鉴权规则右侧“操作”列的“删除”,在弹出框中单击“确认”,删除该条鉴权规则。

相关文档