IAM服务
组件编码
hzero-iam
简介
.1 概述
权限管理服务,平台统一的权限体系架构
.2 组件坐标
- OP 版本
<dependency>
<groupId>org.hzero</groupId>
<artifactId>hzero-iam</artifactId>
<version>${hzero.service.version}</version>
</dependency>
- SaaS 版本
<dependency>
<groupId>org.hzero</groupId>
<artifactId>hzero-iam-saas</artifactId>
<version>${hzero.service.version}</version>
</dependency>
.3 主要功能
- 角色管理
- 菜单管理
- 帐户管理
- 用户组管理
- 租户管理
- 权限刷新
- 单据权限管理
服务配置
hzero:
data:
permission:
# 是否启用数据权限屏蔽
enabled: true
# 数据库所有者模式,例如 SqlServer 下的 dbo/guest
db-owner:
## 发送验证码相关
send-message:
# 修改密码成功是否发送消息
send-modify-password-success: true
# 修改密码成功消息代码
modify-password-success: HIAM.MODIFY_PASSWORD_SUCCESS
# 创建用户是否发送消息
send-create-user: true
# 创建用户成功消息代码
create-user: HIAM.CREATE_USER
# 用户注册消息代码
register-user: HIAM.REGISTER_USER
# 找回密码消息代码
find-password: HIAM.FIND_PASSWORD
# 验证码手机消息代码
validate-phone: HIAM.VALIDATE_PHONE
# 验证码邮箱消息代码
validate-email: HIAM.VALIDATE_EMAIL
# 修改手机消息代码
modify-phone: HIAM.MODIFY_PHONE
# 修改邮箱消息代码
modify-email: HIAM.MODIFY_EMAIL
## 验证码配置
captcha:
sms:
# 短信验证码过期时间(分)
expire: 5
# 验证码发送间隔时间(秒)
interval: 60
# 同一个账号发送次数限制
limit-time: 10
# 次数限制的间隔时间(时)
limit-interval: 12
enable: true
# 测试时禁用验证码功能
# 设置为 true 时,则不会真正发送验证码,一般在压测时开启此配置
test-disable: false
## 服务启动数据初始化相关
start-init:
# 是否初始化三方登陆方式到缓存
open-login-way: true
# 是否初始化密码策略到缓存
password-policy: true
# 是否初始化用户到缓存
user: true
import:
# 初始化导入表,第一次启动服务的时候需开启此设置
init-table: false
tenant:
init:
# 是否开启拦截,只有开启才会拦截租户的新增和更新
aspect:
enabled: false
field-permission:
# 是否启用字段权限
enable: true
## 刷新权限相关
permission:
# 是否自动刷新服务权限
parse-permission: true
# 不需要刷新权限的服务
skip-parse-services: register, gateway, oauth, swagger
# 刷新权限时是否清除旧的权限
clean-permission: false
sso:
# 启用二级域名单点登录
enabled: ${HZERO_OAUTH_SSO_ENABLED:true}
provider:
# cas key
key: ${HZERO_OAUTH_SSO_PROVIDER_KEY:hzero}
service:
# Cas 客户端地址
baseUrl: ${HZERO_OAUTH_SSO_SERVICE_BASE_URL:http://dev.hzero.org:8080/oauth}
# SAML 相关配置
saml:
entity_id: hzero:org:sp
passphrase: secret
private_key: MIIEvQIBADANB.........
certificate: MIIDEzCCAfugA.........
password:
# 密码加密公钥
public-key: ${HZERO_OAUTH_PASSWORD_PUBLIC_KEY:MFwwDQYJKo.......}
# 密码加密私钥
private-key: ${HZERO_OAUTH_PASSWORD_PRIVATE_KEY:MIIBVQI........}
刷新权限
IAM 服务有一个重要的功能是刷新服务权限,正常情况下,其它服务启动成功并注册到注册中心后,IAM 监听到服务注册后,会自动获取服务的文档信息,并解析权限更新到 iam_permission。在一些非正常情况下,需要手动调用接口刷新服务权限,可参考 IAM 特殊接口介绍