Procedimento de implementação
- 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.
- 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.
- 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.
- 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)
- Configure um evento de teste para depurar o código.
- 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.
- Clique em Test.
- Clique em Deploy.
- Selecione Configure Test Event na lista suspensa e configure um evento de teste.
- Defina os parâmetros de acordo com a tabela a seguir e clique em Create Function.
- 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.
- Escolha API Management > APIs e clique em Create API.
- 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.
- 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.
- Publique a API.
- Configure as informações do front-end de acordo com a tabela a seguir.
- No painel de navegação, escolha API Management > Credentials.
Clique em Create Credential, insira um nome de credencial e clique em OK.
- 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.
- 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.
- Chame a API na página de depuração do APIG para verificar se a autenticação de dois fatores foi configurada com sucesso.