组织机构、角色与授权配置
主要文件
这部分配置主要分布在两个文件中:
organizations.confroles.conf
在 digital 项目里,这两个文件已经提供了比较完整的样例。
organizations.conf 的职责
organizations.conf 更偏向“组织实例”和“组织内账号初始化”,通常包括:
- 预置机构注册
- 机构名称、描述、启用状态
- 机构级授权
- 机构管理员初始化
- 机构成员初始化
- 机构成员直接授权
它解决的是“系统启动后有哪些机构、这些机构初始具备什么边界”的问题。
roles.conf 的职责
roles.conf 更偏向“角色模型定义”,通常包括:
- 预定义角色声明
- 角色中文名与编码
- 角色权限列表
- 系统角色、管理员角色、普通角色的通用授权
- 业务角色之间的组合授权
它解决的是“角色体系长什么样、每个角色拥有哪些能力”的问题。
组织配置与角色配置的关系
通常可以把这两者理解成两层:
roles.conf定义“可复用的角色模板”organizations.conf定义“某个机构实际怎么初始化、给谁授予哪些角色或权限”
如果把角色定义和组织实例化混在同一个文件里,后续治理会很快失去边界。
关于配置文件直接授权
digital 的 organizations.conf 已经明确提醒:
- 基于配置文件做直接授权,主要是为了开发便利
- 这种授权结果不会像数据库授权那样天然可视、可审计
- 在生产环境中应谨慎开启
如果某些授权配置需要在“发布前固化、发布后保护”,应优先考虑放入受保护的应用设置层,而不是把业务授权长期留在可运维编辑的普通配置文件中。
可复制模板
organizations.conf 模板
#######################################
# 机构注册配置
#######################################
# 通过配置文件可以预置一个或多个机构;
# 前缀:galaxyplatform.security.organization.registry.orgs
# 注:实际能够创建的机构数量会受到 license 的限制;
# 注册一个机构:
# 命名规则:以 .orgs.<机构编码> 定义机构的各项属性,
# 如:.orgs.testcom.name=测试机构 ,注册一个编码为 “testcom” 的机构,名称为 “测试机构”
#
# 分别以不同的名称设置多个,便可以注册多家机构,如: .orgs.testcom1.name=测试机构1
# 机构的名称;
galaxyplatform.security.organization.registry.orgs.testcom.name=测试机构
# 机构的描述;
galaxyplatform.security.organization.registry.orgs.testcom.description=测试机构
# 是否立即启用机构;
galaxyplatform.security.organization.registry.orgs.testcom.setup=true
# 机构授权;
# orgs.testcom.authorities 给编码为“testcom”的机构授权;
#
galaxyplatform.security.organization.registry.orgs.testcom.authorities=FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/ORG-SETTINGS,\
FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/ORG-MEMBER-REGISTER,\
FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/ORG-MEMBER-AUTHORIZE,\
FEATURE://APPLICATION/MENU/HOME
# 注册机构管理员;
# 命名规则:orgs.<机构编码>.admin 给编码为“testcom”的机构设置管理账号的注册信息;
#
galaxyplatform.security.organization.registry.orgs.testcom.admin.username=admin
galaxyplatform.security.organization.registry.orgs.testcom.admin.password=changeMe
galaxyplatform.security.organization.registry.orgs.testcom.admin.name=默认机构管理员
galaxyplatform.security.organization.registry.orgs.testcom.admin.secureEmail=admin@example.com
# 指定成员账号的默认角色;
# 后续还可以在控制台中进行设置;
# galaxyplatform.security.organization.registry.orgs.testcom.memberRoles=DEFAULT-MEMBER
# 注册成员账号;
# orgs.testcom.members.member1.name 为机构“testcom”注册一个编码为 member1 的成员账号,名称为 “成员1”
#
# galaxyplatform.security.organization.registry.orgs.testcom.members.member1.name=成员1
# galaxyplatform.security.organization.registry.orgs.testcom.members.member1.password=changeMe
# galaxyplatform.security.organization.registry.orgs.testcom.members.member1.secureEmail=member1@example.com
# 授权成员权限;
# galaxyplatform.security.organization.registry.orgs.testcom.members.member1.authorities=FEATURE://APPLICATION/MENU/HOME
# 授予机构成员 member1 角色 TEST-MEMBER;
# galaxyplatform.security.organization.registry.orgs.testcom.members.member1.roles=TEST-MEMBER
roles.conf 模板
#------------------------
# 定义角色;(角色名称大小不敏感)
#------------------------
# 1. 系统预定义角色;
# 系统有 3 个预定义的默认角色 ROOT 、 ADMIN 、 EVERYONE ,不需要显式地声明:
# ROOT 系统根账号角色,默认授予根账号;
# ADMIN 组织管理员角色,默认授予任意组织的管理员,当账号被解除组织管理员身份后,该权限自动失效;
# EVERYONE 普通账号角色,默认授予任意账号;
#
# 2. 配置预定义角色;
# 按以下设置可声明预定义角色;
# galaxyplatform.security.rbac.roles=GUEST
#
# 3. 定义角色的中文名;
# 通过格式 [名称](编码) 定义名称和编码;
# 例如:galaxyplatform.security.rbac.roles=[操作员](OPERATOR)
#
# 默认格式下,例如 galaxyplatform.security.rbac.roles=GUEST ,定义的名称和编码相同,相当于: [GUEST](GUEST) ;
galaxyplatform.security.rbac.roles=[业务管理员](BIZ-ADMIN),[业务成员](BIZ-MEMBER)
#------------------------
# 定义角色的预定义权限列表;
#------------------------
galaxyplatform.security.rbac.authorities.BIZ-ADMIN=FEATURE://APPLICATION/MENU/HOME,\
FEATURE://APPLICATION/MENU/SETTINGS
galaxyplatform.security.rbac.authorities.BIZ-MEMBER=FEATURE://APPLICATION/MENU/HOME
相关AI skills
galaxy-app-config-orggalaxy-app-config-rbacgalaxy-app-config-security




