# 创建OIDC提供商 - CreateOIDCProviderV5
#### 功能介绍
该接口可以用于创建一个支持 OpenID Connect (OIDC) 的身份提供商 (IdP)。
您通过此操作创建的 OIDC 提供商可用作信任委托的信任策略中的主体 (Principal)，用于在华为云和 OIDC 提供商之间建立信任关系。
您可以直接使用您的身份提供商去创建新的信任委托，要了解更多信息，请参阅 IAM 用户指南中的**身份提供商**章节。
当您创建 IAM OIDC 提供商时，您需要指定以下内容：
- 要信任的 OIDC 身份提供商的 URL。
  
- 客户端 ID 列表（也称为受众 Audiences），用于识别允许使用该 OIDC 提供商进行身份验证的应用程序。
  
- 附加到指定 IAM OIDC 提供商的标签列表。
  
- OIDC 身份提供商使用的一个或多个服务器证书的指纹列表。
  
**注意：**
IAM 使用我们的信任根证书颁发机构 (CAs) 库来验证 JSON Web Key Set (JWKS) 端点的 TLS 证书，从而确保与 OIDC 身份提供商 (IdPs) 的通信安全。如果您的 OIDC IdP 依赖于不是由这些受信任 CA 之一签名的证书，那么我们才会使用 IdP 配置中设置的指纹来确保通信安全。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/doc?api=CreateOIDCProviderV5&version=v5)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-iam5/iam_02_1124.html)。
| 授权项                        | 访问级别  | 资源类型（\*为必须）     | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| iam:oidcProviders:createV5 | Write | oidcProvider \* | -   | -  | -      |
   
#### URI
POST /v5/oidc-providers
#### 请求参数
表1请求Body参数 
| 参数          | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| url         | 是    | String           | **参数解释**： 身份提供商的 URL。该 URL 必须以 https:// 开头，并且应与提供商的 OpenID Connect ID 令牌中的 iss (issuer) 声明相对应。根据 OIDC 标准，URL 允许包含路径组件，但不允许包含查询参数。 **约束限制**： 不涉及。 **取值范围**： 长度为1\~255个字符，必须以https://开头。 **默认取值**： 不涉及。                                                                                                                                                  |
| name        | 是    | String           | **参数解释**： OIDC 提供商的名称。 **约束限制**： 不涉及。 **取值范围**： 只能包含字母、数字、下划线（_）、中划线（-），长度为1\~64个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                    |
| client_ids  | 是    | Array of strings | **参数解释**： 客户端 ID 列表，客户端 ID 也称为受众 (Audiences)。您可以使用同一个提供商注册多个客户端 ID。每个元素为String类型的客户端ID字符串，长度为1\~255个字符。 **约束限制**： 不涉及 **取值范围**： 列表元素数量取值范围为\[1,100\]个。 **默认取值**： 不涉及。                                                                                                                                                                                  |
| thumbprints | 否    | Array of strings | **参数解释**： OIDC 身份提供商的服务器证书指纹列表，列表中的指纹是 X.509 证书的十六进制编码的 SHA-1 哈希值，它始终是一个 64 个字符的字符串。通常，此列表只包含一个指纹，然而 IAM 允许您为一个 OIDC 提供商设置最多五个指纹，这使得您可以对身份提供商的证书进行安全轮转。此参数是可选的，如果未包含此参数，IAM 将检索并使用 OIDC 身份提供商服务器证书的顶层中间证书颁发机构 (CA) 指纹。有关获取 OIDC 提供商指纹的更多信息，请参阅 IAM 用户指南中的**获取 OIDC 提供商的指纹**。 **约束限制**： 不涉及。 **取值范围**： 列表元素数量取值范围为\[0,5\]个，每个元素字符串长度为64。 **默认取值**： 不涉及。 |
| description | 否    | String           | **参数解释**： 身份提供商描述。 **约束限制**： 不涉及。 **取值范围**： 不能包含特定字符"@"、"#"、"%"、"\&"、"\<"、"\>"、""、"$"、"\^"和"\*"的字符串，长度为0\~255个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                       |
   
#### 响应参数
**状态码：201**
表2响应Body参数 
| 参数            | 参数类型                                                                  | 描述                                                                                                                                                         |
|:---|:---|:---|
| oidc_provider | [oidc_provider] object | **参数解释**： OIDC 提供商。 **取值范围**： 不涉及。 |
   
 表3oidc_provider 
| 参数          | 参数类型             | 描述                                                                                                                                                                                                                         |
|:---|:---|:---|
| provider_id | String           | **参数解释**： OIDC 身份提供商的 ID。 **取值范围**： 字符串长度在 1 到 64 之间，并且只能包含：字母、数字、中划线（-）。                          |
| name        | String           | **参数解释**： OIDC 身份提供商的名称。 **取值范围**： 字符串长度在 1 到 64 之间，并且只能包含：字母、数字、下划线（_）、中划线（-）。                    |
| description | String           | **参数解释**： 身份提供商描述。 **取值范围**： 字符串长度不超过 255，并且不能包含特定字符"@"、"#"、"%"、"\&"、"\<"、"\>"、""、"$"、"\^"和"\*"。   |
| url         | String           | **参数解释**： OIDC 身份提供商的 URL。 **取值范围**： 字符串长度在 1 到 255 之间。                                            |
| urn         | String           | **参数解释**： 统一资源名称。 **取值范围**： 字符串长度在 16 到 1500 之间，并且只能包含：字母、数字、字符"/"、"="、"_"、":"、"-"。                |
| client_ids  | Array of strings | **参数解释**： 客户端 ID 列表。 **取值范围**： 数组长度在 1 到 100 之间；数组元素为字符串，长度在 1 到 255 之间。                           |
| thumbprints | Array of strings | **参数解释**： OIDC 身份提供商的服务器证书指纹列表。 **取值范围**： 数组长度在 1 到 5 之间；数组元素为长度为 64 的字符串，并且只能包含字母、数字。             |
| created_at  | String           | **参数解释**： 提供商创建时间。使用UTC时间格式，格式为yyyy-MM-ddTHH:mm:ss.SSSZ，例如2023-09-13T06:51:20.550Z。 **取值范围**： 不涉及。 |
   
**状态码：400**
表4响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码，请参见[错误码](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 格式为PAP5.XXXX，例如 PAP5.0012。 |
| error_msg  | String | **参数解释**： 错误信息，请参见[错误信息](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 不涉及。                     |
| request_id | String | **参数解释**： API 请求的唯一标识，用于排查接口调用异常。 **取值范围**： 不涉及。                                                                      |
   
**状态码：403**
表5响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码，请参见[错误码](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 格式为PAP5.XXXX，例如PAP5.0012。                                    |
| error_msg                     | String | **参数解释**： 错误信息，请参见[错误信息](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 不涉及。                                                       |
| request_id                    | String | **参数解释**： API请求的唯一标识，用于排查接口调用异常。 **取值范围**： 不涉及。                                                                                                         |
| encoded_authorization_message | String | **参数解释**： 认证失败时返回的加密详细信息，用于定位认证问题。 可以通过STS5解密接口进行解密，请参见[接口链接](https://support.huaweicloud.com/api-iam5/DecodeAuthorizationMessage.html)。 **取值范围**： 不涉及。 |
   
**状态码：409**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码，请参见[错误码](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 格式为PAP5.XXXX，例如 PAP5.0012。 |
| error_msg  | String | **参数解释**： 错误信息，请参见[错误信息](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 不涉及。                     |
| request_id | String | **参数解释**： API 请求的唯一标识，用于排查接口调用异常。 **取值范围**： 不涉及。                                                                      |
   
#### 请求示例
创建OIDC提供商
```
POST https://{endpoint}/v5/oidc-providers
{
  "url" : "https://example.com/oidc/.well-known/openid-configuration",
  "name" : "example_oidc_provider",
  "description" : "example OIDC identity provider",
  "client_ids" : [ "example-client-id-1" ],
  "thumbprints" : [ "a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2" ]
}
```
#### 响应示例
**状态码：201**
```
{
  "oidc_provider" : {
    "provider_id" : "example-oidc-provider-id",
    "name" : "example_oidc_provider",
    "url" : "https://example.com/oidc/.well-known/openid-configuration",
    "urn" : "iam::123456789012:user:example-oidc-user",
    "client_ids" : [ "example-client-id-1" ],
    "thumbprints" : [ "a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2a1b2" ],
    "created_at" : "2026-06-22T09:50:34.264Z",
    "description" : null
  }
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 201 | 请求成功。   |
| 400 | 请求体异常。  |
| 403 | 没有操作权限。 |
| 409 | 请求冲突。   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。
