Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-02-16 GMT+08:00

Modificação de um provedor de identidade do OpenID Connect

Função

Esta API é fornecida para o administrator modificar um provedor de identidade OpenID Connect.

A API pode ser chamada usando o ponto de extremidade global e pontos de extremidade específicos da região. Para pontos de extremidade do IAM, consulte Regiões e pontos de extremidade.

URI

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

Tabela 1 Parâmetros de URI

Parâmetro

Obrigatoriedade

Tipo

Descrição

idp_id

Sim

String

ID do provedor de identidade.

Comprimento: De 1 a 64 caracteres

Parâmetros de solicitação

Tabela 2 Parâmetros no cabeçalho da solicitação

Parâmetro

Obrigatoriedade

Tipo

Descrição

Content-Type

Sim

String

Preencha application/json;charset=utf8 neste campo.

X-Auth-Token

Sim

String

Consulte Ações.

Tabela 3 Parâmetro no corpo da solicitação

Parâmetro

Obrigatoriedade

Tipo

Descrição

openid_connect_config

Sim

object

Configurações do OpenID Connect.

Tabela 4 openid_connect_config

Parâmetro

Obrigatoriedade

Tipo

Descrição

access_mode

Não

String

Tipo de acesso. Opções:

  • program_console: acesso programático e acesso ao console de gerenciamento.
  • program: apenas acesso programático.

idp_url

Não

String

URL do provedor de identidade do OpenID Connect. Esse campo corresponde ao campo iss no token de ID.

Comprimento: 10 a 255 caracteres

client_id

Não

String

ID de um cliente registrado com o provedor de identidade OpenID Connect.

Comprimento: 5 a 255 caracteres

authorization_endpoint

Não

String

Ponto de extremidade de autorização do provedor de identidade OpenID Connect.

Esse campo é obrigatório somente se o tipo de acesso estiver definido como acesso programático e acesso ao console de gerenciamento.

Comprimento: 10 a 255 caracteres

scope

Não

String

Âmbito dos pedidos de autorização.

Esse campo é obrigatório somente se o tipo de acesso estiver definido como acesso programático e acesso ao console de gerenciamento.

Valores enumerados:

  • openid
  • email
  • profile
    NOTA:
    • openid deve ser especificado para este campo.
    • Especifique de 1 a 10 valores e separe-os com espaços.

    Exemplo: openid, openid email, openid profile e openid email profile.

response_type

Não

String

Tipo de resposta.

Esse campo é obrigatório somente se o tipo de acesso estiver definido como acesso programático e acesso ao console de gerenciamento.

Valor enumerado:

  • id_token

response_mode

Não

String

Modo de resposta.

Esse campo é obrigatório somente se o tipo de acesso estiver definido como acesso programático e acesso ao console de gerenciamento.

Valores enumerados:

  • fragment
  • form_post

signing_key

Não

String

Chave pública usada para assinar o token de ID do provedor de identidade OpenID Connect.

Comprimento: Personagens de 10 a 30.000

Exemplo de formato:

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

Parâmetros de resposta

Código de status: 200

Tabela 5 Parâmetros no corpo da resposta

Parâmetro

Tipo

Descrição

openid_connect_config

object

Configurações do OpenID Connect.

Tabela 6 OpenIDConnectConfig

Parâmetro

Tipo

Descrição

access_mode

String

Tipo de acesso. Opções:

  • program_console: acesso programático e acesso ao console de gerenciamento.
  • program: apenas acesso programático.

idp_url

String

URL do provedor de identidade do OpenID Connect. Esse campo corresponde ao campo iss no token de ID.

client_id

String

ID de um cliente registrado com o provedor de identidade OpenID Connect.

authorization_endpoint

String

Ponto de extremidade de autorização do provedor de identidade OpenID Connect.

Esse campo é obrigatório somente se o tipo de acesso estiver definido como acesso programático e acesso ao console de gerenciamento.

scope

String

Âmbito dos pedidos de autorização.

Esse campo é obrigatório somente se o tipo de acesso estiver definido como acesso programático e acesso ao console de gerenciamento.

Valores enumerados:

  • openid
  • email
  • profile
    NOTA:
    • openid deve ser especificado para este campo.
    • Especifique de 1 a 10 valores e separe-os com espaços.

    Exemplo: openid, openid email, openid profile e openid email profile.

response_type

String

Tipo de resposta.

Esse campo é obrigatório somente se o tipo de acesso estiver definido como acesso programático e acesso ao console de gerenciamento.

Valor enumerado:

  • id_token

response_mode

String

Modo de resposta.

Esse campo é obrigatório somente se o tipo de acesso estiver definido como acesso programático e acesso ao console de gerenciamento.

Valores enumerados:

  • fragment
  • form_post

signing_key

String

Chave pública usada para assinar o token de ID do provedor de identidade OpenID Connect.

Exemplo de solicitação

  • Criação de um provedor de identidade que suporta acesso 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\"}]}" 
       } 
     }
  • Criação de um provedor de identidade que suporte acesso programático e acesso ao console de gerenciamento
    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\"}]}" 
       } 
     }

Exemplo de resposta

Código de status: 200

A solicitação foi bem-sucedida.
{ 
  "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 status

Código de status

Descrição

200

A solicitação foi bem-sucedida.

400

Parâmetros inválidos.

401

Autenticação falhou.

403

Acesso negado.

404

O recurso solicitado não pode ser encontrado.

500

Erro de servidor interno.

Códigos de erro

Para obter detalhes, consulte Códigos de erro.