更新时间:2026-06-16 GMT+08:00
分享

创建OIDC提供商 - CreateOIDCProviderV5

功能介绍

该接口可以用于创建一个支持 OpenID Connect (OIDC) 的身份提供商 (IdP)。

您通过此操作创建的 OIDC 提供商可用作信任委托的信任策略中的主体 (Principal),用于在华为云和 OIDC 提供商之间建立信任关系。

您可以直接使用您的身份提供商去创建新的信任委托。

当您创建 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的调用权限,如果使用账号下的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 允许包含路径组件,但不允许包含查询参数。通常,该 URL 仅由一个主机名组成,不包含端口号,例如 https://www.oidc.com 或 https://oidc.com。

约束限制

长度范围为[1,255]。

取值范围

不涉及。

默认取值

不涉及。

name

String

参数解释

OIDC 提供商的名称。

约束限制

字符串长度在 1 到 64 之间,并且只能包含:字母、数字、下划线(_)、中划线(-)。

取值范围

不涉及。

默认取值

不涉及。

client_ids

Array of strings

参数解释

客户端 ID 列表,客户端 ID 也称为受众 (Audiences)。您可以使用同一个提供商注册多个客户端 ID。

约束限制

列表元素数量取值范围为[1,100]个,每个元素字符串长度取值范围为[1,255]。

取值范围

不涉及。

默认取值

不涉及。

thumbprints

Array of strings

参数解释

OIDC 身份提供商的服务器证书指纹列表,列表中的指纹是 X.509 证书的十六进制编码的 SHA-1 哈希值,它始终是一个 64 个字符的字符串。通常,此列表只包含一个指纹,然而 IAM 允许您为一个 OIDC 提供商设置最多五个指纹,这使得您可以对身份提供商的证书进行安全轮转。此参数是可选的,如果未包含此参数,IAM 将检索并使用 OIDC 身份提供商服务器证书的顶层中间证书颁发机构 (CA) 指纹。

约束限制

列表元素数量取值范围为[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

参数解释

提供商创建时间。

取值范围

不涉及

状态码: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 请求的唯一标识,用于排查接口调用异常。

取值范围

不涉及。

请求示例

响应示例

状态码

状态码

描述

201

请求成功。

400

请求体异常。

403

没有操作权限。

409

请求冲突。

错误码

请参见错误码

相关文档