在JumpServer中通过接口获取临时Token方法

在 JumpServer 中,通过接口获取临时 Token(通常用于后续 API 调用的身份认证,或者生成用于直接登录 Web 终端的 App Token)主要有以下两种常见场景。


使用用户名和密码获取用户 Token(常规 API 认证)

如果你是在编写自动化脚本,需要通过账号密码登录 JumpServer 并获取一个临时的 TokenBearer Token 来调用其他 API,可以使用认证接口。

1. 接口信息

  • 请求 URL: http://<jumpserver_url>/api/v1/authentication/tokens/
  • 请求方法: POST
  • 请求头: Content-Type: application/json

2. 请求 Body (JSON)

1
2
3
4
{
"username": "你的用户名",
"password": "你的密码"
}

3. 返回示例 (JSON)

1
2
3
4
5
6
7
8
9
{
"token": "xxx",
"user": {
"id": "u7d8e9f0...",
"username": "yyy",
"name": "zzz"
}
...
}

如何使用该 Token:在后续请求其他接口(如查询命令)时,在请求头中加入:
Authorization: Bearer e8f9a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8 或者 Authorization: Token e8f9a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8

安全建议

  1. Token 有效期:通过账号密码获取的临时 Token 默认有过期时间(通常为数小时,具体取决于 JumpServer 系统设置中的 TOKEN_EXPIRATION 参数)。过期后需重新调用该接口刷新。 (v4版本默认1d)
  2. MFA(多因子认证)限制:如果你的 JumpServer 账号开启了 MFA(如谷歌验证码),直接使用用户名密码调用 /tokens/ 接口可能会返回需要输入 MFA 认证码的错误。这种情况下,强烈建议改用第一种回复中提到的 AK/SK 机制,AK/SK 签名认证可以绕过 web 端的 MFA 限制,更适合自动化脚本。