title | keywords | description | ||||
---|---|---|---|---|---|---|
basic-auth |
|
This document contains information about the Apache APISIX basic-auth Plugin. |
The basic-auth
Plugin is used to add basic access authentication to a Route or a Service.
This works well with a Consumer. Consumers of the API can then add their key to the header to authenticate their requests.
For Consumer:
Name | Type | Required | Description |
---|---|---|---|
username | string | True | Unique username for a Consumer. If multiple Consumers use the same username , a request matching exception is raised. |
password | string | True | Password of the user. |
For Route:
Name | Type | Required | Default | Description |
---|---|---|---|---|
hide_credentials | boolean | False | false | Set to true to pass the authorization request headers to the Upstream. |
To enable the Plugin, you have to create a Consumer object with the authentication configuration:
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 also use the APISIX Dashboard to complete the operation through a web UI.
Once you have created a Consumer object, you can then configure a Route or a Service to authenticate requests:
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
}
}
}'
After you have configured the Plugin as mentioned above, you can make a request to the Route as shown below:
curl -i -ufoo:bar http://127.0.0.1:9080/hello
HTTP/1.1 200 OK
...
hello, world
If the request is not authorized, an error will be thrown:
HTTP/1.1 401 Unauthorized
...
{"message":"Missing authorization in request"}
And if the user or password is not valid:
HTTP/1.1 401 Unauthorized
...
{"message":"Invalid user authorization"}
To disable the jwt-auth
Plugin, you can delete the corresponding JSON configuration from the Plugin configuration. APISIX will automatically reload and you do not have to restart for this to take effect.
curl http://127.0.0.1:9080/apisix/admin/routes/1 -X PUT -d '
{
"methods": ["GET"],
"uri": "/hello",
"plugins": {},
"upstream": {
"type": "roundrobin",
"nodes": {
"127.0.0.1:1980": 1
}
}
}'
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。