微服务网关提供路由策略和鉴权策略,两种策略互相协同作用,可以实现多个第三方应用安全访问相同的内部服务。

前提条件

背景信息

当第三方应用需要访问微服务网关后端服务时,必须设置鉴权策略,以防止存在恶意请求,对后端服务造成无法预估的影响。

当存在多个第三方应用(假设有应用A和应用B)访问微服务网关后端服务,为每个第三方应用设置鉴权策略时会出现访问路径重叠的情况,导致无法正确配置鉴权策略。所以在微服务网关后端服务在对外开放时,需要设置多个访问路径,以便于设置多个鉴权策略,实现多个第三方应用安全访问相同的内部服务。

设置路由策略

  1. 登录微服务网关控制台
  2. 在顶部菜单栏选择地域
  3. 在左侧导航栏选择网关管理
  4. 网关管理页面单击网关名称。
  5. 网关详情页面左侧导航栏单击API管理
  6. API管理页面单击API名称。
  7. API管理页面请求处理区域单击创建策略
  8. 创建策略页面设置策略名称策略类型策略配置,然后单击确认创建路由策略
    创建策略参数说明:
    参数 描述
    策略名称 自定义设置策略名称。
    策略别名 自定义设置易于辨识策略的别名信息。
    策略类型 选择路由-ZUUL
    启用状态 策略开关,默认开启。
    策略配置 设置访问路径。根据第三方应用设置对应的访问路径,以应用A和应用B的访问路径为例:
    A:      
     path: /A/**      
     serviceId: myusers-service    
    B:      
     path: /B/**     
     serviceId: myusers-service
  9. API管理页面底部单击保存并发布
    系统弹出发布详情对话框,请单击关闭

设置鉴权策略

参考第三方应用访问内部服务的鉴权策略,为每一个第三方应用设置鉴权策略。
说明 不同的鉴权策略使用的Server Key是相同的,但是鉴权策略中的”rules/path“设置与步骤8中设置的“path”保持一致,保证每一个第三方应用的鉴权匹配路径不一样。不同的第三方应用访问相同的内部服务时,使用不同的鉴权匹配路径,也可以使用不同的Token进行鉴权。

结果验证

  1. 应用A访问内部服务。
    1. 在浏览器地址栏输入http://微服务网关绑定的EIP:80/A/user/test,按enter键,界面提示阻止JWT身份验证。A应用访问服务-阻止JWT身份验证
      微服务绑定的EIP,即是网关入口SLB绑定的EIP。绑定EIP的详细操作请参见绑定EIP
    2. 在访问路径后增加?jwt_token=Client Token的值信息,按enter键,界面返回Hello from [8080]!A应用访问服务-成功
      Client Token的值从微服务网关凭证详情页面获取。
  2. 应用B访问内部服务
    1. 在浏览器地址栏输入http://微服务网关绑定的EIP:80/B/user/test,按enter键,界面提示阻止JWT身份验证。B应用访问服务-阻止JWT身份验证
      微服务绑定的EIP,即是网关入口SLB绑定的EIP。绑定EIP的详细操作请参见绑定EIP
    2. 在访问路径后增加?jwt_token=Client Token的值信息,按enter键,界面返回Hello from [8080]!B应用访问服务-成功
      Client Token的值从微服务网关凭证详情页面获取。