更新时间:2026-09-23 GMT+08:00
分享

创建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中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

授权信息

账号根用户具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备如下身份策略权限,更多的权限说明请参见权限和授权项。

授权项

访问级别

资源类型(*为必须)

条件键

别名

依赖的授权项

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 提供商。

取值范围:

不涉及。

表3 oidc_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

参数解释:

错误码,请参见错误码。

取值范围:

格式为PAP5.XXXX,例如 PAP5.0012。

error_msg

String

参数解释:

错误信息,请参见错误信息。

取值范围:

不涉及。

request_id

String

参数解释:

API 请求的唯一标识,用于排查接口调用异常。

取值范围:

不涉及。

状态码:403

表5 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码,请参见错误码。

取值范围:

格式为PAP5.XXXX,例如PAP5.0012。

error_msg

String

参数解释:

错误信息,请参见错误信息。

取值范围:

不涉及。

request_id

String

参数解释:

API请求的唯一标识,用于排查接口调用异常。

取值范围:

不涉及。

encoded_authorization_message

String

参数解释:

认证失败时返回的加密详细信息,用于定位认证问题。 可以通过STS5解密接口进行解密,请参见接口链接。

取值范围:

不涉及。

状态码:409

表6 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码,请参见错误码。

取值范围:

格式为PAP5.XXXX,例如 PAP5.0012。

error_msg

String

参数解释:

错误信息,请参见错误信息。

取值范围:

不涉及。

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

请求冲突。

错误码

请参见错误码。

相关文档