【HZERO 微服务平台 1】开源免费的企业级 PaaS 平台
整体介绍
为什么使用: HZERO 是基于微服务架构开源免费的企业级 PaaS 平台
HZERO 是支持企业业务系统快速开发的微服务应用开发平台,包含多种开箱即用功能、通用技术组件与服务、微服务治理等。
解决了产品研发、项目实施面临的许多重复性工作问题,降低了交付成本,提高了交付效率。
统一技术路线,统一开发规范,使基于平台开发的各种产品能够无缝对接,形成融合的产品,降低了各自产品技术路线不一致带来的兼容性问题,便于更好的交付和客户使用体验。
总体架构
技术体系
nodejs、react、ant design
java、spring boot、spring cloud
mysql、redis
docker、kubernetes
oauth2、jwt、swagger
基础服务
网关服务(gateway): 基于 Spring Cloud Gateway 的微服务网关服务。
平台治理服务(admin): 集中管理路由、限流、熔断、权限刷新等功能。
认证服务(oauth): 基于 Spring Security、Spring OAuth2、JWT 实现的统一认证服务中心。
身份权限服务(iam): 权限管理服务,平台统一的权限体系。
平台基础服务(platform): 平台基础服务,涵盖平台开发支持功能、平台主数据、系统管理等。
接口文档服务(swagger): 平台开发测试的 API 文档和调试服务。
注册中心、配置中心(nacos): 兼容 nacos 等多种注册中心、配置中心。
官方资料
源码:
open-hand/hzero: HZERO-基于微服务架构开源免费的企业级PaaS平台
文档:
认证鉴权体系介绍
整体设计
基于角色的权限控制(RBAC)
菜单(menu)下有多个权限集(permission set,简写 ps)
权限集下关联接口(接口又称 permission、api)
角色(role)分配菜单和权限集(注意: 角色不能直接分配接口)
角色分配用户(user)或客户端(client)
思考题: 张三登陆系统后, 调用某个接口时提示没有权限, 如何排查?
继承体系
角色体系分【创建体系】和【继承体系】
继承体系:
子角色自动拥有父角色权限
回收父角色权限自动回收子角色权限
平台预定义【平台(超级)管理员】和【租户(超级)管理员】、【系统管理员模板】
网关鉴权
在网关统一控制权限;示意图:
详细调用链:
权限注解
接口通过@Permission
注解控制权限, 通常情况下分配权限后才能访问接口;注意: 租户级的接口, 定义中必须包含{organizationId}
认证体系
平台的认证服务基于 Spring Security、Spring OAuth2、JWT 实现统一认证服务中心,支持 oauth2.0 的四种标准授权模式:授权码模式、简化模式、密码模式、客户端模式
评论