创建OIDC提供商 - CreateOIDCProviderV5
功能介绍
该接口可以用于创建一个支持 OpenID Connect (OIDC) 的身份提供商 (IdP)。
您通过此操作创建的 OIDC 提供商可用作信任委托的信任策略中的主体 (Principal),用于在华为云和 OIDC 提供商之间建立信任关系。
您可以直接使用您的身份提供商去创建新的信任委托。
当您创建 IAM 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
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| 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
| 参数 | 参数类型 | 描述 |
|---|---|---|
| oidc_provider | oidc_provider object | 参数解释: OIDC 提供商。 取值范围: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| 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
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 参数解释: 错误码,请参见错误码。 取值范围: 格式为PAP5.XXXX,例如 PAP5.0012。 |
| error_msg | String | 参数解释: 错误信息,请参见错误信息。 取值范围: 不涉及。 |
| request_id | String | 参数解释: API 请求的唯一标识,用于排查接口调用异常。 取值范围: 不涉及。 |
状态码:403
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 参数解释: 错误码,请参见错误码。 取值范围: 格式为PAP5.XXXX,例如PAP5.0012。 |
| error_msg | String | 参数解释: 错误信息,请参见错误信息。 取值范围: 不涉及。 |
| request_id | String | 参数解释: API请求的唯一标识,用于排查接口调用异常。 取值范围: 不涉及。 |
| encoded_authorization_message | String | 参数解释: 认证失败时返回的加密详细信息,用于定位认证问题。 可以通过STS5解密接口进行解密,请参见接口链接。 取值范围: 不涉及。 |
状态码:409
请求示例
无
响应示例
无
状态码
| 状态码 | 描述 |
|---|---|
| 201 | 请求成功。 |
| 400 | 请求体异常。 |
| 403 | 没有操作权限。 |
| 409 | 请求冲突。 |
错误码
请参见错误码。