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 2024-08-31 GMT+08:00

Criação de uma configuração de provedor de identidade de OpenID Connect

Função

Essa API é fornecida para que o administrador crie uma configuração de provedor de identidade de OpenID Connect depois de criar um provedor de identidade e registrar um protocolo (OpenID Connect).

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

URI

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

Tabela 1 Parâmetros de URI

Parâmetro

Obrigatório

Tipo

Descrição

idp_id

Sim

String

Nome do provedor de identidade.

Parâmetros de solicitação

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

Parâmetro

Obrigatório

Tipo

Descrição

Content-Type

Sim

String

Preencha application/json;charset=utf8 nesse campo.

X-Auth-Token

Sim

String

Token de acesso emitido para um usuário para suportar sua identidade e permissões.

Para obter detalhes sobre as permissões exigidas pelo token, consulte Ações.

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

Parâmetro

Obrigatório

Tipo

Descrição

openid_connect_config

Sim

object

Configurações do OpenID Connect.

Tabela 4 CreateOpenIDConnectConfig

Parâmetro

Obrigatório

Tipo

Descrição

access_mode

Sim

String

Tipo de acesso. Opções:

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

idp_url

Sim

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

Sim

String

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

Comprimento: 5 a 255 caracteres

authorization_endpoint

Não

String

Ponto de extremidade de autorização do provedor de identidade de 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

Escopos das solicitações 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

Sim

String

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

Comprimento: 10 a 30.000 caracteres

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

Tabela 5 Parâmetros no corpo da resposta

Parâmetro

Tipo

Descrição

openid_connect_config

object

Configurações de OpenID Connect.

Tabela 6 openid_connect_config

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 de OpenID Connect.

authorization_endpoint

String

Ponto de extremidade de autorização do provedor de identidade de 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

Escopos das solicitações 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 de OpenID Connect.

Exemplo de solicitação

  • Solicitação para criar um provedor de identidade de OpenID Connect que suporte configurações de acesso 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\"}]}" 
       } 
     }
  • Solicitação para criar um provedor de identidade de OpenID Connect que suporte configurações de acesso programático e de acesso ao console
    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\"}]}" 
       } 
     }

Exemplo de resposta

Código de status: 201

O provedor de identidade foi criado com sucesso.

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

Código de status

Descrição

201

O provedor de identidade foi criado com sucesso.

400

Parâmetros inválidos.

401

Falha na autenticação.

403

Acesso negado.

404

O recurso solicitado não pode ser encontrado.

409

O recurso já existe.

500

Erro de servidor interno.

Códigos de erro

Para obter detalhes, consulte Códigos de erro.