今天我将继续演示 OpenResty Edge 产品。我将展示如何在网关应用中配置 HTTP 基本认证。

嵌入图片

HTTP 基本认证是由网关服务器直接处理的。

嵌入的图片

像往常一样,让我们进入 OpenResty Edge 的 Admin Web 控制台。这是我们的控制台的样本部署。每个用户都有自己的本地部署。

屏幕截图

让我们为我们的网关应用程序配置 HTTP 基本认证凭证。

我们可以继续使用之前的示例应用,test-edge.com。

屏幕截图

进入这个应用程序。

屏幕截图

转到 HTTP 基本认证账号页面。

屏幕截图

我们支持添加一个或多个基本认证用户组。每个用户组可以有一个或多个用户。

添加一个新的基本认证用户组。

屏幕截图

输入组名“tutorial-group”。这个用户组只是为了演示这个教程。

屏幕截图

保存。

屏幕截图

添加一个新的用户到这个组。

屏幕截图

点击这个按钮来添加。

屏幕截图

键入用户名“Sam”。

屏幕截图

输入密码。

屏幕截图

保存。

屏幕截图

现在这个叫 “tutorial-group“ 的用户组中有了一个新用户。

屏幕截图

顺便说一下,我们可以去基本选项卡编辑用户组的设置。这里我们不作修改。

屏幕截图

关闭这个页面。

屏幕截图

转到页面规则页面,启用基本认证。

屏幕截图

这个现有的页面规则已经设置了一个反向代理到一个预先定义的上游。我们在之前的教程中演示过这部分。

屏幕截图

让我们添加一个新的页面规则。

屏幕截图

添加一个新的动作。

屏幕截图

输入“basic auth“进行搜索。

屏幕截图

选择“启用基本认证”选项。

屏幕截图

选择我们刚刚创建的基本认证用户组。

屏幕截图

选择“app-tutorial-group”。

屏幕截图

额外的“app-”前缀表示该用户组只用于当前的应用程序。而全局基本认证的用户组名称将得到额外的前缀“global-”。我稍后将会讲到全局 HTTP 基本认证的设置。

我们将这一规则设置为“置顶规则“,以确保这一规则总是被最先执行。你可以设置任何你想要的顺序。

屏幕截图

保存这个规则。

屏幕截图

像往常一样,我们需要发布来推送这个新改动。

屏幕截图

点击这个按钮。

屏幕截图

发布!

屏幕截图

改动现在已经同步到所有的网关服务器。

屏幕截图

现在,新的页面规则已经被推送到所有的网关集群和服务器。

嵌入视频

我们的配置变化不需要服务器重载、重启或二进制升级。所以它是非常有效和可扩展的。

嵌入的图片

让我们访问一下网关应用程序。我们可以看到,该页面触发了网络浏览器的认证对话框,而不是显示网页内容。

嵌入视频

首先,尝试点击“取消”按钮。我们可以看到该页面变成了一个“401 未授权”的错误页面。

嵌入的视频

嵌入的视频

刷新该页面。

嵌入的视频

这一次,我们输入之前准备的正确的用户名和密码。

嵌入视频

现在我们可以访问该网页了。

嵌入的视频

接下来,让我们用 curl 工具在命令行上测试 HTTP 基本认证设置。

在终端上,我们发送一个测试请求。

curl -sSI http://test-edge.com

屏幕截图

我们可以看到响应是 401 Unauthorized。

屏幕截图

让我们这次用 “u“ 选项来指定基本认证凭证。

屏幕截图

这里是用户的名字。

屏幕截图

这里是明文密码。

屏幕截图

运行这个命令。

我们可以看到,现在的响应是 200 OK。我们通过了认证,服务器返回了最终的响应。

屏幕截图

除了在 Edge 应用程序内部配置基本认证外,我们还可以在 Edge 的全局配置中进行配置。全局认证用户组对所有 Edge 应用程序都是可见的。

转到全局配置页面。

屏幕截图

进入全局基本认证凭证页面。

屏幕截图

点击这个按钮,添加一个新的基本认证用户组。

屏幕截图

输入组的名称。

屏幕截图

保存。

屏幕截图

现在我们已经创建了一个新的全局基本认证用户组。

屏幕截图

我们也可以点击编辑按钮添加新用户。

屏幕截图

现在点击这个按钮添加新用户。

屏幕截图

输入用户名 “Kelly“。

屏幕截图

输入密码。

屏幕截图

保存。

屏幕截图

现在 “tutorial-global-group“ 用户组中有了一个新用户。让我们看看如何为我们的网关应用程序配置全局凭证。

屏幕截图

关闭此页面。

屏幕截图

转到应用程序列表页。

屏幕截图

搜索 test-edge.com 域名。

屏幕截图

让我们进入这个应用程序。

屏幕截图

转到页面规则页面。

屏幕截图

编辑这个规则。

屏幕截图

点击下拉列表,切换用户组。

屏幕截图

我们可以在这里选择一个全局用户组。此修改被保存和发布后,该全局用户组中的用户凭证就会被使用。

屏幕截图

这就是我今天要讲的内容。

如果你喜欢这个教程,请订阅这个博客网站和我们的 YouTube 频道B 站频道。谢谢!

关于本文和关联视频

本文和相关联的视频都是完全由我们的 OpenResty Showman 产品从一个简单的剧本文件自动生成的。

关于作者

章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。

章亦春(Github ID:agentzh),出生于中国江苏,现定居美国硅谷。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、Yahoo!、Alibaba, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者,章亦春被许多业内开发者描述为开源领域的“传奇“。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的三个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)、OpenResty Edge(最适合微服务和分布式流量的全能型网关软件)以及 OpenResty Plus(加强版 Web 应用服务器) ,广受全球数十家上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJIT、GDB、SystemTap、LLVM、Perl 等,并编写过 60 多个开源软件库。

关注我们

如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

我们提供了英文版原文和中译版(本文) 。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!