通过宜搭流程表单完成JumpServer自动化授权

× 文章目录
  1. 1. 宜搭表单构建
  2. 2. 宜搭审批流构建
  3. 3. 审批流结束后进行jms授权
    1. 3.1. 宜搭端
    2. 3.2. jms端

宜搭表单构建

根据jms 资产授权规则的表单设计宜搭流程表单,因为是自动化,只需要资产对单个用户授权,需要字段 – 规则名称,用户,资产,系统用户,权限,失效日期,备注

  • 规则名称 – > 单行文本,标题
  • 用户 –> 提交人,这个自动获取就可以了
  • 资产 –> 下拉复选,通过jms接口获取,赋值给下拉多选组件,参考宜搭文档 获取数据源给下拉单选组件赋值, 远程数据源调用自定义连接器。这里为了在宜搭端简单的进行数据处理,封装了一下jms接口,返回更简单的json,宜搭端通过远程数据源获取数据时,https包含http请求会报错,后续发现连接器也可以实现相同的功能
  • 系统用户 –> 下拉复选,这个需要优化一下,有人乱选,后续会通过资产判断系统类型进行添加
  • 权限 –> 复选,就是连接、上传下载、复制粘贴
  • 授权时间 –> 单选,给一个范围,30天、90天、180天、360天
  • 失效时间 –> 日期,设置只读,根据上面单选组件自动获取日期,这个就是在授权时间的单选组件绑定OnChange,数值变化后计算日期,赋值给日期组件
  • 备注 –> 多行文本

宜搭审批流构建

审批需要维护一下资产归属人,用户发起申请,由上级主管、资产归属人、运维、安全审批

审批流结束后进行jms授权

宜搭端

参考提交表单数据时发起新的流程,将第三方接口进行服务注册,流程设计 - 全局设置 - 节点提交规则 - 关联第三方接口,文档中也有将多个组件处理成formdatajson,方便第三方接口使用

jms端

通过从宜搭获取表单自动进行处理,jms提供了接口,用户、资产、资产的系统用户都是通过ID就进行授权的,都是有相关的接口获取,参考jms API 文档,使用管理员的Access Key进行认证

根据用户名获取用户ID

1
{base_url}/users/users/?fields_size=mini&search={username}&offset=0&limit=10   

根据IP地址获取资产ID & Platform

1
{base_url}/assets/assets/?fields_size=mini&search={ip}&offset=0&limit=10 

根据平台获取系统用户ID

1
{base_url}/assets/system-users/?protocol__in=rdp,ssh,vnc,telnet&search={Platform}&offset=0&limit=10

提交授权 POST

1
2
3
4
{base_url}/perms/asset-permissions/
Content-Type: application/json;charset=UTF-8

{"assets":assetid,"nodes":[],"actions":actions,"is_active":true,"date_start":"2022-03-24T03:33:42.114Z","date_expired":date_expired,"name":name,"users":userid,"system_users":system_usersid,"comment":comment}