OpenResty Edge 的用户管理让你在 Web 控制台里实现基于角色的访问控制:内建 “super admin” 和 “normal admin” 两个用户组(只有 “super admin” 能创建新组),可为自定义用户组配置页面级权限,并为每个用户按应用授予四档权限——变更、发布、更新、DNS 管理。本教程走一遍创建用户、分配用户组、授权应用,并以该用户登录来验证效果的完整流程。

创建新的 normal user 账号

先进入控制台。这是我们用于演示的控制台部署,每位用户会有自己本地的部署。

用于演示的 OpenResty Edge Web 控制台仪表盘

先进入 “Users & Groups” 标签下方的用户页面。

OpenResty Edge 中 Users & Groups 标签下的用户页面

这里是这个控制台里所有用户的列表。现在创建一个新的用户账号。

控制台所有用户列表及创建新用户账号的按钮

将之取名为 “jeff-tester”。

新用户表单,用户名设为 jeff-tester

我们需要设置一个初始密码。密码的设置会有一些要求。

初始密码输入框及 OpenResty Edge 的密码要求

我们将密码设为 “Abc@123456”。

为新用户账号输入初始密码

再次输入并确认密码。

再次输入以确认初始密码

分配用户组与基于角色的权限

现在我们需要将这个用户进行分组。用户组可用于配置具体页面的权限。“super admin” 和 “normal admin” 是两个内建的用户组,都有权限访问和更新所有页面。但只有 “super admin” 可以创建一个新的用户组。

用户组下拉框,显示内建的 super admin 和 normal admin 组

本教程中,我们选择 “normal user”。这是我们提前定义好的用户组。我们将在其他视频演示如何创建用户组。

为新账号分配自定义的 normal user 用户组

除了默认的普通登入方式,您也可以配置其他 LDAP 身份验证服务器。

选择 LDAP 身份验证服务器作为登录方式

最后,我们可以选择要求用户在下一次登入时修改密码,这样密码就不会再是初始设置。

要求用户下次登录时修改密码的选项

我们现在先不做要求。点击保存。

保存新建的 jeff-tester 用户账号

现在可以看到一个叫 “jeff-tester” 的用户已经建好了。因为我们目前是 “super admin” 的登入状态,如果这个用户忘记了自己的密码,我们可以重设密码。

已创建的 jeff-tester 用户,super admin 可为其重设密码

用户名在创建后就不能修改,但其用户组或登入类型可以调整。

编辑用户:用户名不可改,但用户组和登录类型可调整

为用户组和应用配置访问控制

进入 “User Groups“ 页面。

进入 OpenResty Edge 的 User Groups 页面

这是已经提前定义好的用户组。我们可以点击 “normal user” 用户组查看细节。

已定义的用户组列表,选中 normal user 组

这里是各页面访问权限的详细列表。它具有高度可定制性。所有页面或功能都可以单独进行配置。

normal user 组的各页面访问权限详细列表

可以看到, “DNS” 模块和 “Gateway Clusters” 对普通用户群组,都是不可见的。之后我们可以跳转到刚创建的账号进行确认。如需对“谁能管理具体 DNS 应用”做更细粒度的控制,参见 OpenResty Edge 中的 DNS 应用访问控制

DNS 模块和 Gateway Clusters 对 normal user 组不可见

我们可以在另一个标签页 “ User Management” 下,管理用户组内成员的增减。

User Management 标签页,用于增减用户组成员

“normal user” 默认对应用都没有访问权限。访问控制需要在应用内进行配置。

提示:normal user 默认对应用没有访问权限

让我们进入示例应用 “test-edge.com” 中。

打开示例应用 test-edge.com

进入 “Access Control” 页面。

应用内的 Access Control 页面

单击这个按钮就可以允许指定用户访问。

用于授予单个用户访问该应用的按钮

您可以搜索和选择用户,并给予这个应用的访问权限。

搜索要授权访问该应用的用户

这里我们选择测试用户。

选择要授权的 jeff-tester 测试用户

该用户始终可以查看此应用的详细信息。“super admin” 还可以授予变更、发布、更新和 DNS 管理的权限。

应用级权限:变更、发布、更新、DNS 管理

我们保持默认配置,仅允许变更。保存。

保存仅允许变更的默认权限配置

以 normal user 登录验证配置效果

现在切换到 “normal user” 来查看效果。登出现有账户。

从 super admin 账户登出

使用刚创建的用户名和密码登录。

以新建的 normal user 账号登录

登入后,我们可以看到这里只有两个标签页。“Gateway cluster” 和 “Global config” 对于这个 “normal user” 都不可见。

normal user 只看到两个标签页,Gateway cluster 和 Global config 已隐藏

用户只能看见一个应用,因为我们之前只给了这个权限。

授权后 normal user 只能看到一个应用

进入应用。

以 normal user 身份进入已授权的应用

可以看到,由于我们对用户权限的设置,左侧没有发布页。

由于未授予该权限,左侧没有发布页

常见问题

如何在 OpenResty Edge 中把某个用户限制到单个应用?

先把用户放进一个默认不带任何应用访问权限的用户组,然后打开目标应用,进入其 “Access Control” 页面,单独为这个用户授权。normal user 在你授权之前无法访问任何应用,因此他只会看到你显式授权的那些应用。

OpenResty Edge 中 “super admin” 和 “normal admin” 有什么区别?

“super admin” 和 “normal admin” 都是内建用户组,都能查看和更新所有页面。区别在于:只有 “super admin” 能创建新的用户组。像本教程里的 “normal user” 这样的自定义用户组,其页面级权限需要单独配置。

OpenResty Edge 能对接 LDAP 服务器做身份验证吗?

可以。在创建或修改用户时,可以把登录方式从默认的普通登入切换为 LDAP 身份验证服务器,这样凭据就会交给你现有的目录服务校验,而不是用本地密码。

OpenResty Edge 中可以给用户按应用授予哪些权限?

除了查看应用详情之外,“super admin” 还可以授予用户对该应用的变更、发布、更新和 DNS 管理权限。默认配置只允许变更,因此发布需要单独显式授予权限。

关于 OpenResty Edge

OpenResty Edge 是一款专为微服务和分布式流量架构设计的全能型网关软件,由我们自主研发。它集流量管理、私有 CDN 构建、API 网关、安全防护等功能于一体,帮助您轻松构建、管理和保护现代应用程序。OpenResty Edge 拥有业界领先的性能和可扩展性,能够满足高并发、高负载场景下的苛刻需求。它支持调度 K8s 等容器应用流量,并可管理海量域名,轻松满足大型网站和复杂应用的需求。

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

关于作者

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

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

关注我们

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

我们的微信公众号

翻译

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