
# 注册客户端 - RegisterClient
#### 功能介绍
向IAM身份中心注册客户端，这允许客户端启动设备授权，输出应该持久化以便于身份验证请求重用。
#### URI
POST /v1/clients
#### 请求参数
表1请求Body参数 
| 参数                         | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| client_name                | 是    | String           | 客户端名称。 最小长度：**1** 最大长度：**1024**                                                                                                                                                                                                                                                                          |
| client_type                | 是    | String           | 客户端的类型。该服务仅支持public作为客户端类型。 枚举值： - **public：**OIDC协议客户端类型。                                                                                                                                            |
| token_endpoint_auth_method | 是    | String           | 向令牌端点发送请求时所需的身份验证方法。 枚举值： - **client_secret_post：**OIDC协议验证方法类型。                                                                                                                                        |
| scopes                     | 否    | Array of strings | 客户端定义的作用域列表。授权后，此列表用于在授予访问令牌时限制权限。                                                                                                                                                                                                                                                                                                                                          |
| grant_types                | 是    | Array of strings | 客户端可以在令牌端点使用的OAuth2.0授权类型数组。 枚举值： - **urn:ietf:params:oauth:grant-type:device_code**：设备码模式。  - **authorization_code**：授权码模式。   |
| response_types             | 是    | Array of strings | 客户端可以在授权端点使用的OAuth2.0授权类型数组。 枚举值： - **code**：授权码。                                                                                                                                                  |
   
#### 响应参数
**状态码： 200**
表2响应Body参数 
| 参数                                                                                  | 参数类型   | 描述            |
|:---|:---|:---|
| [client_info] | Object | 包含客户端注册信息的对象。 |
   
 表3client_info 
| 参数                       | 参数类型             | 描述                                              |
|:---|:---|:---|
| authorization_endpoint   | String           | 客户端可以请求授权的端点。                                   |
| client_id                | String           | 客户端应用唯一标识。                                      |
| client_id_issued_at      | Long             | 客户端标识符和客户端密钥的注册时间。                              |
| client_secret            | String           | 为客户端生成的秘密字符串。客户端将使用此字符串在后续调用中获得服务的身份验证。         |
| client_secret_expires_at | Long             | 客户端标识符和客户端密钥失效的时间。                              |
| token_endpoint           | String           | 客户端可以在其中获取访问令牌的端点。                              |
| scopes                   | Array of strings | 服务器为客户端注册的作用域列表。后续授权访问令牌时，权限都应该限制在此作用域列表的子集范围内。 |
   
#### 请求示例
向IAM身份中心注册客户端。
```
POST https://{hostname}/v1/clients
{
  "client_name" : "exampleClient",
  "client_type" : "public",
  "token_endpoint_auth_method" : "client_secret_post",
  "scopes" : [ "openid" ],
  "grant_types" : [ "authorization_code", "urn:ietf:params:oauth:grant-type:device_code"],
  "response_types" : [ "code" ]
}
```
#### 响应示例
**状态码： 200**
Successful
```
{
  "client_info" : {
    "authorization_endpoint" : "https://example-region-oidc.examplehh.com:443/v1/authorize",
    "client_id" : "example_client_id",
    "client_id_issued_at" : 1677175760,
    "client_secret" : "example_client_secret",
    "client_secret_expires_at" : 1684951760,
    "token_endpoint" : "https://example-region-oidc.examplehh.com:443/v1/tokens",
    "scopes" : [ "openid" ]
  }
}
```
#### 状态码
请参见[状态码](https://support.huaweicloud.com/api-identitycenter/iic_04_0030.html)。
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-identitycenter/ErrorCode.html)。
