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 2022-11-08 GMT+08:00

Creación de una configuración de proveedor de identidades OpenID Connect

Función

Esta API se proporciona para que el administrator cree una configuración de proveedor de identidad OpenID Connect después de crear un proveedor de identidad y registrar un protocolo (OpenID Connect).

Se puede llamar 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 finales de IAM, consulte Regions y puntos de conexión.

URI

POST /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

Nombre del proveedor de identidad.

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

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 CreateOpenIDConnectConfig

Parámetro

Obligatorio

Tipo

Descripción

access_mode

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

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

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

Yes

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: 201

Tabla 5 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

openid_connect_config

object

Configuraciones de OpenID Connect.

Tabla 6 openid_connect_config

Parámetro

Tipo

Descripción

access_mode

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

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.

Solicitud de ejemplo

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

Ejemplo de respuesta

Código de estado: 201

El proveedor de identidad se crea correctamente.

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

Códigos de estado

Código de estado

Descripción

201

El proveedor de identidad se crea correctamente.

400

Parámetros no válidos.

401

Error de autenticación.

403

Acceso denegado.

404

No se puede encontrar el recurso solicitado.

409

El recurso ya existe.

500

Error de servidor interno.

Códigos de error

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