1 Star 0 Fork 166

东郡 / Apache APISIX incubating

forked from iresty / Apache APISIX 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
basic-auth.md 3.71 KB
一键复制 编辑 原始数据 按行查看 历史
kv 提交于 2020-03-22 19:22 . doc: doc style for plugin basic-auth (#1320)

Chinese

Summary

Name

basic-auth is an authentication plugin that need to work with consumer. Add Basic Authentication to a service or route.

The consumer then adds its key to the request header to verify its request.

For more information on Basic authentication, refer to Wiki for more information.

Attributes

Name Requirement Description
username required different consumer have different value, it's unique. different consumer use the same username, and there will be a request matching exception.
password required the user's password

How To Enable

1. set a consumer and config the value of the basic-auth option

curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "username": "foo",
    "plugins": {
        "basic-auth": {
            "username": "foo",
            "password": "bar"
        }
    }
}'

you can visit Dashboard http://127.0.0.1:9080/apisix/dashboard/ and add a Consumer through the web console:

auth-1

then add basic-auth plugin in the Consumer page:

auth-2

2. add a Route or add a Service , and enable the basic-auth plugin

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "methods": ["GET"],
    "uri": "/hello",
    "plugins": {
        "basic-auth": {}
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'

Test Plugin

  • missing Authorization header
$ curl http://127.0.0.2:9080/hello -i
HTTP/1.1 401 Unauthorized
...
{"message":"Missing authorization in request"}
  • user is not exists:
$ curl -i -ubar:bar http://127.0.0.1:9080/hello
HTTP/1.1 401 Unauthorized
...
{"message":"Invalid user key in authorization"}
  • password is invalid:
$ curl -i -ufoo:foo http://127.0.0.1:9080/hello
HTTP/1.1 401 Unauthorized
...
{"message":"Password is error"}
  • success:
$ curl -i -ufoo:bar http://127.0.0.1:9080/hello
HTTP/1.1 200 OK
...
hello, world

Disable Plugin

When you want to disable the basic-auth plugin, it is very simple, you can delete the corresponding json configuration in the plugin configuration, no need to restart the service, it will take effect immediately:

$ curl http://127.0.0.1:2379/apisix/admin/routes/1 -X PUT -d value='
{
    "methods": ["GET"],
    "uri": "/hello",
    "plugins": {},
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'
Lua
1
https://gitee.com/ldongjun/apisix.git
git@gitee.com:ldongjun/apisix.git
ldongjun
apisix
Apache APISIX incubating
master

搜索帮助