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

创建OpenID Connect身份提供商配置

功能介绍

该接口可以用于管理员创建身份提供商,并注册协议(OIDC协议)后,创建OpenID Connect身份提供商配置。

该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点

调试

您可以在API Explorer中调试该接口。

URI

POST /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config

表1 路径参数

参数

是否必选

参数类型

描述

idp_id

String

身份提供商名称。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

该字段内容填为“application/json;charset=utf8”。

X-Auth-Token

String

访问令牌,承载用户的身份、权限等信息。

token所需权限请参见授权项

表3 请求Body参数

参数

是否必选

参数类型

描述

openid_connect_config

object

OpenID Connect配置详情。

表4 CreateOpenIDConnectConfig

参数

是否必选

参数类型

描述

access_mode

String

访问方式。

  • program_console: 支持编程访问和管理控制台访问方式。
  • program: 支持编程访问方式

idp_url

String

OpenID Connect身份提供商标识,对应ID token中iss字段。

最小长度:10。最大长度:255。

client_id

String

在OpenID Connect身份提供商注册的客户端ID。

最小长度:5。最大长度:255。

authorization_endpoint

String

OpenID Connect身份提供商授权地址。

访问方式为program_console必选

最小长度:10。最大长度:255。

scope

String

授权请求信息范围。

访问方式为program_console必选

枚举值:

  • openid
  • email
  • profile
    说明:
    • 此字段必选值“openid”。
    • 最少1个值,最多10个值,之间使用空格分割。

    例如: "openid" 、"openid email"、 "openid profile"、 "openid email profile"。

response_type

String

授权请求返回的类型。

访问方式为program_console必选

枚举值:

  • id_token

response_mode

String

授权请求返回方式。

访问方式为program_console必选

枚举值:

  • fragment
  • form_post

signing_key

String

OpenID Connect身份提供商ID Token签名的公钥。

最小长度:10。最大长度:30000。

格式示例:

{
  "keys":[
     {
        "kid":"d05ef20c4512645vv1..." ,
        "n":"cws_cnjiwsbvweolwn_-vnl...",
        "e":"AQAB",
        "kty":"RSA",
        "use":"sig",
        "alg":"RS256"
      }
   ]
} 

响应参数

状态码为 201 时:

表5 响应Body参数

参数

参数类型

描述

openid_connect_config

object

OpenID Connect配置详情。

表6 openid_connect_config

参数

参数类型

描述

access_mode

String

访问方式。

  • program_console: 支持编程访问和管理控制台访问方式。
  • program: 支持编程访问方式。

idp_url

String

OpenID Connect身份提供商标识。对应ID token中iss字段。

client_id

String

在OpenID Connect身份提供商注册的客户端ID。

authorization_endpoint

String

OpenID Connect身份提供商授权地址。

访问方式为program方式时返回null。

scope

String

授权请求信息范围。

访问方式为program方式时返回null。

枚举值:

  • openid
  • email
  • profile
    说明:
    • 此字段必选值“openid”。
    • 最少1个值,最多10个值,之间使用空格分割。

    例如: "openid" 、"openid email"、 "openid profile"、 "openid email profile"。

response_type

String

授权请求返回的类型。

访问方式为program方式时返回null。

枚举值:

  • id_token

response_mode

String

授权请求返回方式。

访问方式为program方式时返回null。

枚举值:

  • fragment
  • form_post

signing_key

String

OpenID Connect身份提供商ID Token签名的公钥。

请求示例

  • 创建支持编程访问配置的OpenID Connect身份提供商。
    POST /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config 
      
     { 
       "openid_connect_config" : { 
         "access_mode" : "program", 
         "idp_url" : "https://accounts.example.com", 
         "client_id" : "client_id_example", 
         "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" 
       } 
     }
  • 创建支持编程访问和管理控制台访问配置的OpenID Connect身份提供商。
    POST /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config 
      
     { 
       "openid_connect_config" : { 
         "access_mode" : "program_console", 
         "idp_url" : "https://accounts.example.com", 
         "client_id" : "client_id_example", 
         "authorization_endpoint" : "https://accounts.example.com/o/oauth2/v2/auth", 
         "scope" : "openid", 
         "response_type" : "id_token", 
         "response_mode" : "form_post", 
         "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" 
       } 
     }

响应示例

状态码为 201 时:

创建成功。

  • 示例 1
    { 
       "openid_connect_config" : { 
         "access_mode" : "program", 
         "idp_url" : "https://accounts.example.com", 
         "client_id" : "client_id_example", 
         "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" 
       } 
     }
  • 示例 2
    { 
       "openid_connect_config" : { 
         "access_mode" : "program_console", 
         "idp_url" : "https://accounts.example.com", 
         "client_id" : "client_id_example", 
         "authorization_endpoint" : "https://accounts.example.com/o/oauth2/v2/auth", 
         "scope" : "openid", 
         "response_type" : "id_token", 
         "response_mode" : "form_post", 
         "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" 
       } 
     }

状态码

状态码

描述

201

创建成功。

400

参数无效。

401

认证失败。

403

没有操作权限。

404

未找到相应的资源。

409

资源已存在。

500

系统内部错误。

错误码

请参见错误码

相关文档