Apisix网关中basic-auth插件使用

本文介绍了Apache APISIX中如何配置和使用basic-auth插件进行用户认证。用户和密码以Base64编码形式在Header中传递,插件通过解析Header与ETCD中存储的凭证对比完成认证。文中还提供了配置消费者和路由的示例,以及测试验证的方法。

前言:

        basic-auth是用于固定管理消费者请求时携带的用户名和密码,进行校验。用户和密码通过冒号进行关联,且用base64加密后放到Header中。插件在接收到请求以后,对header内Authorization的内容进行解析,解析出对应的用户名和密码。然后和ETCD中消费者中存储的用户名(username)和密码(password)进行对比。如果符合通过认证。

消费者配置basic-auth:

        此处可以通过apisix-dashboard中 Consumer菜单下进行配置,配置时选择basic-auth插件,并在json中配置以下内容。

        本教程是直接在ETCD中添加,和功能操作结果是对应的。

{
    "username": "foo",
    "plugins": {
        "basic-auth": {
            "username": "foo",
            "password": "bar"
        }
    }
}

在路由中启动basic-auth:

{
    "id": "basicauth-1",
    "create_time": 1664181204,
    "update_time": 1664181204,
    "uri": "/test/basic",
    "name": "basic认证",
    "methods": [
        "GET",
        "POST"
    ],
    "plugins": {
        "basic-auth": {
        },
        "proxy-rewrite": {
            "uri": "/push/body/success"
        }
    },
    "upstream_id": "1",
    "status": 1
}

测试验证:

        用PostMan请求“/test/basic"接口时,在header中增加用户和密码认证信息。注意此处携带的用户名和密码是通过Base64加密的。此处应用官网没有细说。

       header中增加信息如下:

               Authorization:Basic + Base64(用户名:密码)

       真实数据为: 

                Authorization:Basic Zm9vOmJhcg==

补充:

        官网对插件用户名和密码是怎么加密、怎么组合的没有太详细说明,在网上没有找到相关资料,还是通过分析源码找到的使用方法,后续增加插件逻辑的分析,敬请期待。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DHF_369

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值