组织机构、角色与授权配置

主要文件

这部分配置主要分布在两个文件中:

  • organizations.conf
  • roles.conf

digital 项目里,这两个文件已经提供了比较完整的样例。

organizations.conf 的职责

organizations.conf 更偏向“组织实例”和“组织内账号初始化”,通常包括:

  • 预置机构注册
  • 机构名称、描述、启用状态
  • 机构级授权
  • 机构管理员初始化
  • 机构成员初始化
  • 机构成员直接授权

它解决的是“系统启动后有哪些机构、这些机构初始具备什么边界”的问题。

roles.conf 的职责

roles.conf 更偏向“角色模型定义”,通常包括:

  • 预定义角色声明
  • 角色中文名与编码
  • 角色权限列表
  • 系统角色、管理员角色、普通角色的通用授权
  • 业务角色之间的组合授权

它解决的是“角色体系长什么样、每个角色拥有哪些能力”的问题。

组织配置与角色配置的关系

通常可以把这两者理解成两层:

  • roles.conf 定义“可复用的角色模板”
  • organizations.conf 定义“某个机构实际怎么初始化、给谁授予哪些角色或权限”

如果把角色定义和组织实例化混在同一个文件里,后续治理会很快失去边界。

关于配置文件直接授权

digitalorganizations.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-org
  • galaxy-app-config-rbac
  • galaxy-app-config-security
最近更新:
发布者: huanghaiquan
扫码咨询