Skip to content

O-Jiangweidong/jumpserver-sdk-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目描述

项目概述

本项目是针对 JumpServer v3 最新版本 开发的 SDK(软件开发工具包)。JumpServer 是一款开源的堡垒机系统,提供安全、高效的运维审计能力。本 SDK 旨在为开发者提供便捷的接口和工具,以便快速集成 JumpServer v3 的功能,实现自动化运维、资源管理、用户权限控制等操作。


项目目标

  1. 简化集成:提供简单易用的 API 接口,帮助开发者快速集成 JumpServer v3 的核心功能。
  2. 功能覆盖:支持 JumpServer v3 的主要功能模块,包括用户管理、资产管理、权限控制、会话审计等。
  3. 提高效率:通过 SDK 实现自动化操作,减少手动配置和管理的时间成本。
  4. 兼容性与扩展性:确保 SDK 兼容 JumpServer v3 的最新版本,并提供良好的扩展性,方便后续功能迭代。

SDK 功能特性

目前 SDK 提供下方接口功能封装,使用详情请查看本项目 tests 目录下的测试用例。

认证

请求类型 请求名称 备注
- 基于 AccessKey 认证 -
- 基于 账号/密码 认证 -

用户管理

请求类型 请求名称 备注
列表查询 DescribeUsersRequest -
详情查询 DetailUserRequest -
创建 CreateUserRequest -
更新 UpdateUserRequest -
删除 DeleteUserRequest -
邀请 InviteUserRequest -
移除指定 RemoveUserRequest -
获取资产被授权的用户 DescribeAuthorizedUsersForAssetRequest -
获取授权的用户 DescribeUsersForPermissionRequest -

用户角色管理

请求类型 请求名称 备注
列表查询 DescribeRolesRequest -
详情查询 DetailRoleRequest -
创建 CreateRoleRequest -
更新 UpdateRoleRequest -
删除 DeleteRoleRequest -
关联用户查询 DescribeUsersWithRoleRequest -
追加指定用户 AppendUsersToRoleRequest -
移除指定用户 DescribeUsersWithRoleRequest -

用户组管理

请求类型 请求名称 备注
列表查询 DescribeUserGroupsRequest -
详情查询 DetailUserGroupRequest -
创建 CreateUserGroupRequest -
更新 UpdateUserGroupRequest -
删除 DeleteUserGroupRequest -
追加指定用户 AppendUserToGroupRequest -
追加全部用户 AppendAllUserToGroupRequest -
移除指定用户 RemoveUserFromGroupRequest -

资产管理

请求类型 请求名称 备注
列表查询 DescribeAssetsRequest 可按照分类查询,Asset 可更换为 Host/Database/Cloud/Device/Web/GPT/Custom
详情查询 DetailAssetRequest 可按照分类查询,同上
创建 CreateHostRequest 只可按照具体分类查询,Host 可更换为 Database/Cloud/Device/Web/GPT/Custom
更新 UpdateHostRequest 只可按照具体分类查询,同上
删除 DeleteAssetRequest -
批量删除 BulkDeleteAssetRequest -
获取授权的资产 DescribeAssetsForPermissionRequest -

账号管理

请求类型 请求名称 备注
列表查询 DescribeAccountsRequest -
详情查询 DetailAccountRequest -
创建 CreateAccountRequest -
更新 UpdateAccountRequest -
删除 DeleteAccountRequest -
清除密文 ClearAccountSecretRequest -
使用模板创建 WithTemplateCreateAccountRequest -

账号模板管理

请求类型 请求名称 备注
列表查询 DescribeAccountTemplatesRequest -
详情查询 DetailAccountTemplateRequest -
创建 CreateAccountTemplateRequest -
更新 UpdateAccountTemplateRequest -
删除 DeleteAccountTemplateRequest -
同步账号模板信息到关联账号 SyncAccountTemplateInfoRequest -

平台管理

请求类型 请求名称 备注
列表查询 DescribePlatformsRequest -
详情查询 DetailPlatformRequest -
创建 CreatePlatformRequest -
更新 UpdatePlatformRequest -
删除 DeletePlatformRequest -
同步协议到资产 SyncProtocolsToAssetsRequest -

网域管理

请求类型 请求名称 备注
列表查询 DescribeDomainsRequest -
详情查询 DetailDomainRequest -
创建 CreateDomainRequest -
更新 UpdateDomainRequest -
删除 DeleteDomainRequest -

节点管理

请求类型 请求名称 备注
列表查询 DescribeNodesRequest -
详情查询 DetailNodeRequest -
创建 CreateNodeRequest -
更新 CreateNodeRequest -
删除 DeleteNodeRequest -

组织管理

请求类型 请求名称 备注
列表查询 DescribeOrganizationsRequest -
详情查询 DetailOrganizationRequest -
创建 CreateOrganizationRequest -
更新 UpdateOrganizationRequest -
删除 DeleteOrganizationRequest -

权限管理

请求类型 请求名称 备注
列表查询 DescribePermissionsRequest -
详情查询 DetailPermissionRequest -
创建 CreatePermissionRequest -
更新 UpdatePermissionRequest -
删除 DeletePermissionRequest -
查询用户和资产对应的授权 DescribePermsForAssetAndUserRequest DescribePermissionsRequest 也可实现
查询用户组和资产对应的授权 DescribePermsForAssetAndUserGroupRequest DescribePermissionsRequest 也可实现
追加指定用户 AppendUsersToPermissionRequest
移除指定用户 RemoveUserFromPermissionRequest
追加指定用户组 AppendUserGroupsToPermissionRequest
移除指定用户组 RemoveUserGroupFromPermissionRequest
追加指定资产 AppendAssetsToPermissionRequest
移除指定资产 RemoveAssetFromPermissionRequest
追加指定节点 AppendNodesToPermissionRequest
移除指定节点 RemoveNodeFromPermissionRequest

审计管理

请求类型 请求名称 备注
在线用户查询 - 列表 DescribeUserSessionsRequest -
在线用户查询 - 详情 DetailUserSessionRequest -
登录日志 - 列表 DescribeLoginLogsRequest -
登录日志 - 详情 DetailLoginLogRequest -
操作日志 - 列表 DescribeOperateLogsRequest -
操作日志 - 详情 DetailOperateLogRequest -
用户改密日志 - 列表 DescribeChangePasswordLogsRequest -
用户改密日志 - 详情 DetailChangePasswordLogRequest -
作业日志 - 列表 DescribeJobLogsRequest -
作业日志 - 详情 DetailJobLogRequest -
FTP 记录 - 列表 DescribeFTPLogsRequest -
FTP 记录 - 详情 DetailFTPLogRequest -
会话记录 - 列表 DescribeSessionsRequest -
会话记录 - 详情 DetailSessionRequest -
命令记录 - 列表 DescribeCommandsRequest -
命令记录 - 详情 DetailCommandRequest -
活动记录 - 列表 DescribeResourceActivitiesRequest -

标签管理

请求类型 请求名称 备注
列表查询 DescribeLabelsRequest -
详情查询 DetailLabelRequest -
创建 CreateLabelRequest -
更新 UpdateLabelRequest -
删除 DeleteLabelRequest -
查询资源类型 DescribeLabelResourceTypesRequest 绑定资源需要资源类型 ID
绑定资源 BindLabelForResourceRequest -
获取标签绑定的资源 DescribeLabelResourceRequest -
解除绑定 UnBindLabelForResourceRequest -

用户登陆限制管理

请求类型 请求名称 备注
列表查询 DescribeUserLoginACLsRequest -
详情查询 DetailUserLoginACLRequest -
创建 CreateUserLoginACLRequest -
更新 UpdateUserLoginACLRequest -
删除 DeleteUserLoginACLRequest -

登陆方法限制管理

请求类型 请求名称 备注
列表查询 DescribeConnectMethodACLsRequest -
详情查询 DetailConnectMethodACLRequest -
创建 CreateConnectMethodACLRequest -
更新 UpdateConnectMethodACLRequest -
删除 DeleteConnectMethodACLRequest -

命令过滤管理

请求类型 请求名称 备注
命令过滤列表查询 DescribeCommandFiltersRequest -
命令过滤详情查询 DetailCommandFilterRequest -
命令过滤创建 CreateCommandFilterRequest -
命令过滤更新 UpdateCommandFilterRequest -
命令过滤删除 DeleteCommandFilterRequest -
命令组列表查询 DescribeCommandGroupsRequest -
命令组详情查询 DetailCommandGroupRequest -
命令组创建 CreateCommandGroupRequest -
命令组更新 UpdateCommandGroupRequest -
命令组删除 DeleteCommandGroupRequest -

系统设置管理

请求类型 请求名称 备注
查询 基本设置 - 基本 DetailBasicSettingRequest -
查询 组件设置 - 基本设置 DetailTerminalSettingRequest -
查询 安全设置 - 认证安全 DetailSecurityAuthSettingRequest -
查询 安全设置 - 会话安全 DetailSecuritySessionSettingRequest -
查询 安全设置 - 密码安全 DetailSecurityPasswordSettingRequest -
查询 安全设置 - 登录限制 DetailSecurityLoginLimitSettingRequest -
查询 消息通知 - 邮件设置 DetailEmailSettingRequest -
查询 消息通知 - 邮件设置 - 邮件内容定制 DetailEmailContentSettingRequest -
查询 认证设置 - 基本 DetailBasicAuthSettingRequest -
查询 认证设置 - LDAP DetailLDAPSettingRequest -
查询 认证设置 - 企业微信 DetailWecomSettingRequest -
查询 认证设置 - SAML2 DetailSAML2SettingRequest -
查询 认证设置 - 钉钉 DetailDingTalkSettingRequest -
查询 认证设置 - 飞书 DetailFeiShuSettingRequest -
查询 认证设置 - Slack DetailSlackSettingRequest -
查询 认证设置 - OIDC DetailOIDCSettingRequest -
查询 认证设置 - RADIUS DetailRadiusSettingRequest -
查询 认证设置 - CAS DetailCASSettingRequest -
查询 认证设置 - OAuth2 DetailOAuth2SettingRequest -
查询 认证设置 - Passkey DetailPasskeySettingRequest -
查询 系统任务 - 定期清理 DetailCleanSettingRequest -
查询 消息通知 - 短信设置 DetailSMSSettingRequest -
查询 消息通知 - 短信设置 - 阿里云 DetailAlibabaSMSSettingRequest -
查询 消息通知 - 短信设置 - 腾讯云 DetailTencentSMSSettingRequest -
查询 消息通知 - 短信设置 - 华为云 DetailHuaweiSMSSettingRequest -
查询 消息通知 - 短信设置 - CMPP2 DetailCMPP2SMSSettingRequest -
查询 消息通知 - 短信设置 - 自定义 DetailCustomSMSSettingRequest -
查询 功能设置 - 账号存储 DetailVaultSettingRequest -
查询 功能设置 - 智能问答 DetailChatSettingRequest -
查询 功能设置 - 公告 DetailAnnouncementSettingRequest -
查询 功能设置 - 工单 DetailTicketSettingRequest -
查询 功能设置 - 任务中心 DetailOPSSettingRequest -
查询 功能设置 - 虚拟应用 DetailVirtualAPPSettingRequest -

其他常用页面功能接口查询

请求类型 请求名称 备注
查询用户对应的资产授权 DescribePermissionsRequest(user_id='user_id') -
查询用户对应的用户登陆规则 DescribeUserLoginACLsRequest(user='user_id') -
查询用户连接的资产会话 DescribeSessionsRequest(user_id='user_id') -
查询用户组下的用户列表 DescribeUsersRequest(group_id='group_id') -
查询资产下的账号列表 DescribeAccountsRequest(asset='asset_id') -
查询资产下的会话记录 DescribeSessionsRequest(asset_id='asset_id') -
查询资产下的命令记录 DescribeCommandsRequest(asset_id='asset_id') -
查询网域下的资产 DescribeAssetsRequest(domain='domain_id', exclude_platform='Gateway') -
查询节点下的资产 DescribeAssetsRequest(node_id='node_id') -
查询平台下的资产 DescribeAssetsRequest(platform='platform_id') -
查询账号模板下的账号 DescribeAccountsRequest(source_id='source_id') -
查询节点下的账号 DescribeAccountsRequest(node_id='node_id') -

安装与使用

安装

pip install jumpserver-sdk

使用(更多使用示例,查询项目下的 tests 测试用例参考)

from jms_client.client import get_client
from jms_client.v1.client import Client
from jms_client.v1.models.request.users import (
    DescribeUsersRequest
)
from jms_client.v1.models.instance.users import (
    UserInstance,
)
from jms_client.v1.models.response import Response
from typing import List


client: Client = get_client(
    version='3.10', web_url='https://jumpserver.dev',
    username='username', password='password'
)
client.set_org('org_id')

request = DescribeUsersRequest(limit=2)
resp: Response = client.do(request, with_model=True)

users: List[UserInstance] = resp.get_data()
for user in users:
    print('Username: ', user.username)

About

Oh!

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages