更新时间:2023-04-20 GMT+08:00

修改OpenID Connect身份提供商配置

功能介绍

该接口可以用于管理员修改OpenID Connect身份提供商配置。

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

URI

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

表1 路径参数

参数

是否必选

参数类型

描述

idp_id

String

身份提供商ID。

最小长度:1。最大长度:64。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

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

X-Auth-Token

String

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

token所需权限请参见授权项

表3 请求Body参数

参数

是否必选

参数类型

描述

openid_connect_config

object

OpenID Connect配置详情。

表4 openid_connect_config

参数

是否必选

参数类型

描述

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身份提供商授权地址。

编程访问和管理控制台访问方式必选,编程访问方式不可选

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

scope

String

授权请求信息范围。

编程访问和管理控制台访问方式必选,编程访问方式不可选。

枚举值:

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

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

response_type

String

授权请求返回的类型。

编程访问和管理控制台访问方式必选,编程访问方式不可选

枚举值:

  • id_token

response_mode

String

授权请求返回方式。

编程访问和管理控制台访问方式必选,编程访问方式不可选。

枚举值:

  • 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"
      }
   ]
} 

响应参数

状态码为 200 时:

表5 响应Body参数

参数

参数类型

描述

openid_connect_config

object

OpenID Connect配置详情。

表6 OpenIDConnectConfig

参数

参数类型

描述

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身份提供商授权地址。

编程访问和管理控制台访问方式必选,编程访问方式不可选

scope

String

授权请求信息范围。

编程访问和管理控制台访问方式必选,编程访问方式不可选。

枚举值:

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

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

response_type

String

授权请求返回的类型。

编程访问和管理控制台访问方式必选,编程访问方式不可选

枚举值:

  • id_token

response_mode

String

授权请求返回方式。

编程访问和管理控制台访问方式必选,编程访问方式不可选。

枚举值:

  • fragment
  • form_post

signing_key

String

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

请求示例

  • 修改编程访问配置
    PUT /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\"}]}" 
       } 
     }
  • 修改编程访问和管理控制台访问配置
    PUT /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\"}]}" 
       } 
     }

响应示例

状态码为 200 时:

请求成功。
{ 
  "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\"}]}" 
  } 
}

状态码

状态码

描述

200

请求成功。

400

参数无效。

401

认证失败。

403

没有操作权限。

404

未找到相应的资源。

500

系统内部错误。

错误码

请参见错误码