CURL 中的用法示例

以下示例显示如何使用 CURL 进行认证和用户管理。

每个 curl 示例都采用以下格式:

curl -L -X POST https://system_ip:7443/rest/v1target -H 
header_1 -H header_2 data-raw 'JSON' 

其中,以下定义适用:

  • POST 是 Spectrum Virtualize RESTful API 支持的唯一 HTTPS 方法。
  • system_ip 是将请求发送到的 IP 地址。
  • v1 是 API 的版本 1。
  • command 是要执行的 RESTful API 命令,相当于 CLI 命令。
  • target 是命令的目标对象,其中包含任意对象标识、名称和参数。
  • 头 (header_1 ) 是单独指定的 HTTP 头 (例如, Content-Type and X-Auth-Token)。
  • --data-raw 后跟 JSON 输入(例如,'{"name": "password"}')。

认证

以下是用于认证的正确过程的示例。 首先创建认证令牌,然后在所有将来的命令中使用该令牌,直至会话结束,以此进行身份认证。 有关认证的更多信息,请参阅 认证概述

curl -k -X POST -H 'Content-Type: application/json' -H 'X-Auth-Username: 
superuser' -H 'X-Auth-Password: passw0rd' 
https://192.168.10.109:7443/rest/v1/auth
这将产生用于所有其他命令的认证令牌。
{"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MTk2MTg3ODAsImV4cCI6MTYxOTY
yMjM4MCwianRpIjoiMGRjYWRkMWIyODNlNDc5ZGI3ZTJkNzZmZmJlMGI2NjAiLCJzdiI6eyJ1c2VyI
joic3VwZXJ1c2VyIn19.f_NzcKZEUUf3UWaH4JQeasi7BPSTkBcfPe9AMrQOeQyEXp7ZU9wsJn7E9A
jjaIKVM7UsT22HvslLVo5LXTNEkg'"}

创建新用户

以下示例显示如何创建新用户、设置密码以及将用户添加至特定组。 该示例还演示了使用令牌来代替认证过程中使用的认证头:
curl -L -X POST '<system_ip>:7443/rest/v1/mkuser' -H 'X-Auth-Token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MTk2MTg3ODAsImV4cCI6MTYxOTYy
MjM4MCwianRpIjoiMGRjYWRkMWIyODNlNDc5ZGI3ZTJkNzZmZmJlMGI2NjAiLCJzdiI6eyJ1c2VyI
joic3VwZXJ1c2VyIn19.f_NzcKZEUUf3UWaH4JQeasi7BPSTkBcfPe9AMrQOeQyEXp7ZU9wsJn7E9
AjjaIKVM7UsT22HvslLVo5LXTNEkg' -H 'Content-Type: application/json'
--data-raw '{"name": "testuser", "usergrp": "Service", "password": "testpassw0rd"}'

使用用户名来更改密码

以下示例显示如何为用户设置新用户密码,并演示如何使用令牌代替认证过程中使用的认证头:
curl -L -X POST '<system_ip>:7443/rest/chuser/testuser' -H 'X-Auth-Token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MTk2MTg3ODAsImV4cCI6MTYxOTY
yMjM4MCwianRpIjoiMGRjYWRkMWIyODNlNDc5ZGI3ZTJkNzZmZmJlMGI2NjAiLCJzdiI6eyJ1c2V
yIjoic3VwZXJ1c2VyIn19.f_NzcKZEUUf3UWaH4JQeasi7BPSTkBcfPe9AMrQOeQyEXp7ZU9wsJn
7E9AjjaIKVM7UsT22HvslLVo5LXTNEkg' -H 'Content-Type: application/json'
--data-raw '{"password": "newPassw0rd"}'

使用标识来更改密码

以下示例显示如何使用用户标识来更改用户的用户密码。 在此示例中,2 用作用户标识。
curl -L -X POST '<system_ip>:7443/rest/chuser/2' -H 'X-Auth-Token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MTk2MTg3ODAsImV4cCI6MTYxOTY
yMjM4MCwianRpIjoiMGRjYWRkMWIyODNlNDc5ZGI3ZTJkNzZmZmJlMGI2NjAiLCJzdiI6eyJ1c2V
yIjoic3VwZXJ1c2VyIn19.f_NzcKZEUUf3UWaH4JQeasi7BPSTkBcfPe9AMrQOeQyEXp7ZU9wsJn
7E9AjjaIKVM7UsT22HvslLVo5LXTNEkg' -H 'Content-Type: application/json' 
--data-raw '{"password": "newPassw0rd"}'

列示所有用户

以下示例列出了使用 API V1 的所有用户:
curl -L -X POST '<system_ip>:7443/rest/v1/lsuser' -H 'X-Auth-Token:eyJ0eX
AiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MTk2MTg3ODAsImV4cCI6MTYxOTYyMjM4MCwian
RpIjoiMGRjYWRkMWIyODNlNDc5ZGI3ZTJkNzZmZmJlMGI2NjAiLCJzdiI6eyJ1c2VyIjoic3VwZXJ1c2V
yIn19.f_NzcKZEUUf3UWaH4JQeasi7BPSTkBcfPe9AMrQOeQyEXp7ZU9wsJn7E9AjjaIKVM7UsT22Hvs
lLVo5LXTNEkg' -H 'Content-Type: application/json' --data-raw ''

列示有关用户的详细信息

以下示例显示如何使用用户标识在 API 的 V1 中列出用户:
curl -L -X POST '<system_ip>:7443/rest/v1/lsuser/3' -H 'X-Auth-Token:eyJ0
eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MTk2MTg3ODAsImV4cCI6MTYxOTYyMjM4MCw
ianRpIjoiMGRjYWRkMWIyODNlNDc5ZGI3ZTJkNzZmZmJlMGI2NjAiLCJzdiI6eyJ1c2VyIjoic3VwZX
J1c2VyIn19.f_NzcKZEUUf3UWaH4JQeasi7BPSTkBcfPe9AMrQOeQyEXp7ZU9wsJn7E9AjjaIKVM7Us
T22HvslLVo5LXTNEkg' -H 'Content-Type: application/json' --data-raw ''

移除用户

以下示例显示如何通过使用 API V1 中的用户标识来移除用户:
curl -L -X POST '<system_ip>:7443/rest/v1/rmuser/2' -H 'X-Auth-Token:eyJ
0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MTk2MTg3ODAsImV4cCI6MTYxOTYyMjM4MC
wianRpIjoiMGRjYWRkMWIyODNlNDc5ZGI3ZTJkNzZmZmJlMGI2NjAiLCJzdiI6eyJ1c2VyIjoic3VwZ
XJ1c2VyIn19.f_NzcKZEUUf3UWaH4JQeasi7BPSTkBcfPe9AMrQOeQyEXp7ZU9wsJn7E9AjjaIKVM7U
sT22HvslLVo5LXTNEkg' -H 'Content-Type: application/json' --data-raw ''