Fizz企业级微服务网关-权限校验

概述

通过网关暴露的接口,必须配置路由。

权限校验是对请求接口的客户端的认证,确认其能否访问接口。

客户端可通过 fizz-appid 请求头表明身份,即表明自身是什么应用。

管理后台可配置应用的认证方式,当前支持 md5、密钥、自定义 3 种方式。

路由可关联应用,即对访问接口的客户端认证。

下面以 “路由-反向代理” 的例子为基础,介绍应用的定义及 3 种认证方式。

#应用定义

管理后台定义应用 client-app-1:

#配置认证

#密钥认证

上面的配置:网关对请求头 fizz-appid=client-app-1 的客户端,会检验 fizz-sign 请求头是否为图中的密钥。

#md5认证

上面的配置:网关 MD5【client-app-1 + fizz-ts(时间戳,毫秒) + 95c6990e07714a63aba8354fa6544701】,检查前值是否与客户端传递的 fizz-sign 一致。

#自定义

认证方式选 “自定义插件”,在网关代码中继承 AbstractCustomAuth.java,并实现

public abstract Mono<Result<?>> auth(String appId, String ip, String timestamp, String sign, App fizzAppConfig, ServerWebExchange exchange);
// appId: client-app-1
// ip: 客户端 ip
// timestamp: fizz-ts
// sign: fizz-sign
// fizzAppConfig: 应用配置

实现类标注为 @Component,网关需重启,如:

@Component
public class MyAuth extends AbstractCustomAuth {

    @Override
    public Mono<Result<?>> auth(String appId, String ip, String timestamp, String sign, App fizzAppConfig, ServerWebExchange exchange) {
        if (fizzAppConfig.secretkey.equals(sign)) {
            return Mono.just(Result.succ()); // 认证通过
        }
        return Mono.just(Result.fail("密钥不对")); // 响应客户端 "密钥不对"
    }
}

#路由配置

在 “路由-反向代理” 的例子上:

选择 client-app-1 保存后:

这样配置后:只有 client-app-1 客户端能访问 aservice/a/b,同时网关会根据 client-app-1 的认证方式,校验请求。

#Fizz网关介绍

Fizz Gateway 是一个基于 Java开发的微服务聚合网关,能够实现热服务编排聚合、自动授权选择、线上服务脚本编码、在线测试、高性能路由、API审核管理、回调管理等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行API服务治理、减少中间层胶水代码以及降低编码投入、提高 API 服务的稳定性和安全性。

官网:https://www.fizzgate.com

GitHub: GitHub - fizzgate/fizz-gateway-community: 微服务API聚合网关 An Aggregation API Gateway

码云:fizz-gateway: 微服务API聚合网关 An Aggregation API Gateway

入门教程:入门系统教程 | Fizz Gateway


作者:lancer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值