
# 示例六：创建用户和用户组
#### 操作场景
本章节指导用户通过调用API来创建VPN用户和用户组。
#### 前提条件
- 已创建终端入云VPN网关。
- 已创建VPN服务端，且服务端的认证方式为口令认证，具体参见[创建服务端](https://support.huaweicloud.com/api-vpn/vpn_api_0111.html)。
- 您需要确定调用API的Endpoint。
 
- 当您使用Token认证方式完成认证鉴权时，需要获取用户Token并在调用接口时增加"X-Auth-Token"到业务接口请求消息头中。Token认证，具体操作请参考[认证鉴权](https://support.huaweicloud.com/api-vpn/vpn_api_0010.html)章节。
  ![](https://support.huaweicloud.com/api-vpn/public_sys-resources/note_3.0-zh-cn.png)
  通过IAM服务获取到的Token有效期为24小时，需要使用同一个Token鉴权时，可以先将Token缓存，避免频繁调用。
  用户和用户组相关API属于异步流程，配置后需要一段时间才会实际生效，如果连续短时间频繁操作用户或者用户组配置，可能会出现系统内部排队执行超限，返回错误：VPN.0030, The system is busy, please try later. 需要等待一段时间后再次调用。
  
#### 数据准备
表1创建用户组请求关键参数 
| 参数            | 说明       | 取值样例                                 |
|:---|:---|:---|
| vpn_server_id | VPN服务端ID | 0e325fb6-83b9-4004-a343-8b6fc714a5d9 |
   
表2创建用户请求关键参数 
| 参数            | 说明       | 取值样例                                 |
|:---|:---|:---|
| vpn_server_id | VPN服务端ID | 0e325fb6-83b9-4004-a343-8b6fc714a5d9 |
   
#### 操作步骤
1. 创建用户组
   1. 发送"POST https://{endpoint}/v5/{project_id}/p2c-vpn-gateways/vpn-servers/{vpn_server_id}/groups"，project_id为项目ID。{vpn_server_id}为已创建的VPN服务端ID。
   
   2. 在Request Header中增加"X-Auth-Token"。
   
   3. 在Request Body中传入参数。
      ```
      {
        "user_group": {
          "name": "user-group1",
          "description": "用户组1"
        }
      }
      ```
      
   
   4. 查看请求响应结果。
      - 请求成功时，响应参数如下，id为创建的用户组ID
        ```
        {
            "user_group": {
                "id": "7625fd92-2e20-4e4d-8c56-66f110fbfaa8"
            },
            "request_id": "94d271493e144135423e7377e40127cf"
        }
        ```
        
       
    
2. 查询用户组
   1. 发送"GET https://{endpoint}/v5/{project_id}/p2c-vpn-gateways/vpn-servers/{vpn_server_id}/groups/{group_id}"，project_id为项目ID。{group_id}为已创建的用户组ID。
   
   2. 在Request Header中增加"X-Auth-Token"。
   
   3. 查看请求响应结果。
      ```
      {
          "user_group": {
              "id": "7625fd92-2e20-4e4d-8c56-66f110fbfaa8",
              "name": "user-group1",
              "description": "用户组1",
              "type": "Custom",
              "user_number": 0,
              "created_at": "2024-06-17T09:48:27.548Z",
              "updated_at": "2024-06-17T09:48:27.548Z"
          },
          "request_id": "6735d32bb3e35e9154caba1dbc6c2dc6"
      }
      ```
      
    
3. 创建用户
   1. 发送"POST https://{endpoint}/v5/{project_id}/p2c-vpn-gateways/vpn-servers/{vpn_server_id}/users"，project_id为项目ID。{vpn_server_id}为已创建的VPN服务端ID。
   
   2. 在Request Header中增加"X-Auth-Token"。
   
   3. 在Request Body中传入参数。
      ```
      {
        "user": {
          "name": "user001",
          "password": "Qwerasdf",
          "description": "用户1",
          "user_group_id": "7625fd92-2e20-4e4d-8c56-66f110fbfaa8"
        }
      }
      ```
      
   
   4. 查看请求响应结果。
      - 请求成功时，响应参数如下，id为创建的用户ID
        ```
        {
          "user": {
            "id": "41ad472e-d3e4-482b-8f00-7b2c1bfc4b7d"
          },
          "request_id": "b19ba5a0be8f7b7f664b14596f8f35db"
        }
        ```
        
       
    
4. 查询用户
   1. 发送"GET https://{endpoint}/v5/{project_id}/p2c-vpn-gateways/vpn-servers/{vpn_server_id}/users/{user_id}"，project_id为项目ID。{vpn_server_id}为已创建的VPN服务端ID。{user_id}为已创建的用户ID。
   
   2. 在Request Header中增加"X-Auth-Token"。
   
   3. 查看请求响应结果。
      ```
      {
          "user": {
              "id": "41ad472e-d3e4-482b-8f00-7b2c1bfc4b7d",
              "name": "user001",
              "description": "用户1",
              "user_group_id": "7625fd92-2e20-4e4d-8c56-66f110fbfaa8",
              "user_group_name": "user-group1",
              "created_at": "2024-06-17T06:53:46.302Z",
              "updated_at": "2024-06-17T06:53:46.302Z"
          },
          "request_id": "926a0edb3bf432943e2399b700173add"
      }
      ```
      
    
 
