Ao expor uma função por meio de um domínio personalizado, qualquer pessoa que conheça a URL poderá invocá-la. A autenticação Bearer protege o acesso ao exigir que os clientes incluam um token válido em cada requisição.
Como funciona
Um cliente envia uma requisição ao seu domínio personalizado com o cabeçalho
Authorization: Bearer <token>.O Function Compute valida o token comparando-o aos tokens configurados para esse domínio.
Se o token corresponder, o Function Compute encaminha a requisição para a função.
Caso o token esteja ausente ou seja inválido, o Function Compute retorna um erro.
Pré-requisitos
Antes de começar, verifique se você:
Considerações de segurança
Sempre use HTTPS em ambientes de produção. O HTTP transmite tokens em texto simples, o que os expõe a interceptação. O Function Compute não se responsabiliza por riscos de segurança causados pelo vazamento de tokens via HTTP. Utilize HTTP apenas para desenvolvimento e testes.
O Function Compute armazena e verifica seus tokens, mas você é responsável por gerá-los e gerenciar seu ciclo de vida. Alterne os tokens regularmente e substitua imediatamente qualquer token possivelmente exposto.
Limitações
Cada token deve ser único, tanto dentro de um único domínio personalizado quanto entre todos os nomes de domínio personalizados.
Evite valores de token simples ou previsíveis, pois são mais suscetíveis a ataques de adivinhação.
Todo token deve ter entre 32 e 128 caracteres e pode conter apenas:
A-Z,a-z,0-9,+,/,=,-,~,.. Um token não pode começar com um número ou um hífen (-).Cada domínio personalizado suporta de 1 a 20 tokens.
Configure autenticação Bearer
Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Function Management > Custom Domains.
Na barra de navegação superior, selecione uma região. Na lista de domínios, localize o domínio que deseja gerenciar e clique em Modify na coluna Actions.
-
Na página Modify Custom Domain Name, expanda Authentication Settings. Defina Authentication Method como Bearer Authentication, insira o Authentication Token e clique em Save.
O Authentication Token deve ser um objeto JSON com um array
tokens. Cada objeto de token possui os seguintes campos:Campo
Tipo
Descrição
tokenNameString
Nome exclusivo para identificar o token
tokenDataString
Valor do token. Deve atender aos requisitos de caracteres e comprimento listados em Limitações
enableBooleano
Defina como
truepara ativar o token. Defina comofalsepara desativá-lo sem excluí-loO exemplo a seguir configura dois tokens:
{ "tokens": [ { "tokenName": "tokenName-7jd", "enable": true, "tokenData": "token-dfi34ij25gd1ed6ec80g35****" }, { "tokenName": "tokenName-20i", "enable": true, "tokenData": "token-8g7f2a2c9fc23hid82593****" } ] }Para configurar um único token, inclua apenas um objeto no array
tokens.
Verifique a configuração
Use cURL para enviar uma requisição com o cabeçalho Authorization: Bearer <token>:
curl --data your-data -X access-method -H "Authorization: Bearer <token>" https://<your-custom-domain>
Substitua <token> pelo valor tokenData de um token habilitado e <your-custom-domain> pelo seu nome de domínio real.
Exemplo:
curl -X POST -H "Authorization: Bearer token-dfi34ij25gd1ed6ec80g35****" https://example.com
Uma requisição bem-sucedida retorna a resposta da função. Se você receber um erro, consulte Solução de problemas.
Solução de problemas
Authorization header is expected but missing
A requisição não incluiu um cabeçalho Authorization. Adicione Authorization: Bearer <token> aos cabeçalhos da sua requisição.
access denied due to invalid bearer token
O token na requisição não corresponde a nenhum token habilitado configurado para o domínio. Verifique se o token corresponde ao valor do campo tokenData no Authentication Token configurado em Configure autenticação Bearer.
Faturamento
A autenticação Bearer não gera cobranças adicionais. Os custos dos recursos de gateway estão incluídos no faturamento de invocação de funções.