前言:
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==

补充:
官网对插件用户名和密码是怎么加密、怎么组合的没有太详细说明,在网上没有找到相关资料,还是通过分析源码找到的使用方法,后续增加插件逻辑的分析,敬请期待。
本文介绍了Apache APISIX中如何配置和使用basic-auth插件进行用户认证。用户和密码以Base64编码形式在Header中传递,插件通过解析Header与ETCD中存储的凭证对比完成认证。文中还提供了配置消费者和路由的示例,以及测试验证的方法。
1884

被折叠的 条评论
为什么被折叠?



