惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Help Net Security
Help Net Security
P
Privacy International News Feed
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
AWS News Blog
AWS News Blog
K
Kaspersky official blog
A
Arctic Wolf
Latest news
Latest news
T
Threat Research - Cisco Blogs
L
LINUX DO - 最新话题
P
Privacy & Cybersecurity Law Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Google DeepMind News
Google DeepMind News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
月光博客
月光博客
N
News and Events Feed by Topic
Jina AI
Jina AI
博客园 - 司徒正美
WordPress大学
WordPress大学
罗磊的独立博客
雷峰网
雷峰网
AI
AI
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Security @ Cisco Blogs
博客园 - 三生石上(FineUI控件)
H
Heimdal Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cisco Blogs
博客园 - 【当耐特】
The Hacker News
The Hacker News
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Schneier on Security
Schneier on Security
博客园 - Franky
S
SegmentFault 最新的问题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cloudbric
Cloudbric
爱范儿
爱范儿
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
Last Week in AI
Last Week in AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Know Your Adversary
Know Your Adversary
Google DeepMind News
Google DeepMind News

博客园 - Agile.Zhou

AgileAI - 一个新的 .NET AI 库 并发,并行与异步 为什么说 IO 操作异步才有意义 自定义 Visual Studio 主题 使用 Azure AI Foundry 微调模型 SK + Neo4j 实现简单问答系统 LongRunningTask-正确用法 如何正确实现一个 BackgroundService Dynamic adaptation to application sizes (DATAS) GC 策略 使用 AutoGen Studio 打造你的私有团队 在 Aspire 项目下使用 AgileConfig 使用 SK 进行向量操作 本地部署 DeepSeek Janus Pro 文生图大模型 Kernel Memory 让 SK 记住更多内容 .NET 依赖注入中的 Captive Dependency 在 Development 环境下依赖注入的行为可能有所不同 使用 SK Plugin 给 LLM 添加能力 使用 SemanticKernel 对接 Ollma 在 Github Action 管道内集成 Code Coverage Report
AgileConfig-1.11.0 发布:增强的权限管理
Agile.Zhou · 2025-12-09 · via 博客园 - Agile.Zhou

AgileConfig 作为一个轻量级配置中心,我一直强调其“轻量”的概念。因此,权限管理这一块一直比较薄弱,甚至可以说形同虚设。然而,在实际项目实施中,用户对于权限管理的需求非常强烈,因为某些配置(如数据库连接串)极为敏感。因此,加强权限管理功能的呼声一直很高。这次的新版本,就带来了这个重磅功能:基于角色的访问控制(RBAC)。关于什么是基于角色的访问控制,我想大家应该都明白,这里就不再赘述了。

题外话:AI 辅助编程

在开始介绍功能之前,我想聊一聊 AI 辅助编程这个话题。因为本次角色权限功能的开发,80%的编码任务是由 AI 完成的。我使用的模型是 OpenAI 的 codex。大家可能觉得 80% 这个数字非常亮眼,以为我因此少熬了几个夜,本来需要10天的工作,2天就完成了。但事实并非如此美好。AI 确实可以帮我生成基础的 CRUD 代码,但剩下的 20% 的代码却花了我 80% 的时间。

原因可能在于,这次开发并非一个全新的项目,而是在原有项目基础上叠加新功能。在开发新功能之前,需要先拆除原来与权限相关的代码。AI 在细节处理上并不能做到尽善尽美,即使在我介入并不断给出提示后,它还是屡屡出错。最后我实在无法忍受,只能亲自上手修改。但这时又出现了一个严重的问题:当我想亲自接手编码时,过程并不顺利,因为我对 AI 生成的代码不够了解。如果是自己写的代码,从整体到细节都了然于心,出现问题时能很快定位到错误的代码块。但要去修改 AI 写的代码,就会感到异常困难,无从下手。你不知道问题出在哪里,也不知道修改一处代码是否会影响其他部分。于是,只能从头到尾认真阅读并理解所有的修改点。可以说,这个过程并没有比自己从头实现一遍节省多少时间。这次的实践体验并不算美好,但从另一个方面也说明,AI 离替代程序员,至少是替代我,还为时尚早。

以下将详细介绍 AgileConfig 中的角色管理与用户管理功能。

0. 角色列表

首次操作请使用超级管理员登录系统,点击侧边菜单“角色”,就会显示内置的角色列表:Administrator 和 Operator。这两个角色不能被删除,但可以编辑其对应的权限。

1. 角色新增

管理员可以根据团队的组织结构或职能划分,创建不同的角色,例如“管理员”、“开发人员”、“测试人员”或“运维人员”。

创建角色的步骤如下:

  1. 登录 AgileConfig 管理后台。
  2. 导航至 “系统设置” -> “角色管理” 菜单。
  3. 点击 “新增” 按钮,打开新增角色对话框。
  4. 在对话框中,您需要填写以下信息:
    • 角色名称: 一个清晰易懂的名称,如 Developers
    • 权限: 勾选该角色所拥有的权限。AgileConfig 的权限设计得非常精细,您可以为角色分配“编辑配置”、“发布配置”、“查看节点”等具体的操作权限。
  5. 点击 “确定” 保存新角色。

通过这种方式,您可以快速定义好不同职责所需的权限集合,为后续的用户管理打下基础。

2. 角色编辑

随着业务的发展或团队成员职责的变更,我们可能需要调整某个角色的权限。例如,为“开发人员”角色增加“回滚配置”的权限。

编辑角色的步骤非常简单:

  1. 在“角色管理”页面,找到您想要编辑的角色。
  2. 点击对应角色行的 “编辑” 按钮。
  3. 在弹出的对话框中,您可以修改角色名称或重新勾选所需的权限。
  4. 点击 “确定” 保存更改。

注意:修改角色的权限会立即影响到所有被赋予该角色的用户。在执行此操作前,请务必确认变更带来的影响。

3. 角色删除

如果某个角色不再需要,管理员可以将其删除。

删除角色的步骤如下:

  1. 在“角色管理”页面,找到您希望删除的角色。
  2. 点击对应角色行的 “删除” 按钮。
  3. 系统会弹出确认对话框,以防误操作。

4. 给用户设置角色

将用户与角色关联起来是实现权限管理的关键一步。在 AgileConfig 中,您可以在创建或编辑用户时直接为其分配角色。

操作步骤如下:

  1. 导航至 “系统设置” -> “用户管理” 菜单。
  2. 点击 “新增” 或者 “编辑” 按钮,打开对话框。
  3. 在 “角色” 选项中,从下拉列表或复选框中选择一个或多个已经创建好的角色分配给该用户。
  4. 点击 “确定” 保存信息。

保存成功后,该用户就继承了所分配角色的所有权限。如果一个用户被赋予了多个角色,他将拥有所有这些角色权限的并集。这种方式使得新员工入职或岗位变动时的权限授予工作变得异常高效和标准化。

用户在设置权限后进行登录,系统会自动计算出他具有的权限范围,以及对应的菜单权限等。

应用-用户授权

本次更新对应用的权限控制逻辑进行了重新设计。

  1. 管理员可以查看所有的应用。
  2. 其他角色原则上只能查看由自己创建的应用。
  3. 如果想让其他用户也能够查看或编辑对应的应用,则需要对其进行授权。

总结

本次 AgileConfig 的版本更新,我们引入了基于角色的访问控制(RBAC)功能。通过将权限与角色绑定、用户与角色关联的方式,实现了用户与权限的解耦,显著提升了系统的安全性和可维护性。

值得一提的是,本次功能的开发深度体验了 AI 辅助编程。尽管 AI 在基础代码生成上表现出色,但在处理复杂逻辑和项目既有代码的改造时,仍暴露出诸多局限性,甚至增加了后期调试与重构的难度。这次实践让我们深刻体会到,AI 目前尚难完全替代程序员进行复杂的软件工程任务。

最终,通过精细化的角色与权限设计,新版本将使您的配置中心运维工作更加轻松、有序。

最后

✨✨✨Github地址:https://github.com/dotnetcore/AgileConfig 开源不易,欢迎star✨✨✨

演示地址:https://agileconfig-server.xbaby.xyz/ 超级管理员账号:admin 密码:123456

关注我的公众号一起玩转技术