• IAM服务


    组件编码 hzero-iam

    简介

    .1 概述

    权限管理服务,平台统一的权限体系架构

    .2 组件坐标

    <dependency>
        <groupId>org.hzero</groupId>
        <artifactId>hzero-iam</artifactId>
        <version>${hzero.service.version}</version>
    </dependency>
    
    <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 特殊接口介绍