Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-08-01 GMT+08:00

Modificación de un proveedor de identidades OpenID Connect

Función

Esta API se proporciona para que el administrador modifique un proveedor de identidad de OpenID Connect.

Se puede invocar a la API utilizando tanto el punto de conexión global como los puntos de conexión específicos de la región. Para los puntos de conexión de IAM, consulte Regiones y puntos de conexión.

URI

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

Tabla 1 Parámetros de URI

Parámetro

Obligatorio

Tipo

Descripción

idp_id

String

ID de proveedor de identidad.

Longitud: 1 a 64 caracteres

Parámetros de solicitud

Tabla 2 Parámetros en el encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

Content-Type

String

Rellene application/json;charset=utf8 en este campo.

X-Auth-Token

String

Token de acceso emitido a un usuario para acreditar su identidad y sus permisos.

Para obtener más información sobre los permisos requeridos por el token, consulte Acciones.

Tabla 3 Parámetro en el cuerpo de la solicitud

Parámetro

Obligatorio

Tipo

Descripción

openid_connect_config

object

Configuraciones de OpenID Connect.

Tabla 4 openid_connect_config

Parámetro

Obligatorio

Tipo

Descripción

access_mode

No

String

Tipo de acceso. Opciones:

  • program_console: acceso programático y acceso a la consola de gestión.
  • program: solo acceso programático.

idp_url

No

String

URL del proveedor de identidad OpenID Connect. Este campo corresponde al campo iss en el token ID.

Longitud: 10 a 255 caracteres

client_id

No

String

ID de un cliente registrado con el proveedor de identidad de OpenID Connect.

Longitud: de 5 a 255 caracteres

authorization_endpoint

No

String

Punto de conexión de autorización del proveedor de identidad de OpenID Connect.

Este campo sólo es necesario si el tipo de acceso está establecido en acceso programático y acceso a la consola de gestión.

Longitud: 10 a 255 caracteres

scope

No

String

Ámbitos de las solicitudes de autorización.

Este campo sólo es necesario si el tipo de acceso está establecido en acceso programático y acceso a la consola de gestión.

Valores enumerados:

  • openid
  • email
  • profile
    NOTA:
    • openid debe especificarse para este campo.
    • Especifique de 1 a 10 valores y sepárelos con espacios.

    Ejemplo: openid, openid email, openid profile y openid email profile.

response_type

No

String

Tipo de respuesta.

Este campo sólo es necesario si el tipo de acceso está establecido en acceso programático y acceso a la consola de gestión.

Valor enumerado:

  • id_token

response_mode

No

String

Modo de respuesta.

Este campo sólo es necesario si el tipo de acceso está establecido en acceso programático y acceso a la consola de gestión.

Valores enumerados:

  • fragment
  • form_post

signing_key

No

String

Clave pública utilizada para firmar el token de ID del proveedor de identidad OpenID Connect.

Longitud: 10 a 30,000 caracteres

Ejemplo de formato:

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

Parámetros de respuesta

Código de estado: 200

Tabla 5 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

openid_connect_config

object

Configuraciones de OpenID Connect.

Tabla 6 OpenIDConnectConfig

Parámetro

Tipo

Descripción

access_mode

String

Access type. Opciones:

  • program_console: acceso programático y acceso a la consola de gestión.
  • program: solo acceso programático.

idp_url

String

URL del proveedor de identidad OpenID Connect. Este campo corresponde al campo iss en el token ID.

client_id

String

ID de un cliente registrado con el proveedor de identidad de OpenID Connect.

authorization_endpoint

String

Punto de conexión de autorización del proveedor de identidad de OpenID Connect.

Este campo sólo es necesario si el tipo de acceso está establecido en acceso programático y acceso a la consola de gestión.

scope

String

Ámbitos de las solicitudes de autorización.

Este campo sólo es necesario si el tipo de acceso está establecido en acceso programático y acceso a la consola de gestión.

Valores enumerados:

  • openid
  • email
  • profile
    NOTA:
    • openid debe especificarse para este campo.
    • Especifique de 1 a 10 valores y sepárelos con espacios.

    Ejemplo: openid, openid email, openid profile y openid email profile.

response_type

String

Tipo de respuesta.

Este campo sólo es necesario si el tipo de acceso está establecido en acceso programático y acceso a la consola de gestión.

Valor enumerado:

  • id_token

response_mode

String

Modo de respuesta.

Este campo sólo es necesario si el tipo de acceso está establecido en acceso programático y acceso a la consola de gestión.

Valores enumerados:

  • fragment
  • form_post

signing_key

String

Clave pública utilizada para firmar el token de ID del proveedor de identidad OpenID Connect.

Ejemplo de solicitud

  • Modificación de un proveedor de identidad que admita el acceso programático
    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\"}]}" 
       } 
     }
  • Modificación de un proveedor de identidad que admita el acceso programático y el acceso a la consola de gestión
    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\"}]}" 
       } 
     }

Ejemplo de respuesta

Código de estado: 200

La solicitud se ha realizado correctamente.
{ 
  "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\"}]}" 
  } 
}

Códigos de estado

Código de estado

Descripción

200

La solicitud se ha realizado correctamente.

400

Parámetros no válidos.

401

Error de autenticación.

403

Acceso denegado.

404

No se puede encontrar el recurso solicitado.

500

Error de servidor interno.

Códigos de error

Para obtener más información, consulte Códigos de error.