You need to enable JavaScript to run this app.
文档中心
API 网关

API 网关

复制全文
下载 pdf
最佳实践
使用 API Key 实现网关认证鉴权
复制全文
下载 pdf
使用 API Key 实现网关认证鉴权
API 网关使用 Key Auth 插件实现了基于 API Key 的认证鉴权,本文介绍如何为 API 网关配置 API Key 认证。​
注意事项​
  • Key Auth 插件支持在服务、路由级别的资源中开启和关闭,插件配置的生效优先级为路由 > 服务。​
  • Key Auth 开启后,只有使用合法消费者认证信息的访问,才通过认证鉴权。​
  • Key Auth 在消费者中生成,一个消费者最多支持 5 个 API Key。​
前提条件​
操作步骤​
步骤一:创建消费者​
  1. 登录 API 网关控制台。​
  1. 在顶部导航栏,选择目标地域。​
  1. 在左侧导航栏选择 消费者管理 > 消费者列表,单击 创建消费者。​
  • ​​​
  1. 单击 确定,完成配置。​
步骤二:生成 API Key​
  1. 在左侧导航栏选择 消费者管理 > 消费者列表。​
  1. 在消费者列表中,单击目标消费者名称,进入消费者详情页面。​
  1. 在认证信息区域,单击 生成 API Key。​
  • ​​​
  1. 在弹出的对话框内容选择 自动创建 API Key 认证信息。​
  • ​​​
  1. 单击 确定,生成 API Key 认证信息。​
  • ​​​
步骤三:启用 Key Auth 插件​
  1. 登录 API 网关控制台。​
  1. 在左侧导航栏选择 插件管理 > Key Auth插件,单击 创建插件,配置插件参数。​
  • 生效级别:选择 路由级别,并配置插件所属实例、服务和路由。​
  • 认证配置:选择 header,并配置来源为 Authorization,表示在请求头中的 Authorization 附带 API Key 认证信息。​
  • 消费者:选择步骤一种创建的消费者。​
  • 其他配置保持缺省。​
  • ​​​
  1. 单击 确定,完成配置。​
结果验证​
查看配置​
配置完成后,在插件列表中,选择 路由级别 页签,查看已配置的 Key Auth 插件,若插件状态为 已启用,表示插件生效。​
​​​
认证测试​
在 API 网关实例中开启 Key Auth 插件,并使用消费者生成 API Key 认证信息后。仅携带该认证信息的访问请求,能够通过 API 网关访问到后端 Upstream。​
  1. 使用 API 网关实例中配置的域名访问服务,当未携带 API Key 认证信息时。​
​
curl -H "Host: apig-example.com" http://14.xxx.xxx.xxx​
​
预期结果如下,表示认证失败,无法通过 API 网关访问到后端的服务。​
​
Consumer authentication failed.​
​
  1. 使用 API 网关实例中配置的域名访问服务,当携带 API Key 认证信息时。​
​
curl -H "Host: apig-example.com" http://14.xxx.xxx.xxx -H "Authorization: Bearer e8cc8b4f-***"​
​
预期结果如下,表示能够通过 API 网关访问到后端的服务。​
​
<!DOCTYPE html>​
<html>​
<head>​
<title>Welcome to nginx!</title>​
<style>​
html { color-scheme: light dark; }​
body { width: 35em; margin: 0 auto;​
font-family: Tahoma, Verdana, Arial, sans-serif; }​
</style>​
</head>​
<body>​
<h1>Welcome to nginx!</h1>​
<p>If you see this page, the nginx web server is successfully installed and​
working. Further configuration is required.</p>​
​
<p>For online documentation and support please refer to​
<a href="http://nginx.org/">nginx.org</a>.<br/>​
Commercial support is available at​
<a href="http://nginx.com/">nginx.com</a>.</p>​
​
<p><em>Thank you for using nginx.</em></p>​
</body>​
</html>​
​
最近更新时间:2025.03.27 16:50:32
这个页面对您有帮助吗?
有用
有用
无用
无用