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

Procedimento de implementação

  1. Efetue logon no console do FunctionGraph. Na página Dashboard, clique em Create Function. Para mais detalhes, consulte Desenvolvimento de um autorizador personalizado com FunctionGraph.

    1. Defina os parâmetros de acordo com a tabela a seguir e clique em Create Function.
      Tabela 1 Configuração da função

      Parâmetro

      Descrição

      Function Type

      Padrão: Event Function

      Region

      Selecione a mesma região que a do APIG.

      Function Name

      Insira um nome que esteja em conformidade com regras específicas para facilitar a pesquisa.

      Agency

      Uma agência que delega FunctionGraph para acessar outros serviços em nuvem. Para este exemplo, selecione Use no agency.

      Enterprise Project

      A opção padrão é default.

      Runtime

      Selecione Python 3.9.

    2. Na guia Configuration, escolha Environment Variables no painel esquerdo e clique em Add. test é um cabeçalho para autenticação de identidade, e query é para consulta de parâmetro. Se o token envolver dados confidenciais, ative a opção Encrypted.

    3. Na guia Code, copie o seguinte código para index.py e clique em Deploy. Para obter detalhes sobre codificação, consulte Criação de uma função para autenticação personalizada de front-end no Guia de desenvolvedor do API Gateway.
      # -*- coding:utf-8 -*-
      import json
      def handler(event, context):
          testParameter = context.getUserData('test');
          userToken = context.getUserData('token');
          if event["headers"].get("token") == userToken and event["queryStringParameters"].get("test") == testParameter:
              resp = {
                  'statusCode': 200,
                  'body': json.dumps({
                      "status":"allow",
                      "context":{
                          "user":"auth success"
                      }
                  })
              }
          else:
              resp = {
                  'statusCode': 401,
                  'body': json.dumps({
                      "status":"deny",
                  })   
              }
          return json.dumps(resp)
    4. Configure um evento de teste para depurar o código.
      1. Selecione Configure Test Event na lista suspensa e configure um evento de teste.

        Os valores dos parâmetros no evento de teste devem ser os mesmos das variáveis de ambiente.

      2. Clique em Test.

      3. Clique em Deploy.

  2. Vá para o console do APIG e escolha API Management > API Policies.

    Na guia Custom Authorizers, crie um autorizador personalizado.
    Tabela 2 Configuração do autorizador personalizado

    Parâmetro

    Descrição

    Name

    Insira um nome que esteja em conformidade com regras específicas para facilitar a pesquisa.

    Type

    Selecione Frontend.

    Function URN

    Clique em Select e selecione a função criada.

    Version/Alias

    Version é selecionada por padrão.

    Max. Cache Age (s)

    30

    Identity Sources

    Defina duas fontes de identidade: token de cabeçalho e test de cadeia de consulta.

  3. Escolha API Management > APIs e clique em Create API.

    1. Configure as informações do front-end de acordo com a tabela a seguir.
      Tabela 3 Configuração de front-end

      Parâmetro

      Descrição

      API Name

      Insira um nome que esteja em conformidade com regras específicas para facilitar a pesquisa.

      Group

      A opção padrão é DEFAULT.

      URL

      Method: método de solicitação da API. Defina este parâmetro como GET.

      Protocol: protocolo de solicitação da API. Defina este parâmetro como HTTPS.

      Subdomain Name: o sistema aloca automaticamente um nome de subdomínio para cada grupo de APIs para testes internos. O nome do subdomínio pode ser acessado 1000 vezes por dia.

      Path: caminho para solicitar a API. Digite /api/two_factor_authorization.

      Gateway Response

      Selecione uma resposta a ser exibida se o gateway falhar ao processar uma solicitação de API.

      A resposta de gateway padrão é default.

      Authentication Mode

      Modo de autenticação da API. Defina este parâmetro como App.

      Two-Factor Authentication

      Ative essa opção e selecione um autorizador personalizado.

    2. Clique em Next e defina o tipo de back-end como Mock.

      Selecione um código de status, defina a resposta e clique em Finish.

    3. Publique a API.

  4. No painel de navegação, escolha API Management > Credentials.

    Clique em Create Credential, insira um nome de credencial e clique em OK.

  5. Vincule essa credencial à API.

    Clique no nome da credencial para acessar a página de detalhes. Na área APIs, clique em Bind to APIs, selecione uma API e clique em OK.

  6. Verifique a API.

    • Chame a API na página de depuração do APIG para verificar se a autenticação de dois fatores foi configurada com sucesso.

      Adicione test na guia Parameters e adicione token na guia Headers. Use os mesmos valores de parâmetros definidos para a função de autenticação personalizada. Se os valores dos parâmetros forem diferentes, o servidor retornará uma mensagem 401 indicando que a autenticação falha.

    • Como alternativa, chame a API com um comando curl. Baixe o SDK do JavaScript primeiro. Para chamar a API, insira uma chave e um segredo, bem como o cabeçalho e a cadeia de consulta para gerar um comando curl e, em seguida, copie esse comando para a sua CLI para execução. Para obter detalhes, consulte curl no Guia de desenvolvedor do API Gateway.